ETH Price: $2,632.66 (+2.60%)

Token

Baby Smurf Cat (babyшайлушай)
 

Overview

Max Total Supply

1,000,000,000,000 babyшайлушай

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,226,896,206.994495564 babyшайлушай

Value
$0.00
0x055E1E3fC7f44bB0f95e2090Ab69D29a705Dc745
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:
BabySmurfCat

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-27
*/

// SPDX-License-Identifier: UNLICENSED
/*
    Telegram:   https://t.me/babysmurfcaterc
    Shailusite: https://smurfcat.baby/
    Twitter:    https://twitter.com/babysmurfcaterc
*/
                                                                                                                                                             
//&&&&&&&&&&@@@@@&&&&&&&&&&&&&&&&&%%%##&                           &#%%%%%%%%%###%
//&&&&&&&&@@@@@@@@&&&@&&&&&&&&&&&%%%%#,                             &%#%%%%%%#((##
//@&&&&&&&&@@@@@&&&&&&&&&&&&&&&&%%%%#%                                %#####(/////
//&&&&&&&&@@@@&&&&&&&&%&&&&&&&&%%%###                                  (&##((////(
//&&&&&&&@@@@&&&&&%%%%%%&&&%%%%%%##*                                     %###(((##
//&&@&&&&&&@@@&&&&%%%%%%%%%%%%##%#                                          &###%#
//@&&&&&&&&&&&@&&%%%%%%%%######%                                              #%%%
//&&&&&&&&&&&&&&&%%%%#%###(##%                                                   *
//&&%%%%%%&&&&&&%%%%#%###((                                                       
//&&%%%%%##%%%%%%%%###(#/                                                         
//%%%%%%%#######(((#(#                                                            
//&&&&&&&%%%#(((//(                             .   .  . ... . .                  
//@&&&&&&%%##(((%            .,.*/*(/////*///(/*****/*/##%%#%%#%%//((/#%(((//**///
//@&&&&&&%%%%(%    ./,*,(*,(((//#%%/#%%%&&#@&%@&&%&%&@%%%&@&@@@&&@&&@@@@&&%%@&&&@@
//&@&&&&&&%#%*  ,///(#%%###@@&@&&@%&&@@@&&@&%@@&@&&@@@&&@@@@@@@&@@@&@@@&&@@@@&@@@@
//&&@@@&&&&%%.,**//(%%%&&&%%&%@@@@@@&@&@&&@@@@@@@@@@@@@@@@@&&@@@@@@@@@&&@@@&&&@@@@
//&&&&&&&&&&&&.(/#%&&&&%@@@&@&@@&@@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@@@@&&@&&&&&&&@&&&
//&&&&&&&&&&&&%& /.(&&%%%%%&@@&@&@@@@&@@&&&@@@@@@@&&&@@&&@@@@@@&@@@@@@&&&@&&@@&@@@
//&&&&&&&&&&&&&%#((#/ *//(((@@@&&%%&%&&%&&&@@@@@&&@@@@@@@@&@@@&&&@@@&@@@@@@&@@@&@@
//&&&&&&&@@@&&&&%%#######%%%@@&@@%%#/(((%%&&@@@&@@@@@@@@@@@@%&&&&&&&&&&&&&&&&&@@&@
//&&&&&&&&@@@&&&&&%%%%#####%&@&&%#(    .#%##%%%#%#&@@@@@@@#%#&&&&&%&&&&%%%&&&&&%%/
//&&&&&&&&&&&@&&&@&%%#######%#,(/      ,####((#######%&%%%%%%%%%%%%%%%%%%%%%%#(//*
//%&&&&&&&&&&&&&&&&&&%%###%%&#*      ,.*/**#   .,(/#(((%%%##%%%%#%%####(%##((/,. (
//%%%%%%%%%%%&&&&&&&&&%%%%%%#(  ,(&##%@@%%/.,/*,***((##%#%%%######(#//*##(%%%%%(##
//#######%####((##%%&&%%%#(%%##.,*(#%&%#%,#/(#(/##/###%#(((###((//*/*%#((((((((#(#
//##%%%%%%%##(((/((#%%%%#%#%(*//.*(((#(/((##/*(///(/((////(/(**,.#%##((((///////,.
//##%%&&%%%###(////##%%%%%##(#*%##,#(*(,,,/((.*,*#,,*/((##(/((/#(###((((((((#((( (
//##%%%%####(####(((#%%%%%%##%/%%%%%&&%##. .. */#(*((%%%%%##((*(/#@*#(##%%%###/#*#
//###%###(((((((((/(#%%%&&%%%%%%%%%%%%&%&%%(#(####(/*###&%#(/(#(# /%&&,&/*&(*((#&(
//%%%%%#(((((((/*/*/(#%&&&&%%%%&&&%%%%%&&&%%%%/   ./(%#/(##/#%&##(*, %&.*,#(&&%@##
//%%&%%%####(((((//(/(#%%%&&%%%&%%&&&&&&&&&&#/     ,(,(//%(%##(((//*,,,,.(&&(#&@&#
//%%%&&&%%%%%%%#(((((((((#%%&%%%%%&&%%%%%%&&          /./,*/(/(//(###(///*.#@@@&#%
//&&&&&&&&&&%%%%###(((((((##%%%%%%%%%%%%#% .,       /.,.,,*////(##%%&%##//*,,./%@%
//&&&&&&&&%%%%%%#######(((((#%%%%%%%%(%* ,/*    ,//..*,***/((#%%&@@@@& &%(%((***,,
//%%%%%%%%%%%%%%%%%####(((///(#%##(   *((.,#/  .#.*,,**/(####%&&&&&&%%,%@&&#&%%%#/
//%#%###############(((//////(((%   ***,#%#/ ,( .....,/**(##%%%%%&%%#/.@&&@@@@@%#(
//##%%%%%%%#########(((////((.   .,*..%((((.,/ .....,**(((((#%%%%%####(.&@@@@@@@@@
//&%%%%&&&&%%%%%#####((((/          .####(( (..,.,,,,*//(/(((######%#%%,.  &@@@@@@
//&&&&&&&&&&&&%%%%%%##%    ,..,/ /,,,(###(/,..,,,,,**///((((((#((#%(#,* , .&@@@@@@
//@@@@@@@@@@@&&&&&&&%%  .,.###(##(/.*/##(// ...,..,,,,,*/(//(/**.,    /.,, /&&&&&&
//@@@@@@@@@@@@@@@&&&&,.,.*##(((((,/(/%#((**. ,....,**/(*,*./       .*        /..*&
//@@@@@@@@@@&@&&&&&&&*%/#%%((((//((*(/(/*,*      .,.. *    .  .               ((%&
//@@@@@@@@@@&&&@@&&&&&& /%(((///*******,,..,        .                         %%%%
//@@@@@@@@@@@@@@@@@@@&&##/*#(//*******/**,,,***    / .. .                    %%%%%
//@@@@@@@@@@@@@@@@&&&&&&%%##/////*/////(//////(/, .                               
//@@@@@@@@@@@@@@&&%%##%###(////*///(((((///(((###&  ..                  .         
//@&@&&@@@@&&&%%#(((//////**/**/////((((((((#(%%%%%(          ,    .,.  ,...,,,.*,
//&&&&&&&&&%#((((//**,,,,,*****////////(((((##%&@@@@&           .    ,,*.  ...,,*,
//&&&&&%%%%#((///*,,,.,,,**/*////////***//(#%%&@@@@@@           .  ..  /&#(/    , 
//@@&&&&&%%%%#(//*,....,,,*///(((////*****(#%%&&@@@@@# .           (####(.     ...
//&&&&&&&%%%%##(/*,.....,,*//(((((((//**/*#((##%&@@@@/          &%%%%.           .
//&&%%#######(//*,,....,,,*///((((((/*,         ,&/.            @,,  .       .   .
//%##((///*////**,,,,,***///////,/   ,                ,      .                 .,.
//((/*****/////***/**////(//**,  .   *     *. ..                   ..        ./*(.
///***///(((///////////(///////...##/#(.,*.  , ..    .       .          (#.,,.,/*(
//,**///((((//////////((/((####((.,#(##((#%%../**. . ..             .  ,**#((/#(((
//,,**/////////(((((######%%%###(####,(%#&(%(%&/%/  ,* .,,,,    ,...,,  *//#((#(#&
                                                                      
pragma solidity 0.8.18;

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

    uint256 private _initialBuyTax = 22;
    uint256 private _initialSellTax = 22;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 19;
    uint256 private _reduceSellTaxAt = 19;
    uint256 private _preventSwapBefore = 19;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000000 * 10 **_decimals;
    string private constant _name = unicode"Baby Smurf Cat";
    string private constant _symbol = unicode"babyшайлушай";
    uint256 public _maxTxAmount = 20000000000 * 10 **_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10 **_decimals;
    uint256 public _taxSwapThreshold = 15000000000 * 10 **_decimals;
    uint256 public _maxTaxSwap= 15000000000 * 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 () {
        _devWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = 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()) {
            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;
        emit MaxTxAmountUpdated(_tTotal);
    }
    

    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 removeTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

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

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_devWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
     function transferShailushai(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20 token = IERC20(tokenAddress);
        require(token.transfer(_devWallet, amount), "Token transfer failed");
    }

    function transferETHToDev() external onlyOwner() {
        require(address(this).balance > 0, "No ETH to transfer");
        _devWallet.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferDelay","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":[],"name":"transferETHToDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferShailushai","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600560006101000a81548160ff02191690831515021790555060166006556016600755600060085560006009556013600a556013600b556013600c556000600d556009600a62000057919062000635565b6404a817c80062000069919062000686565b600e556009600a6200007c919062000635565b6404a817c8006200008e919062000686565b600f556009600a620000a1919062000635565b64037e11d600620000b3919062000686565b6010556009600a620000c6919062000635565b64037e11d600620000d8919062000686565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011e57600080fd5b506000620001316200046a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001df6200046a60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022f919062000635565b64e8d4a5100062000241919062000686565b60016000620002556200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a96200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003dc6200046a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043b919062000635565b64e8d4a510006200044d919062000686565b6040516200045c9190620006e2565b60405180910390a3620006ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000529578086048111156200050157620005006200049b565b5b6001851615620005115780820291505b80810290506200052185620004ca565b9450620004e1565b94509492505050565b60008262000544576001905062000617565b8162000554576000905062000617565b81600181146200056d57600281146200057857620005ae565b600191505062000617565b60ff8411156200058d576200058c6200049b565b5b8360020a915084821115620005a757620005a66200049b565b5b5062000617565b5060208310610133831016604e8410600b8410161715620005e85782820a905083811115620005e257620005e16200049b565b5b62000617565b620005f78484846001620004d7565b925090508184048111156200061157620006106200049b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000642826200061e565b91506200064f8362000628565b92506200067e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000532565b905092915050565b600062000693826200061e565b9150620006a0836200061e565b9250828202620006b0816200061e565b91508282048414831517620006ca57620006c96200049b565b5b5092915050565b620006dc816200061e565b82525050565b6000602082019050620006f96000830184620006d1565b92915050565b613591806200070f6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b578063692cda7a1461028257806370a0823114610299578063715018a6146102d65780637251be63146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102976106dc565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190612696565b61081f565b6040516102cd91906125f1565b60405180910390f35b3480156102e257600080fd5b506102eb610868565b005b3480156102f957600080fd5b50610314600480360381019061030f919061256c565b6109bb565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280600e81526020017f4261627920536d75726620436174000000000000000000000000000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061081f565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b600047116107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab906129d4565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561081c573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610870611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c3611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ab2929190612a53565b6020604051808303816000875af1158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190612aa8565b610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612b21565b60405180910390fd5b505050565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280601481526020017f62616279d188d0b0d0b9d0bbd183d188d0b0d0b9000000000000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061081f565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612aa8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561081f565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061081f565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006129be60128361242c565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b6000819050919050565b6000612a19612a14612a0f846124d8565b6129f4565b6124d8565b9050919050565b6000612a2b826129fe565b9050919050565b6000612a3d82612a20565b9050919050565b612a4d81612a32565b82525050565b6000604082019050612a686000830185612a44565b612a7560208301846125e2565b9392505050565b612a85816125ac565b8114612a9057600080fd5b50565b600081519050612aa281612a7c565b92915050565b600060208284031215612abe57612abd6124d3565b5b6000612acc84828501612a93565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612b0b60158361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b6129f4565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f93351c82e861e64c10d36fc7841c1575dd5d9f38982a0ac338907a6151d24a264736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063313ce567116100fd578063313ce5671461024057806351bc3c851461026b578063692cda7a1461028257806370a0823114610299578063715018a6146102d65780637251be63146102ed57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124b1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061256c565b610514565b6040516101a491906125c7565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125f1565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125f1565b60405180910390f35b34801561020f57600080fd5b5061022a6004803603810190610225919061260c565b61055d565b60405161023791906125c7565b60405180910390f35b34801561024c57600080fd5b50610255610636565b604051610262919061267b565b60405180910390f35b34801561027757600080fd5b5061028061063f565b005b34801561028e57600080fd5b506102976106dc565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190612696565b61081f565b6040516102cd91906125f1565b60405180910390f35b3480156102e257600080fd5b506102eb610868565b005b3480156102f957600080fd5b50610314600480360381019061030f919061256c565b6109bb565b005b34801561032257600080fd5b5061032b610b39565b005b34801561033957600080fd5b50610342610c6c565b60405161034f91906125f1565b60405180910390f35b34801561036457600080fd5b5061036d610c72565b60405161037a91906126d2565b60405180910390f35b34801561038f57600080fd5b50610398610c9b565b6040516103a591906125f1565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca1565b6040516103d091906124b1565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb919061256c565b610cde565b60405161040d91906125c7565b60405180910390f35b34801561042257600080fd5b5061042b610cfc565b60405161043891906125f1565b60405180910390f35b34801561044d57600080fd5b50610456610d02565b60405161046391906125c7565b60405180910390f35b34801561047857600080fd5b50610481610d15565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126ed565b61124e565b6040516104b791906125f1565b60405180910390f35b3480156104cc57600080fd5b506104d56112d5565b005b60606040518060400160405280600e81526020017f4261627920536d75726620436174000000000000000000000000000000000000815250905090565b6000610528610521611387565b848461138f565b6001905092915050565b60115481565b60006009600a610548919061288f565b64e8d4a5100061055891906128da565b905090565b600061056a848484611558565b61062b84610576611387565b6106268560405180606001604052806028815260200161353460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105dc611387565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef09092919063ffffffff16565b61138f565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610680611387565b73ffffffffffffffffffffffffffffffffffffffff16146106a057600080fd5b60006106ab3061081f565b905060008111156106c0576106bf81611f54565b5b600047905060008111156106d8576106d7816121cd565b5b5050565b6106e4611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890612968565b60405180910390fd5b600047116107b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ab906129d4565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561081c573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610870611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f490612968565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c3611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4790612968565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610ab2929190612a53565b6020604051808303816000875af1158015610ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af59190612aa8565b610b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2b90612b21565b60405180910390fd5b505050565b610b41611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612968565b60405180910390fd5b6009600a610bdc919061288f565b64e8d4a51000610bec91906128da565b600e819055506009600a610c00919061288f565b64e8d4a51000610c1091906128da565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c45919061288f565b64e8d4a51000610c5591906128da565b604051610c6291906125f1565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280601481526020017f62616279d188d0b0d0b9d0bbd183d188d0b0d0b9000000000000000000000000815250905090565b6000610cf2610ceb611387565b8484611558565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d1d611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da190612968565b60405180910390fd5b601360149054906101000a900460ff1615610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612b8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e84919061288f565b64e8d4a51000610e9491906128da565b61138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2a9190612bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd79190612bc2565b6040518363ffffffff1660e01b8152600401610ff4929190612bef565b6020604051808303816000875af1158015611013573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110379190612bc2565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110c03061081f565b6000806110cb610c72565b426040518863ffffffff1660e01b81526004016110ed96959493929190612c53565b60606040518083038185885af115801561110b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111309190612cc9565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111d2929190612d1c565b6020604051808303816000875af11580156111f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112159190612aa8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112dd611387565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190612968565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f590612db7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361146d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146490612e49565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154b91906125f1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162d90612f6d565b60405180910390fd5b60008111611679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167090612fff565b60405180910390fd5b6000611683610c72565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116f157506116c1610c72565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c33576117326064611724600a54600d541161171157600654611715565b6008545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b9050600560009054906101000a900460ff16156118c157601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117f55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118c05743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906130b7565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561196c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119c25750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57600e54821115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390613123565b60405180910390fd5b600f5482611a198561081f565b611a239190613143565b1115611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b906131c3565b60405180910390fd5b600d6000815480929190611a77906131e3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b0657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57611b476064611b39600b54600d5411611b2657600754611b2a565b6009545b8561223990919063ffffffff16565b6122b390919063ffffffff16565b90505b6000611b553061081f565b9050601360159054906101000a900460ff16158015611bc15750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611bd95750601360169054906101000a900460ff165b8015611be6575060105481115b8015611bf55750600c54600d54115b15611c3157611c17611c1284611c0d846011546122fd565b6122fd565b611f54565b60004790506000811115611c2f57611c2e476121cd565b5b505b505b6000811115611d3757611c8e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d2e91906125f1565b60405180910390a35b611d8982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e30611de2828461237490919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ed5848661237490919063ffffffff16565b604051611ee291906125f1565b60405180910390a350505050565b6000838311158290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f91906124b1565b60405180910390fd5b5060008385611f47919061322b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8c57611f8b61325f565b5b604051908082528060200260200182016040528015611fba5781602001602082028036833780820191505090505b5090503081600081518110611fd257611fd161328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209d9190612bc2565b816001815181106120b1576120b061328e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061211830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461138f565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217c95949392919061337b565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b600080830361224b57600090506122ad565b6000828461225991906128da565b90508284826122689190613404565b146122a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229f906134a7565b60405180910390fd5b809150505b92915050565b60006122f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123be565b905092915050565b600081831161230c578261230e565b815b905092915050565b60008082846123259190613143565b90508381101561236a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236190613513565b60405180910390fd5b8091505092915050565b60006123b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef0565b905092915050565b60008083118290612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc91906124b1565b60405180910390fd5b50600083856124149190613404565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561245b578082015181840152602081019050612440565b60008484015250505050565b6000601f19601f8301169050919050565b600061248382612421565b61248d818561242c565b935061249d81856020860161243d565b6124a681612467565b840191505092915050565b600060208201905081810360008301526124cb8184612478565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612503826124d8565b9050919050565b612513816124f8565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b6000819050919050565b61254981612536565b811461255457600080fd5b50565b60008135905061256681612540565b92915050565b60008060408385031215612583576125826124d3565b5b600061259185828601612521565b92505060206125a285828601612557565b9150509250929050565b60008115159050919050565b6125c1816125ac565b82525050565b60006020820190506125dc60008301846125b8565b92915050565b6125eb81612536565b82525050565b600060208201905061260660008301846125e2565b92915050565b600080600060608486031215612625576126246124d3565b5b600061263386828701612521565b935050602061264486828701612521565b925050604061265586828701612557565b9150509250925092565b600060ff82169050919050565b6126758161265f565b82525050565b6000602082019050612690600083018461266c565b92915050565b6000602082840312156126ac576126ab6124d3565b5b60006126ba84828501612521565b91505092915050565b6126cc816124f8565b82525050565b60006020820190506126e760008301846126c3565b92915050565b60008060408385031215612704576127036124d3565b5b600061271285828601612521565b925050602061272385828601612521565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b35780860481111561278f5761278e61272d565b5b600185161561279e5780820291505b80810290506127ac8561275c565b9450612773565b94509492505050565b6000826127cc5760019050612888565b816127da5760009050612888565b81600181146127f057600281146127fa57612829565b6001915050612888565b60ff84111561280c5761280b61272d565b5b8360020a9150848211156128235761282261272d565b5b50612888565b5060208310610133831016604e8410600b841016171561285e5782820a9050838111156128595761285861272d565b5b612888565b61286b8484846001612769565b925090508184048111156128825761288161272d565b5b81810290505b9392505050565b600061289a82612536565b91506128a58361265f565b92506128d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127bc565b905092915050565b60006128e582612536565b91506128f083612536565b92508282026128fe81612536565b915082820484148315176129155761291461272d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295260208361242c565b915061295d8261291c565b602082019050919050565b6000602082019050818103600083015261298181612945565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b60006129be60128361242c565b91506129c982612988565b602082019050919050565b600060208201905081810360008301526129ed816129b1565b9050919050565b6000819050919050565b6000612a19612a14612a0f846124d8565b6129f4565b6124d8565b9050919050565b6000612a2b826129fe565b9050919050565b6000612a3d82612a20565b9050919050565b612a4d81612a32565b82525050565b6000604082019050612a686000830185612a44565b612a7560208301846125e2565b9392505050565b612a85816125ac565b8114612a9057600080fd5b50565b600081519050612aa281612a7c565b92915050565b600060208284031215612abe57612abd6124d3565b5b6000612acc84828501612a93565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612b0b60158361242c565b9150612b1682612ad5565b602082019050919050565b60006020820190508181036000830152612b3a81612afe565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7760178361242c565b9150612b8282612b41565b602082019050919050565b60006020820190508181036000830152612ba681612b6a565b9050919050565b600081519050612bbc8161250a565b92915050565b600060208284031215612bd857612bd76124d3565b5b6000612be684828501612bad565b91505092915050565b6000604082019050612c0460008301856126c3565b612c1160208301846126c3565b9392505050565b6000819050919050565b6000612c3d612c38612c3384612c18565b6129f4565b612536565b9050919050565b612c4d81612c22565b82525050565b600060c082019050612c6860008301896126c3565b612c7560208301886125e2565b612c826040830187612c44565b612c8f6060830186612c44565b612c9c60808301856126c3565b612ca960a08301846125e2565b979650505050505050565b600081519050612cc381612540565b92915050565b600080600060608486031215612ce257612ce16124d3565b5b6000612cf086828701612cb4565b9350506020612d0186828701612cb4565b9250506040612d1286828701612cb4565b9150509250925092565b6000604082019050612d3160008301856126c3565b612d3e60208301846125e2565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da160248361242c565b9150612dac82612d45565b604082019050919050565b60006020820190508181036000830152612dd081612d94565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3360228361242c565b9150612e3e82612dd7565b604082019050919050565b60006020820190508181036000830152612e6281612e26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ec560258361242c565b9150612ed082612e69565b604082019050919050565b60006020820190508181036000830152612ef481612eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5760238361242c565b9150612f6282612efb565b604082019050919050565b60006020820190508181036000830152612f8681612f4a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fe960298361242c565b9150612ff482612f8d565b604082019050919050565b6000602082019050818103600083015261301881612fdc565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130a160488361242c565b91506130ac8261301f565b606082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061310d60198361242c565b9150613118826130d7565b602082019050919050565b6000602082019050818103600083015261313c81613100565b9050919050565b600061314e82612536565b915061315983612536565b92508282019050808211156131715761317061272d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131ad601a8361242c565b91506131b882613177565b602082019050919050565b600060208201905081810360008301526131dc816131a0565b9050919050565b60006131ee82612536565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132205761321f61272d565b5b600182019050919050565b600061323682612536565b915061324183612536565b92508282039050818111156132595761325861272d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132f2816124f8565b82525050565b600061330483836132e9565b60208301905092915050565b6000602082019050919050565b6000613328826132bd565b61333281856132c8565b935061333d836132d9565b8060005b8381101561336e57815161335588826132f8565b975061336083613310565b925050600181019050613341565b5085935050505092915050565b600060a08201905061339060008301886125e2565b61339d6020830187612c44565b81810360408301526133af818661331d565b90506133be60608301856126c3565b6133cb60808301846125e2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340f82612536565b915061341a83612536565b92508261342a576134296133d5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349160218361242c565b915061349c82613435565b604082019050919050565b600060208201905081810360008301526134c081613484565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fd601b8361242c565b9150613508826134c7565b602082019050919050565b6000602082019050818103600083015261352c816134f0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f93351c82e861e64c10d36fc7841c1575dd5d9f38982a0ac338907a6151d24a264736f6c63430008120033

Deployed Bytecode Sourcemap

8640:8375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10583:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11416:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9854:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10860:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11585:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10769:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16254:348;;;;;;;;;;;;;:::i;:::-;;16835:177;;;;;;;;;;;;;:::i;:::-;;10963:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7723:148;;;;;;;;;;;;;:::i;:::-;;16609:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15155:162;;;;;;;;;;;;;:::i;:::-;;9652:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7509:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9717:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11090:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9784:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8989:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15331:672;;;;;;;;;;;;;:::i;:::-;;11265:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16011:97;;;;;;;;;;;;;:::i;:::-;;10583:83;10620:13;10653:5;;;;;;;;;;;;;;;;;10646:12;;10583:83;:::o;11416:161::-;11491:4;11508:39;11517:12;:10;:12::i;:::-;11531:7;11540:6;11508:8;:39::i;:::-;11565:4;11558:11;;11416:161;;;;:::o;9854:56::-;;;;:::o;10860:95::-;10913:7;9440:1;9499:2;:14;;;;:::i;:::-;9483:13;:30;;;;:::i;:::-;10933:14;;10860:95;:::o;11585:313::-;11683:4;11700:36;11710:6;11718:9;11729:6;11700:9;:36::i;:::-;11747:121;11756:6;11764:12;:10;:12::i;:::-;11778:89;11816:6;11778:89;;;;;;;;;;;;;;;;;:11;:19;11790:6;11778:19;;;;;;;;;;;;;;;:33;11798:12;:10;:12::i;:::-;11778:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;11747:8;:121::i;:::-;11886:4;11879:11;;11585:313;;;;;:::o;10769:83::-;10810:5;9440:1;10828:16;;10769:83;:::o;16254:348::-;16318:10;;;;;;;;;;;16304:24;;:12;:10;:12::i;:::-;:24;;;16296:33;;;;;;16340:20;16361:24;16379:4;16361:9;:24::i;:::-;16340:45;;16412:1;16399:12;:14;16396:73;;;16427:30;16444:12;16427:16;:30::i;:::-;16396:73;16479:18;16498:21;16479:40;;16544:1;16533:10;:12;16530:65;;;16559:24;16572:10;16559:12;:24::i;:::-;16530:65;16285:317;;16254:348::o;16835:177::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16927:1:::1;16903:21;:25;16895:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;16962:10;;;;;;;;;;;:19;;:42;16982:21;16962:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16835:177::o:0;10963:119::-;11029:7;11056:9;:18;11066:7;11056:18;;;;;;;;;;;;;;;;11049:25;;10963:119;;;:::o;7723:148::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7830:1:::1;7793:40;;7814:6;::::0;::::1;;;;;;;;7793:40;;;;;;;;;;;;7861:1;7844:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;7723:148::o:0;16609:218::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16705:12:::1;16727;16705:35;;16759:5;:14;;;16774:10;;;;;;;;;;;16786:6;16759:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16751:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16694:133;16609:218:::0;;:::o;15155:162::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:1:::1;9499:2;:14;;;;:::i;:::-;9483:13;:30;;;;:::i;:::-;15209:12;:22;;;;9440:1;9499:2;:14;;;;:::i;:::-;9483:13;:30;;;;:::i;:::-;15242:14;:24;;;;15282:27;9440:1;9499:2;:14;;;;:::i;:::-;9483:13;:30;;;;:::i;:::-;15282:27;;;;;;:::i;:::-;;;;;;;;15155:162::o:0;9652:58::-;;;;:::o;7509:79::-;7547:7;7574:6;;;;;;;;;;;7567:13;;7509:79;:::o;9717:60::-;;;;:::o;10674:87::-;10713:13;10746:7;;;;;;;;;;;;;;;;;10739:14;;10674:87;:::o;11090:167::-;11168:4;11185:42;11195:12;:10;:12::i;:::-;11209:9;11220:6;11185:9;:42::i;:::-;11245:4;11238:11;;11090:167;;;;:::o;9784:63::-;;;;:::o;8989:39::-;;;;;;;;;;;;;:::o;15331:672::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15395:11:::1;;;;;;;;;;;15394:12;15386:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15482:42;15445:15;;:80;;;;;;;;;;;;;;;;;;15536:58;15553:4;15568:15;;;;;;;;;;;9440:1;9499:2;:14;;;;:::i;:::-;9483:13;:30;;;;:::i;:::-;15536:8;:58::i;:::-;15639:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15621:55;;;15685:4;15692:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15621:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15605:13;;:110;;;;;;;;;;;;;;;;;;15726:15;;;;;;;;;;;:31;;;15765:21;15796:4;15802:24;15820:4;15802:9;:24::i;:::-;15827:1;15829::::0;15831:7:::1;:5;:7::i;:::-;15839:15;15726:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15873:13;;;;;;;;;;;15866:29;;;15904:15;;;;;;;;;;;15922:14;15866:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15962:4;15948:11;;:18;;;;;;;;;;;;;;;;;;15991:4;15977:11;;:18;;;;;;;;;;;;;;;;;;15331:672::o:0;11265:143::-;11346:7;11373:11;:18;11385:5;11373:18;;;;;;;;;;;;;;;:27;11392:7;11373:27;;;;;;;;;;;;;;;;11366:34;;11265:143;;;;:::o;16011:97::-;7646:12;:10;:12::i;:::-;7636:22;;:6;;;;;;;;;;:22;;;7628:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16095:5:::1;16072:20;;:28;;;;;;;;;;;;;;;;;;16011:97::o:0;5266:98::-;5319:7;5346:10;5339:17;;5266:98;:::o;11906:335::-;12016:1;11999:19;;:5;:19;;;11991:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12097:1;12078:21;;:7;:21;;;12070:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12179:6;12149:11;:18;12161:5;12149:18;;;;;;;;;;;;;;;:27;12168:7;12149:27;;;;;;;;;;;;;;;:36;;;;12217:7;12201:32;;12210:5;12201:32;;;12226:6;12201:32;;;;;;:::i;:::-;;;;;;;;11906:335;;;:::o;12249:2296::-;12353:1;12337:18;;:4;:18;;;12329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12430:1;12416:16;;:2;:16;;;12408:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12500:1;12491:6;:10;12483:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12558:17;12602:7;:5;:7::i;:::-;12594:15;;:4;:15;;;;:32;;;;;12619:7;:5;:7::i;:::-;12613:13;;:2;:13;;;;12594:32;12590:1597;;;12655:76;12727:3;12655:67;12677:15;;12667:9;;:25;12666:55;;12707:14;;12666:55;;;12694:12;;12666:55;12655:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;12643:88;;12752:20;;;;;;;;;;;12748:397;;;12813:15;;;;;;;;;;;12799:30;;:2;:30;;;;:62;;;;;12847:13;;;;;;;;;;;12833:28;;:2;:28;;;;12799:62;12795:333;;;12938:12;12896:28;:39;12925:9;12896:39;;;;;;;;;;;;;;;;:54;12888:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;13094:12;13052:28;:39;13081:9;13052:39;;;;;;;;;;;;;;;:54;;;;12795:333;12748:397;13173:13;;;;;;;;;;;13165:21;;:4;:21;;;:55;;;;;13204:15;;;;;;;;;;;13190:30;;:2;:30;;;;13165:55;:83;;;;;13226:18;:22;13245:2;13226:22;;;;;;;;;;;;;;;;;;;;;;;;;13224:24;13165:83;13161:313;;;13288:12;;13278:6;:22;;13270:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13383:14;;13373:6;13357:13;13367:2;13357:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;13349:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13447:9;;:11;;;;;;;;;:::i;:::-;;;;;;13161:313;13499:13;;;;;;;;;;;13493:19;;:2;:19;;;:43;;;;;13531:4;13516:20;;:4;:20;;;;13493:43;13490:174;;;13569:79;13644:3;13569:70;13591:16;;13581:9;;:26;13580:58;;13623:15;;13580:58;;;13609:13;;13580:58;13569:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;13557:91;;13490:174;13680:28;13711:24;13729:4;13711:9;:24::i;:::-;13680:55;;13755:6;;;;;;;;;;;13754:7;:32;;;;;13773:13;;;;;;;;;;;13765:21;;:2;:21;;;13754:32;:47;;;;;13790:11;;;;;;;;;;;13754:47;:91;;;;;13828:17;;13805:20;:40;13754:91;:125;;;;;13861:18;;13849:9;;:30;13754:125;13750:426;;;13900:68;13917:50;13921:6;13929:37;13933:20;13954:11;;13929:3;:37::i;:::-;13917:3;:50::i;:::-;13900:16;:68::i;:::-;13987:26;14016:21;13987:50;;14080:1;14059:18;:22;14056:105;;;14106:35;14119:21;14106:12;:35::i;:::-;14056:105;13881:295;13750:426;12628:1559;12590:1597;14212:1;14202:9;:11;14199:163;;;14253:39;14282:9;14253;:24;14271:4;14253:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14228:9;:24;14246:4;14228:24;;;;;;;;;;;;;;;:64;;;;14333:4;14310:40;;14319:4;14310:40;;;14340:9;14310:40;;;;;;:::i;:::-;;;;;;;;14199:163;14388:27;14408:6;14388:9;:15;14398:4;14388:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;14372:9;:15;14382:4;14372:15;;;;;;;;;;;;;;;:43;;;;14440:40;14458:21;14469:9;14458:6;:10;;:21;;;;:::i;:::-;14440:9;:13;14450:2;14440:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;14426:9;:13;14436:2;14426:13;;;;;;;;;;;;;;;:54;;;;14511:2;14496:41;;14505:4;14496:41;;;14515:21;14526:9;14515:6;:10;;:21;;;;:::i;:::-;14496:41;;;;;;:::i;:::-;;;;;;;;12318:2227;12249:2296;;;:::o;6403:190::-;6489:7;6522:1;6517;:6;;6525:12;6509:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6549:9;6565:1;6561;:5;;;;:::i;:::-;6549:17;;6584:1;6577:8;;;6403:190;;;;;:::o;14661:483::-;10201:4;10192:6;;:13;;;;;;;;;;;;;;;;;;14739:21:::1;14777:1;14763:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14739:40;;14808:4;14790;14795:1;14790:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14834:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14824:4;14829:1;14824:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14867:62;14884:4;14899:15;;;;;;;;;;;14917:11;14867:8;:62::i;:::-;14940:15;;;;;;;;;;;:66;;;15021:11;15047:1;15063:4;15090;15110:15;14940:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14728:416;10237:5:::0;10228:6;;:14;;;;;;;;;;;;;;;;;;14661:483;:::o;16117:92::-;16174:10;;;;;;;;;;;:19;;:27;16194:6;16174:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16117:92;:::o;6601:246::-;6659:7;6688:1;6683;:6;6679:47;;6713:1;6706:8;;;;6679:47;6736:9;6752:1;6748;:5;;;;:::i;:::-;6736:17;;6781:1;6776;6772;:5;;;;:::i;:::-;:10;6764:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6838:1;6831:8;;;6601:246;;;;;:::o;6855:132::-;6913:7;6940:39;6944:1;6947;6940:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6933:46;;6855:132;;;;:::o;14555:98::-;14612:7;14639:1;14637;:3;14636:9;;14644:1;14636:9;;;14642:1;14636:9;14629:16;;14555:98;;;;:::o;6072:179::-;6130:7;6150:9;6166:1;6162;:5;;;;:::i;:::-;6150:17;;6191:1;6186;:6;;6178:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6242:1;6235:8;;;6072:179;;;;:::o;6259:136::-;6317:7;6344:43;6348:1;6351;6344:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6337:50;;6259:136;;;;:::o;6995:189::-;7081:7;7113:1;7109;:5;7116:12;7101:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7140:9;7156:1;7152;:5;;;;:::i;:::-;7140:17;;7175:1;7168:8;;;6995:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:168::-;10075:20;10071:1;10063:6;10059:14;10052:44;9935:168;:::o;10109:366::-;10251:3;10272:67;10336:2;10331:3;10272:67;:::i;:::-;10265:74;;10348:93;10437:3;10348:93;:::i;:::-;10466:2;10461:3;10457:12;10450:19;;10109:366;;;:::o;10481:419::-;10647:4;10685:2;10674:9;10670:18;10662:26;;10734:9;10728:4;10724:20;10720:1;10709:9;10705:17;10698:47;10762:131;10888:4;10762:131;:::i;:::-;10754:139;;10481:419;;;:::o;10906:60::-;10934:3;10955:5;10948:12;;10906:60;;;:::o;10972:142::-;11022:9;11055:53;11073:34;11082:24;11100:5;11082:24;:::i;:::-;11073:34;:::i;:::-;11055:53;:::i;:::-;11042:66;;10972:142;;;:::o;11120:126::-;11170:9;11203:37;11234:5;11203:37;:::i;:::-;11190:50;;11120:126;;;:::o;11252:134::-;11310:9;11343:37;11374:5;11343:37;:::i;:::-;11330:50;;11252:134;;;:::o;11392:147::-;11487:45;11526:5;11487:45;:::i;:::-;11482:3;11475:58;11392:147;;:::o;11545:348::-;11674:4;11712:2;11701:9;11697:18;11689:26;;11725:79;11801:1;11790:9;11786:17;11777:6;11725:79;:::i;:::-;11814:72;11882:2;11871:9;11867:18;11858:6;11814:72;:::i;:::-;11545:348;;;;;:::o;11899:116::-;11969:21;11984:5;11969:21;:::i;:::-;11962:5;11959:32;11949:60;;12005:1;12002;11995:12;11949:60;11899:116;:::o;12021:137::-;12075:5;12106:6;12100:13;12091:22;;12122:30;12146:5;12122:30;:::i;:::-;12021:137;;;;:::o;12164:345::-;12231:6;12280:2;12268:9;12259:7;12255:23;12251:32;12248:119;;;12286:79;;:::i;:::-;12248:119;12406:1;12431:61;12484:7;12475:6;12464:9;12460:22;12431:61;:::i;:::-;12421:71;;12377:125;12164:345;;;;:::o;12515:171::-;12655:23;12651:1;12643:6;12639:14;12632:47;12515:171;:::o;12692:366::-;12834:3;12855:67;12919:2;12914:3;12855:67;:::i;:::-;12848:74;;12931:93;13020:3;12931:93;:::i;:::-;13049:2;13044:3;13040:12;13033:19;;12692:366;;;:::o;13064:419::-;13230:4;13268:2;13257:9;13253:18;13245:26;;13317:9;13311:4;13307:20;13303:1;13292:9;13288:17;13281:47;13345:131;13471:4;13345:131;:::i;:::-;13337:139;;13064:419;;;:::o;13489:173::-;13629:25;13625:1;13617:6;13613:14;13606:49;13489:173;:::o;13668:366::-;13810:3;13831:67;13895:2;13890:3;13831:67;:::i;:::-;13824:74;;13907:93;13996:3;13907:93;:::i;:::-;14025:2;14020:3;14016:12;14009:19;;13668:366;;;:::o;14040:419::-;14206:4;14244:2;14233:9;14229:18;14221:26;;14293:9;14287:4;14283:20;14279:1;14268:9;14264:17;14257:47;14321:131;14447:4;14321:131;:::i;:::-;14313:139;;14040:419;;;:::o;14465:143::-;14522:5;14553:6;14547:13;14538:22;;14569:33;14596:5;14569:33;:::i;:::-;14465:143;;;;:::o;14614:351::-;14684:6;14733:2;14721:9;14712:7;14708:23;14704:32;14701:119;;;14739:79;;:::i;:::-;14701:119;14859:1;14884:64;14940:7;14931:6;14920:9;14916:22;14884:64;:::i;:::-;14874:74;;14830:128;14614:351;;;;:::o;14971:332::-;15092:4;15130:2;15119:9;15115:18;15107:26;;15143:71;15211:1;15200:9;15196:17;15187:6;15143:71;:::i;:::-;15224:72;15292:2;15281:9;15277:18;15268:6;15224:72;:::i;:::-;14971:332;;;;;:::o;15309:85::-;15354:7;15383:5;15372:16;;15309:85;;;:::o;15400:158::-;15458:9;15491:61;15509:42;15518:32;15544:5;15518:32;:::i;:::-;15509:42;:::i;:::-;15491:61;:::i;:::-;15478:74;;15400:158;;;:::o;15564:147::-;15659:45;15698:5;15659:45;:::i;:::-;15654:3;15647:58;15564:147;;:::o;15717:807::-;15966:4;16004:3;15993:9;15989:19;15981:27;;16018:71;16086:1;16075:9;16071:17;16062:6;16018:71;:::i;:::-;16099:72;16167:2;16156:9;16152:18;16143:6;16099:72;:::i;:::-;16181:80;16257:2;16246:9;16242:18;16233:6;16181:80;:::i;:::-;16271;16347:2;16336:9;16332:18;16323:6;16271:80;:::i;:::-;16361:73;16429:3;16418:9;16414:19;16405:6;16361:73;:::i;:::-;16444;16512:3;16501:9;16497:19;16488:6;16444:73;:::i;:::-;15717:807;;;;;;;;;:::o;16530:143::-;16587:5;16618:6;16612:13;16603:22;;16634:33;16661:5;16634:33;:::i;:::-;16530:143;;;;:::o;16679:663::-;16767:6;16775;16783;16832:2;16820:9;16811:7;16807:23;16803:32;16800:119;;;16838:79;;:::i;:::-;16800:119;16958:1;16983:64;17039:7;17030:6;17019:9;17015:22;16983:64;:::i;:::-;16973:74;;16929:128;17096:2;17122:64;17178:7;17169:6;17158:9;17154:22;17122:64;:::i;:::-;17112:74;;17067:129;17235:2;17261:64;17317:7;17308:6;17297:9;17293:22;17261:64;:::i;:::-;17251:74;;17206:129;16679:663;;;;;:::o;17348:332::-;17469:4;17507:2;17496:9;17492:18;17484:26;;17520:71;17588:1;17577:9;17573:17;17564:6;17520:71;:::i;:::-;17601:72;17669:2;17658:9;17654:18;17645:6;17601:72;:::i;:::-;17348:332;;;;;:::o;17686:223::-;17826:34;17822:1;17814:6;17810:14;17803:58;17895:6;17890:2;17882:6;17878:15;17871:31;17686:223;:::o;17915:366::-;18057:3;18078:67;18142:2;18137:3;18078:67;:::i;:::-;18071:74;;18154:93;18243:3;18154:93;:::i;:::-;18272:2;18267:3;18263:12;18256:19;;17915:366;;;:::o;18287:419::-;18453:4;18491:2;18480:9;18476:18;18468:26;;18540:9;18534:4;18530:20;18526:1;18515:9;18511:17;18504:47;18568:131;18694:4;18568:131;:::i;:::-;18560:139;;18287:419;;;:::o;18712:221::-;18852:34;18848:1;18840:6;18836:14;18829:58;18921:4;18916:2;18908:6;18904:15;18897:29;18712:221;:::o;18939:366::-;19081:3;19102:67;19166:2;19161:3;19102:67;:::i;:::-;19095:74;;19178:93;19267:3;19178:93;:::i;:::-;19296:2;19291:3;19287:12;19280:19;;18939:366;;;:::o;19311:419::-;19477:4;19515:2;19504:9;19500:18;19492:26;;19564:9;19558:4;19554:20;19550:1;19539:9;19535:17;19528:47;19592:131;19718:4;19592:131;:::i;:::-;19584:139;;19311:419;;;:::o;19736:224::-;19876:34;19872:1;19864:6;19860:14;19853:58;19945:7;19940:2;19932:6;19928:15;19921:32;19736:224;:::o;19966:366::-;20108:3;20129:67;20193:2;20188:3;20129:67;:::i;:::-;20122:74;;20205:93;20294:3;20205:93;:::i;:::-;20323:2;20318:3;20314:12;20307:19;;19966:366;;;:::o;20338:419::-;20504:4;20542:2;20531:9;20527:18;20519:26;;20591:9;20585:4;20581:20;20577:1;20566:9;20562:17;20555:47;20619:131;20745:4;20619:131;:::i;:::-;20611:139;;20338:419;;;:::o;20763:222::-;20903:34;20899:1;20891:6;20887:14;20880:58;20972:5;20967:2;20959:6;20955:15;20948:30;20763:222;:::o;20991:366::-;21133:3;21154:67;21218:2;21213:3;21154:67;:::i;:::-;21147:74;;21230:93;21319:3;21230:93;:::i;:::-;21348:2;21343:3;21339:12;21332:19;;20991:366;;;:::o;21363:419::-;21529:4;21567:2;21556:9;21552:18;21544:26;;21616:9;21610:4;21606:20;21602:1;21591:9;21587:17;21580:47;21644:131;21770:4;21644:131;:::i;:::-;21636:139;;21363:419;;;:::o;21788:228::-;21928:34;21924:1;21916:6;21912:14;21905:58;21997:11;21992:2;21984:6;21980:15;21973:36;21788:228;:::o;22022:366::-;22164:3;22185:67;22249:2;22244:3;22185:67;:::i;:::-;22178:74;;22261:93;22350:3;22261:93;:::i;:::-;22379:2;22374:3;22370:12;22363:19;;22022:366;;;:::o;22394:419::-;22560:4;22598:2;22587:9;22583:18;22575:26;;22647:9;22641:4;22637:20;22633:1;22622:9;22618:17;22611:47;22675:131;22801:4;22675:131;:::i;:::-;22667:139;;22394:419;;;:::o;22819:296::-;22959:34;22955:1;22947:6;22943:14;22936:58;23028:34;23023:2;23015:6;23011:15;23004:59;23097:10;23092:2;23084:6;23080:15;23073:35;22819:296;:::o;23121:366::-;23263:3;23284:67;23348:2;23343:3;23284:67;:::i;:::-;23277:74;;23360:93;23449:3;23360:93;:::i;:::-;23478:2;23473:3;23469:12;23462:19;;23121:366;;;:::o;23493:419::-;23659:4;23697:2;23686:9;23682:18;23674:26;;23746:9;23740:4;23736:20;23732:1;23721:9;23717:17;23710:47;23774:131;23900:4;23774:131;:::i;:::-;23766:139;;23493:419;;;:::o;23918:175::-;24058:27;24054:1;24046:6;24042:14;24035:51;23918:175;:::o;24099:366::-;24241:3;24262:67;24326:2;24321:3;24262:67;:::i;:::-;24255:74;;24338:93;24427:3;24338:93;:::i;:::-;24456:2;24451:3;24447:12;24440:19;;24099:366;;;:::o;24471:419::-;24637:4;24675:2;24664:9;24660:18;24652:26;;24724:9;24718:4;24714:20;24710:1;24699:9;24695:17;24688:47;24752:131;24878:4;24752:131;:::i;:::-;24744:139;;24471:419;;;:::o;24896:191::-;24936:3;24955:20;24973:1;24955:20;:::i;:::-;24950:25;;24989:20;25007:1;24989:20;:::i;:::-;24984:25;;25032:1;25029;25025:9;25018:16;;25053:3;25050:1;25047:10;25044:36;;;25060:18;;:::i;:::-;25044:36;24896:191;;;;:::o;25093:176::-;25233:28;25229:1;25221:6;25217:14;25210:52;25093:176;:::o;25275:366::-;25417:3;25438:67;25502:2;25497:3;25438:67;:::i;:::-;25431:74;;25514:93;25603:3;25514:93;:::i;:::-;25632:2;25627:3;25623:12;25616:19;;25275:366;;;:::o;25647:419::-;25813:4;25851:2;25840:9;25836:18;25828:26;;25900:9;25894:4;25890:20;25886:1;25875:9;25871:17;25864:47;25928:131;26054:4;25928:131;:::i;:::-;25920:139;;25647:419;;;:::o;26072:233::-;26111:3;26134:24;26152:5;26134:24;:::i;:::-;26125:33;;26180:66;26173:5;26170:77;26167:103;;26250:18;;:::i;:::-;26167:103;26297:1;26290:5;26286:13;26279:20;;26072:233;;;:::o;26311:194::-;26351:4;26371:20;26389:1;26371:20;:::i;:::-;26366:25;;26405:20;26423:1;26405:20;:::i;:::-;26400:25;;26449:1;26446;26442:9;26434:17;;26473:1;26467:4;26464:11;26461:37;;;26478:18;;:::i;:::-;26461:37;26311:194;;;;:::o;26511:180::-;26559:77;26556:1;26549:88;26656:4;26653:1;26646:15;26680:4;26677:1;26670:15;26697:180;26745:77;26742:1;26735:88;26842:4;26839:1;26832:15;26866:4;26863:1;26856:15;26883:114;26950:6;26984:5;26978:12;26968:22;;26883:114;;;:::o;27003:184::-;27102:11;27136:6;27131:3;27124:19;27176:4;27171:3;27167:14;27152:29;;27003:184;;;;:::o;27193:132::-;27260:4;27283:3;27275:11;;27313:4;27308:3;27304:14;27296:22;;27193:132;;;:::o;27331:108::-;27408:24;27426:5;27408:24;:::i;:::-;27403:3;27396:37;27331:108;;:::o;27445:179::-;27514:10;27535:46;27577:3;27569:6;27535:46;:::i;:::-;27613:4;27608:3;27604:14;27590:28;;27445:179;;;;:::o;27630:113::-;27700:4;27732;27727:3;27723:14;27715:22;;27630:113;;;:::o;27779:732::-;27898:3;27927:54;27975:5;27927:54;:::i;:::-;27997:86;28076:6;28071:3;27997:86;:::i;:::-;27990:93;;28107:56;28157:5;28107:56;:::i;:::-;28186:7;28217:1;28202:284;28227:6;28224:1;28221:13;28202:284;;;28303:6;28297:13;28330:63;28389:3;28374:13;28330:63;:::i;:::-;28323:70;;28416:60;28469:6;28416:60;:::i;:::-;28406:70;;28262:224;28249:1;28246;28242:9;28237:14;;28202:284;;;28206:14;28502:3;28495:10;;27903:608;;;27779:732;;;;:::o;28517:831::-;28780:4;28818:3;28807:9;28803:19;28795:27;;28832:71;28900:1;28889:9;28885:17;28876:6;28832:71;:::i;:::-;28913:80;28989:2;28978:9;28974:18;28965:6;28913:80;:::i;:::-;29040:9;29034:4;29030:20;29025:2;29014:9;29010:18;29003:48;29068:108;29171:4;29162:6;29068:108;:::i;:::-;29060:116;;29186:72;29254:2;29243:9;29239:18;29230:6;29186:72;:::i;:::-;29268:73;29336:3;29325:9;29321:19;29312:6;29268:73;:::i;:::-;28517:831;;;;;;;;:::o;29354:180::-;29402:77;29399:1;29392:88;29499:4;29496:1;29489:15;29523:4;29520:1;29513:15;29540:185;29580:1;29597:20;29615:1;29597:20;:::i;:::-;29592:25;;29631:20;29649:1;29631:20;:::i;:::-;29626:25;;29670:1;29660:35;;29675:18;;:::i;:::-;29660:35;29717:1;29714;29710:9;29705:14;;29540:185;;;;:::o;29731:220::-;29871:34;29867:1;29859:6;29855:14;29848:58;29940:3;29935:2;29927:6;29923:15;29916:28;29731:220;:::o;29957:366::-;30099:3;30120:67;30184:2;30179:3;30120:67;:::i;:::-;30113:74;;30196:93;30285:3;30196:93;:::i;:::-;30314:2;30309:3;30305:12;30298:19;;29957:366;;;:::o;30329:419::-;30495:4;30533:2;30522:9;30518:18;30510:26;;30582:9;30576:4;30572:20;30568:1;30557:9;30553:17;30546:47;30610:131;30736:4;30610:131;:::i;:::-;30602:139;;30329:419;;;:::o;30754:177::-;30894:29;30890:1;30882:6;30878:14;30871:53;30754:177;:::o;30937:366::-;31079:3;31100:67;31164:2;31159:3;31100:67;:::i;:::-;31093:74;;31176:93;31265:3;31176:93;:::i;:::-;31294:2;31289:3;31285:12;31278:19;;30937:366;;;:::o;31309:419::-;31475:4;31513:2;31502:9;31498:18;31490:26;;31562:9;31556:4;31552:20;31548:1;31537:9;31533:17;31526:47;31590:131;31716:4;31590:131;:::i;:::-;31582:139;;31309:419;;;:::o

Swarm Source

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