ETH Price: $3,298.30 (-3.95%)
Gas: 24 Gwei

Token

Billion Dollar Token ($BDT)
 

Overview

Max Total Supply

1,000,000,000 $BDT

Holders

131

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,011,236.352783654962050589 $BDT

Value
$0.00
0x6dc0e22307b7cb9ed78431561e9146b55785d273
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:
BillionDollarToken

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

                ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣴⣶⣶⣶⣶⣦⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                ⠀⠀⠀⠀⠀⠀⣀⣤⣾⣿⡿⠿⠛⠛⠛⠛⠛⠛⠻⢿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀
                ⠀⠀⠀⠀⢠⣼⣿⡿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠈⠙⠿⣿⣷⣄⠀⠀⠀⠀
                ⠀⠀⠀⣰⣿⡿⠋⠀⠀⠀⠀⠀⣿⡇⠀⢸⣿⡇⠀⠀⠀⠀ ⠀⠈⢿⣿⣦⡀⠀⠀
                ⠀⠀⣸⣿⡿⠀⠀⠀⠸⠿⣿⣿⣿⡿⠿⠿⣿⣿⣿⣶⣄⠀⠀⠀⠀⢹⣿⣷⠀⠀
                ⠀⢠⣿⡿⠁⠀⠀⠀⠀⠀⢸⣿⣿⡇⠀⠀⠀⠈⣿⣿⣿⠀⠀⠀⠀⠀ ⢹⣿⣧⠀
                ⠀⣾⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⠀⠀⢀⣠⣿⣿⠟⠀⠀⠀⠀⠀ ⠈⣿⣿⠀
                ⠀⣿⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⡿⠿⠿⠿⣿⣿⣥⣄⠀⠀⠀⠀ ⠀⠀⣿⣿⠀
                ⠀⢿⣿⡇⠀⠀⠀⠀⠀⠀⢸⣿⣿⡇⠀⠀⠀⠀⢻⣿⣿⣧⠀⠀ ⠀⠀⢀⣿⣿⠀
                ⠀⠘⣿⣷⡀⠀⠀⠀⠀⠀⢸⣿⣿⡇⠀⠀⠀⠀⣼⣿⣿⡿⠀ ⠀⠀⠀⣸⣿⡟⠀
                ⠀⠀⢹⣿⣷⡀⠀⠀⢰⣶⣿⣿⣿⣷⣶⣶⣾⣿⣿⠿⠛⠁ ⠀⠀⣸⣿⡿⠀⠀
                ⠀⠀⠀⠹⣿⣷⣄⠀⠀⠀⠀⠀⣿⡇⠀⢸⣿⡇⠀⠀⠀ ⠀⠀⢀⣾⣿⠟⠁⠀⠀
                ⠀⠀⠀⠀⠘⢻⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⢀⣠⣾⣿⡿⠋⠀⠀⠀⠀
                ⠀⠀⠀⠀⠀⠀⠈⠛⢿⣿⣷⣶⣤⣤⣤⣤⣤⣤⣴⣾⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀
                ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠛⠻⠿⠿⠿⠿⠟⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
                World’s First $BDT-BILLION DOLLAR TOKEN

Website: https://billiondollartoken.xyz/
Twitter: https://x.com/BDTErcToken
Telegram: https://t.me/billiondollartoken_portal

*/

// SPDX-License-Identifier:MIT

pragma solidity 0.8.22;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

abstract contract Ownable is Context {

    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any _account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }


}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapRouter {
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract BillionDollarToken  is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Billion Dollar Token";
    string private _symbol = "$BDT";
    uint8 private _decimals = 18; 

    address public marketingWallet = address(0xFBbA23df54308C513132Baedb8516873dc3691Fa);
    address public TeamWallet = address(0x547025346D71a93be1ba6662A9ddBa6Bbe2d52aa);
    address public developerWallet;
    
    struct feeStruct {
        uint256 buy;
        uint256 sell;
        uint256 denominator;
    }
    feeStruct public fee;

    bool public launched;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public IsChargePair;
    mapping (address => bool) public isMarketPair;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public maxTransaction =  _totalSupply.mul(3).div(100);
    uint256 public maxWallet = _totalSupply.mul(3).div(100);

    uint256 public swapThreshold = _totalSupply.mul(5).div(10000);

    bool public swapEnabled = true;
    bool public swapbylimit = false;
    bool public secureWhale = true;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }

    modifier onlyGuard() {
        require(msg.sender == developerWallet,'Invalid Caller!');
        _;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        developerWallet = msg.sender;

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(address(this),_dexRouter.WETH());

        dexRouter = _dexRouter;

        isMarketPair[dexPair] = true;

        IsChargePair[address(this)] = true;
        IsChargePair[developerWallet] = true;

        fee.denominator = 100;
        fee.buy = 20;
        fee.sell = 25;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    receive() external payable {}

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            if(!IsChargePair[sender] && !IsChargePair[recipient] && secureWhale) {
                require(launched,"Not Launched!");
                require(amount <= maxTransaction, "Exceeds maxTxAmount");
                if(!isMarketPair[recipient]) {
                    require(balanceOf(recipient).add(amount) <= maxWallet, "Exceeds maxWallet");
                }
            }            

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && 
                !inSwap && 
                !isMarketPair[sender] && 
                swapEnabled &&
                !IsChargePair[sender] &&
                !IsChargePair[recipient]
                ) {
                swapBack(contractTokenBalance);
            }
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(IsChargePair[sender] || IsChargePair[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(fee.buy).div(fee.denominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(fee.sell).div(fee.denominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0) {
            uint split = amountReceived.div(2);
            uint remain = amountReceived.sub(split);
            if(split > 0) {
                (bool os1,) = payable(marketingWallet).call{value: split}("");
                os1 = true;  //bypass check
            }
            if(remain > 0) {
                (bool os2,) = payable(TeamWallet).call{value: remain}("");
                os2 = true;  //bypass check
            }
        }

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            1, 
            path,
            address(this), 
            block.timestamp + 30
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function setMarketingWallet(address newMarketingAddress, address newTeamAddress) external onlyOwner {
        marketingWallet = newMarketingAddress;
        TeamWallet = newTeamAddress;
    }

    function rescueFunds() external onlyGuard { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function setDeveloperWallet(address _newWallet) external onlyOwner {
        developerWallet = _newWallet;
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyGuard {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFeeSetting(uint _buy, uint _sell) external onlyOwner {
        require(_buy <= 35 && _sell <= 30,"Max tax Limit Reached!");
        fee.buy = _buy;
        fee.sell = _sell;
    }   

    function setChargeFee(address _adr,bool _status) external onlyOwner {
        IsChargePair[_adr] = _status;
    }

    function openTrade() external onlyOwner() {
        require(!launched,"Already Enabled!");
        launched = true;
    }

    function setAntiWhalePercentage(uint256 _per) external onlyOwner() {
        require(_per >=  1 && secureWhale,"Minimum Limit is 1% or Whale Must be Active");
        maxTransaction = _totalSupply.mul(_per).div(100);
        maxWallet = _totalSupply.mul(_per).div(100);
    }

    function setSwapBackSettings(bool _enabled, bool _limited, uint _threshold)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        swapThreshold = _threshold;
    }

    function removeLimits() external onlyOwner {
        maxTransaction = _totalSupply;
        maxWallet = _totalSupply;
        secureWhale = false;
    }


}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":[{"internalType":"address","name":"","type":"address"}],"name":"IsChargePair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TeamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"view","type":"function"},{"inputs":[],"name":"developerWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secureWhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_per","type":"uint256"}],"name":"setAntiWhalePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setChargeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setDeveloperWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFeeSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingAddress","type":"address"},{"internalType":"address","name":"newTeamAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280601481526020017f42696c6c696f6e20446f6c6c617220546f6b656e000000000000000000000000815250600190816200004a919062000b42565b506040518060400160405280600481526020017f24424454000000000000000000000000000000000000000000000000000000008152506002908162000091919062000b42565b50601260035f6101000a81548160ff021916908360ff16021790555073fbba23df54308c513132baedb8516873dc3691fa600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073547025346d71a93be1ba6662a9ddba6bbe2d52aa60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060035f9054906101000a900460ff16600a62000173919062000daf565b633b9aca0062000184919062000dff565b600e55620001b46064620001a56003600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b600f55620001e46064620001d56003600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b60105562000215612710620002066005600e54620006df60201b90919060201c565b6200075f60201b90919060201c565b601155600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff02191690831515021790555034801562000273575f80fd5b506200029462000288620007b060201b60201c565b620007b760201b60201c565b3360055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000336573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200035c919062000eae565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003e8919062000eae565b6040518363ffffffff1660e01b81526004016200040792919062000eef565b6020604051808303815f875af115801562000424573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044a919062000eae565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506064600660020181905550601460065f01819055506019600660010181905550600e54600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051620006d0919062000f2b565b60405180910390a350620010ea565b5f808303620006f1575f905062000759565b5f828462000700919062000dff565b905082848262000711919062000f73565b1462000754576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074b906200102e565b60405180910390fd5b809150505b92915050565b5f620007a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087860201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083118290620008c1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b89190620010c8565b60405180910390fd5b505f8385620008d1919062000f73565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200095a57607f821691505b60208210810362000970576200096f62000915565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620009d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000997565b620009e0868362000997565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000a2a62000a2462000a1e84620009f8565b62000a01565b620009f8565b9050919050565b5f819050919050565b62000a458362000a0a565b62000a5d62000a548262000a31565b848454620009a3565b825550505050565b5f90565b62000a7362000a65565b62000a8081848462000a3a565b505050565b5b8181101562000aa75762000a9b5f8262000a69565b60018101905062000a86565b5050565b601f82111562000af65762000ac08162000976565b62000acb8462000988565b8101602085101562000adb578190505b62000af362000aea8562000988565b83018262000a85565b50505b505050565b5f82821c905092915050565b5f62000b185f198460080262000afb565b1980831691505092915050565b5f62000b32838362000b07565b9150826002028217905092915050565b62000b4d82620008de565b67ffffffffffffffff81111562000b695762000b68620008e8565b5b62000b75825462000942565b62000b8282828562000aab565b5f60209050601f83116001811462000bb8575f841562000ba3578287015190505b62000baf858262000b25565b86555062000c1e565b601f19841662000bc88662000976565b5f5b8281101562000bf15784890151825560018201915060208501945060208101905062000bca565b8683101562000c11578489015162000c0d601f89168262000b07565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000cb05780860481111562000c885762000c8762000c26565b5b600185161562000c985780820291505b808102905062000ca88562000c53565b945062000c68565b94509492505050565b5f8262000cca576001905062000d9c565b8162000cd9575f905062000d9c565b816001811462000cf2576002811462000cfd5762000d33565b600191505062000d9c565b60ff84111562000d125762000d1162000c26565b5b8360020a91508482111562000d2c5762000d2b62000c26565b5b5062000d9c565b5060208310610133831016604e8410600b841016171562000d6d5782820a90508381111562000d675762000d6662000c26565b5b62000d9c565b62000d7c848484600162000c5f565b9250905081840481111562000d965762000d9562000c26565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000dbb82620009f8565b915062000dc88362000da3565b925062000df77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000cb9565b905092915050565b5f62000e0b82620009f8565b915062000e1883620009f8565b925082820262000e2881620009f8565b9150828204841483151762000e425762000e4162000c26565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000e788262000e4d565b9050919050565b62000e8a8162000e6c565b811462000e95575f80fd5b50565b5f8151905062000ea88162000e7f565b92915050565b5f6020828403121562000ec65762000ec562000e49565b5b5f62000ed58482850162000e98565b91505092915050565b62000ee98162000e6c565b82525050565b5f60408201905062000f045f83018562000ede565b62000f13602083018462000ede565b9392505050565b62000f2581620009f8565b82525050565b5f60208201905062000f405f83018462000f1a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f7f82620009f8565b915062000f8c83620009f8565b92508262000f9f5762000f9e62000f46565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200101660218362000faa565b9150620010238262000fba565b604082019050919050565b5f6020820190508181035f830152620010478162001008565b9050919050565b5f5b838110156200106d57808201518184015260208101905062001050565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200109482620008de565b620010a0818562000faa565b9350620010b28185602086016200104e565b620010bd8162001078565b840191505092915050565b5f6020820190508181035f830152620010e2818462001088565b905092915050565b613f4080620010f85f395ff3fe60806040526004361061021d575f3560e01c8063751039fc11610122578063dd62ed3e116100aa578063f242ab411161006e578063f242ab41146107a0578063f2fde38b146107ca578063f8b45b05146107f2578063fa0486dc1461081c578063fb201b1d1461084457610224565b8063dd62ed3e146106d0578063ddca3f431461070c578063e3fb4e1c14610738578063e6b2603b14610760578063e9fd33941461077657610224565b80638da5cb5b116100f15780638da5cb5b146105ee57806395d89b4114610618578063a9059cbb14610642578063c3f70b521461067e578063cea9d26f146106a857610224565b8063751039fc1461055c57806375f0a874146105725780638091f3bf1461059c57806388700798146105c657610224565b80632f15d34a116101a5578063677a887011610174578063677a88701461048e5780636cd56878146104b85780636ddd1713146104e057806370a082311461050a578063715018a61461054657610224565b80632f15d34a146103c2578063313ce567146103ec5780633ecad271146104165780635e8bf1d61461045257610224565b8063095ea7b3116101ec578063095ea7b3146102ce578063180550b81461030a57806318160ddd14610332578063185870f91461035c57806323b872dd1461038657610224565b806301ae592b146102285780630445b6671461025057806306fdde031461027a5780630758d924146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612dc6565b61085a565b005b34801561025b575f80fd5b50610264610915565b6040516102719190612e25565b60405180910390f35b348015610285575f80fd5b5061028e61091b565b60405161029b9190612ec8565b60405180910390f35b3480156102af575f80fd5b506102b86109ab565b6040516102c59190612f62565b60405180910390f35b3480156102d9575f80fd5b506102f460048036038101906102ef9190612fb6565b6109d1565b6040516103019190613003565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b919061301c565b6109ee565b005b34801561033d575f80fd5b50610346610ad2565b6040516103539190612e25565b60405180910390f35b348015610367575f80fd5b50610370610adb565b60405161037d9190613069565b60405180910390f35b348015610391575f80fd5b506103ac60048036038101906103a79190613082565b610b00565b6040516103b99190613003565b60405180910390f35b3480156103cd575f80fd5b506103d6610bd5565b6040516103e39190613003565b60405180910390f35b3480156103f7575f80fd5b50610400610be8565b60405161040d91906130ed565b60405180910390f35b348015610421575f80fd5b5061043c60048036038101906104379190613106565b610bfd565b6040516104499190613003565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190613106565b610c1a565b6040516104859190613003565b60405180910390f35b348015610499575f80fd5b506104a2610c37565b6040516104af9190613069565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190613106565b610c5c565b005b3480156104eb575f80fd5b506104f4610d1b565b6040516105019190613003565b60405180910390f35b348015610515575f80fd5b50610530600480360381019061052b9190613106565b610d2d565b60405161053d9190612e25565b60405180910390f35b348015610551575f80fd5b5061055a610d73565b005b348015610567575f80fd5b50610570610dfa565b005b34801561057d575f80fd5b50610586610ea4565b6040516105939190613069565b60405180910390f35b3480156105a7575f80fd5b506105b0610eca565b6040516105bd9190613003565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190613131565b610edc565b005b3480156105f9575f80fd5b50610602610fb0565b60405161060f9190613069565b60405180910390f35b348015610623575f80fd5b5061062c610fd7565b6040516106399190612ec8565b60405180910390f35b34801561064d575f80fd5b5061066860048036038101906106639190612fb6565b611067565b6040516106759190613003565b60405180910390f35b348015610689575f80fd5b50610692611085565b60405161069f9190612e25565b60405180910390f35b3480156106b3575f80fd5b506106ce60048036038101906106c99190613082565b61108b565b005b3480156106db575f80fd5b506106f660048036038101906106f1919061316f565b611257565b6040516107039190612e25565b60405180910390f35b348015610717575f80fd5b506107206112d9565b60405161072f939291906131ad565b60405180910390f35b348015610743575f80fd5b5061075e6004803603810190610759919061316f565b6112f0565b005b34801561076b575f80fd5b506107746113f1565b005b348015610781575f80fd5b5061078a61152b565b6040516107979190613003565b60405180910390f35b3480156107ab575f80fd5b506107b461153e565b6040516107c19190613069565b60405180910390f35b3480156107d5575f80fd5b506107f060048036038101906107eb9190613106565b611563565b005b3480156107fd575f80fd5b50610806611659565b6040516108139190612e25565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906131e2565b61165f565b005b34801561084f575f80fd5b50610858611796565b005b61086261187d565b73ffffffffffffffffffffffffffffffffffffffff16610880610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90613257565b60405180910390fd5b8260125f6101000a81548160ff02191690831515021790555081601260016101000a81548160ff02191690831515021790555080601181905550505050565b60115481565b60606001805461092a906132a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610956906132a2565b80156109a15780601f10610978576101008083540402835291602001916109a1565b820191905f5260205f20905b81548152906001019060200180831161098457829003601f168201915b5050505050905090565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109e46109dd61187d565b8484611884565b6001905092915050565b6109f661187d565b73ffffffffffffffffffffffffffffffffffffffff16610a14610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613257565b60405180910390fd5b60238211158015610a7c5750601e8111155b610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab29061331c565b60405180910390fd5b8160065f0181905550806006600101819055505050565b5f600e54905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b0c848484611a47565b50610bca84610b1961187d565b610bc585604051806060016040528060288152602001613ee360289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b7c61187d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b611884565b600190509392505050565b601260029054906101000a900460ff1681565b5f60035f9054906101000a900460ff16905090565b600d602052805f5260405f205f915054906101000a900460ff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c6461187d565b73ffffffffffffffffffffffffffffffffffffffff16610c82610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613257565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125f9054906101000a900460ff1681565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d7b61187d565b73ffffffffffffffffffffffffffffffffffffffff16610d99610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613257565b60405180910390fd5b610df85f61212a565b565b610e0261187d565b73ffffffffffffffffffffffffffffffffffffffff16610e20610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90613257565b60405180910390fd5b600e54600f81905550600e546010819055505f601260026101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1681565b610ee461187d565b73ffffffffffffffffffffffffffffffffffffffff16610f02610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90613257565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610fe6906132a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611012906132a2565b801561105d5780601f106110345761010080835404028352916020019161105d565b820191905f5260205f20905b81548152906001019060200180831161104057829003601f168201915b5050505050905090565b5f61107a61107361187d565b8484611a47565b506001905092915050565b600f5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190613384565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016111459291906133a2565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111cf919061340d565b5f604051808303815f865af19150503d805f8114611208576040519150601f19603f3d011682016040523d82523d5f602084013e61120d565b606091505b5050905080611251576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112489061346d565b60405180910390fd5b50505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006805f0154908060010154908060020154905083565b6112f861187d565b73ffffffffffffffffffffffffffffffffffffffff16611316610fb0565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390613257565b60405180910390fd5b81600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613384565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516114a5906134ae565b5f6040518083038185875af1925050503d805f81146114df576040519150601f19603f3d011682016040523d82523d5f602084013e6114e4565b606091505b5050905080611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f9061350c565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61156b61187d565b73ffffffffffffffffffffffffffffffffffffffff16611589610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690613257565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061359a565b60405180910390fd5b6116568161212a565b50565b60105481565b61166761187d565b73ffffffffffffffffffffffffffffffffffffffff16611685610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613257565b60405180910390fd5b600181101580156116f85750601260029054906101000a900460ff165b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90613628565b60405180910390fd5b61175f606461175183600e546121eb90919063ffffffff16565b61226290919063ffffffff16565b600f8190555061178d606461177f83600e546121eb90919063ffffffff16565b61226290919063ffffffff16565b60108190555050565b61179e61187d565b73ffffffffffffffffffffffffffffffffffffffff166117bc610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180990613257565b60405180910390fd5b60095f9054906101000a900460ff1615611861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185890613690565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e99061371e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611957906137ac565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190612e25565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9061383a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b906138c8565b60405180910390fd5b5f8211611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d90613956565b60405180910390fd5b601360149054906101000a900460ff1615611b8d57611b868484846122ab565b90506120c1565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c2b5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c435750601260029054906101000a900460ff165b15611d8a5760095f9054906101000a900460ff16611c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8d906139be565b60405180910390fd5b600f54821115611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290613a26565b60405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d8957601054611d4783611d3986610d2d565b61247590919063ffffffff16565b1115611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613a8e565b60405180910390fd5b5b5b5f611d9430610d2d565b90505f6011548210159050808015611db95750601360149054906101000a900460ff16155b8015611e0c5750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e23575060125f9054906101000a900460ff165b8015611e765750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ec95750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ed857611ed7826124d2565b5b611f5f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611fab87876126b1565b611fbf57611fba87878761280d565b611fc1565b845b905061201381600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120b19190612e25565b60405180910390a3600193505050505b9392505050565b5f83831115829061210f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121069190612ec8565b60405180910390fd5b505f838561211d9190613ad9565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036121fb575f905061225c565b5f82846122089190613b0c565b90508284826122179190613b7a565b14612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90613c1a565b60405180910390fd5b809150505b92915050565b5f6122a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a31565b905092915050565b5f612333826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123c482600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124629190612e25565b60405180910390a3600190509392505050565b5f8082846124839190613c38565b9050838110156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf90613cb5565b60405180910390fd5b8091505092915050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff16156125085760115490505b5f47905061251582612a92565b5f6125298247612d1190919063ffffffff16565b90505f811115612692575f61254860028361226290919063ffffffff16565b90505f61255e8284612d1190919063ffffffff16565b90505f8211156125f8575f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516125af906134ae565b5f6040518083038185875af1925050503d805f81146125e9576040519150601f19603f3d011682016040523d82523d5f602084013e6125ee565b606091505b5050905060019050505b5f81111561268f575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612646906134ae565b5f6040518083038185875af1925050503d805f8114612680576040519150601f19603f3d011682016040523d82523d5f602084013e612685565b606091505b5050905060019050505b50505b50505f601360146101000a81548160ff02191690831515021790555050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061274d5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561275b5760019050612807565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806127f65750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612803575f9050612807565b5f90505b92915050565b5f80600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128935761288c60066002015461287e60065f0154866121eb90919063ffffffff16565b61226290919063ffffffff16565b9050612915565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561291457612911600660020154612903600660010154866121eb90919063ffffffff16565b61226290919063ffffffff16565b90505b5b5f811115612a145761296d81600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a0b9190612e25565b60405180910390a35b612a278184612d1190919063ffffffff16565b9150509392505050565b5f8083118290612a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6e9190612ec8565b60405180910390fd5b505f8385612a859190613b7a565b9050809150509392505050565b5f600267ffffffffffffffff811115612aae57612aad613cd3565b5b604051908082528060200260200182016040528015612adc5781602001602082028036833780820191505090505b50905030815f81518110612af357612af2613d00565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbc9190613d41565b81600181518110612bd057612bcf613d00565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3730601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611884565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430601e42612c879190613c38565b6040518663ffffffff1660e01b8152600401612ca7959493929190613e5c565b5f604051808303815f87803b158015612cbe575f80fd5b505af1158015612cd0573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612d05929190613eb4565b60405180910390a15050565b5f612d5283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c8565b905092915050565b5f80fd5b5f8115159050919050565b612d7281612d5e565b8114612d7c575f80fd5b50565b5f81359050612d8d81612d69565b92915050565b5f819050919050565b612da581612d93565b8114612daf575f80fd5b50565b5f81359050612dc081612d9c565b92915050565b5f805f60608486031215612ddd57612ddc612d5a565b5b5f612dea86828701612d7f565b9350506020612dfb86828701612d7f565b9250506040612e0c86828701612db2565b9150509250925092565b612e1f81612d93565b82525050565b5f602082019050612e385f830184612e16565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e75578082015181840152602081019050612e5a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e9a82612e3e565b612ea48185612e48565b9350612eb4818560208601612e58565b612ebd81612e80565b840191505092915050565b5f6020820190508181035f830152612ee08184612e90565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612f2a612f25612f2084612ee8565b612f07565b612ee8565b9050919050565b5f612f3b82612f10565b9050919050565b5f612f4c82612f31565b9050919050565b612f5c81612f42565b82525050565b5f602082019050612f755f830184612f53565b92915050565b5f612f8582612ee8565b9050919050565b612f9581612f7b565b8114612f9f575f80fd5b50565b5f81359050612fb081612f8c565b92915050565b5f8060408385031215612fcc57612fcb612d5a565b5b5f612fd985828601612fa2565b9250506020612fea85828601612db2565b9150509250929050565b612ffd81612d5e565b82525050565b5f6020820190506130165f830184612ff4565b92915050565b5f806040838503121561303257613031612d5a565b5b5f61303f85828601612db2565b925050602061305085828601612db2565b9150509250929050565b61306381612f7b565b82525050565b5f60208201905061307c5f83018461305a565b92915050565b5f805f6060848603121561309957613098612d5a565b5b5f6130a686828701612fa2565b93505060206130b786828701612fa2565b92505060406130c886828701612db2565b9150509250925092565b5f60ff82169050919050565b6130e7816130d2565b82525050565b5f6020820190506131005f8301846130de565b92915050565b5f6020828403121561311b5761311a612d5a565b5b5f61312884828501612fa2565b91505092915050565b5f806040838503121561314757613146612d5a565b5b5f61315485828601612fa2565b925050602061316585828601612d7f565b9150509250929050565b5f806040838503121561318557613184612d5a565b5b5f61319285828601612fa2565b92505060206131a385828601612fa2565b9150509250929050565b5f6060820190506131c05f830186612e16565b6131cd6020830185612e16565b6131da6040830184612e16565b949350505050565b5f602082840312156131f7576131f6612d5a565b5b5f61320484828501612db2565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613241602083612e48565b915061324c8261320d565b602082019050919050565b5f6020820190508181035f83015261326e81613235565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132b957607f821691505b6020821081036132cc576132cb613275565b5b50919050565b7f4d617820746178204c696d6974205265616368656421000000000000000000005f82015250565b5f613306601683612e48565b9150613311826132d2565b602082019050919050565b5f6020820190508181035f830152613333816132fa565b9050919050565b7f496e76616c69642043616c6c65722100000000000000000000000000000000005f82015250565b5f61336e600f83612e48565b91506133798261333a565b602082019050919050565b5f6020820190508181035f83015261339b81613362565b9050919050565b5f6040820190506133b55f83018561305a565b6133c26020830184612e16565b9392505050565b5f81519050919050565b5f81905092915050565b5f6133e7826133c9565b6133f181856133d3565b9350613401818560208601612e58565b80840191505092915050565b5f61341882846133dd565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613457601483612e48565b915061346282613423565b602082019050919050565b5f6020820190508181035f8301526134848161344b565b9050919050565b50565b5f6134995f836133d3565b91506134a48261348b565b5f82019050919050565b5f6134b88261348e565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f6134f6601483612e48565b9150613501826134c2565b602082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613584602683612e48565b915061358f8261352a565b604082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b7f4d696e696d756d204c696d6974206973203125206f72205768616c65204d75735f8201527f7420626520416374697665000000000000000000000000000000000000000000602082015250565b5f613612602b83612e48565b915061361d826135b8565b604082019050919050565b5f6020820190508181035f83015261363f81613606565b9050919050565b7f416c726561647920456e61626c656421000000000000000000000000000000005f82015250565b5f61367a601083612e48565b915061368582613646565b602082019050919050565b5f6020820190508181035f8301526136a78161366e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613708602483612e48565b9150613713826136ae565b604082019050919050565b5f6020820190508181035f830152613735816136fc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613796602283612e48565b91506137a18261373c565b604082019050919050565b5f6020820190508181035f8301526137c38161378a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613824602583612e48565b915061382f826137ca565b604082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b2602383612e48565b91506138bd82613858565b604082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613940602983612e48565b915061394b826138e6565b604082019050919050565b5f6020820190508181035f83015261396d81613934565b9050919050565b7f4e6f74204c61756e6368656421000000000000000000000000000000000000005f82015250565b5f6139a8600d83612e48565b91506139b382613974565b602082019050919050565b5f6020820190508181035f8301526139d58161399c565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613a10601383612e48565b9150613a1b826139dc565b602082019050919050565b5f6020820190508181035f830152613a3d81613a04565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f613a78601183612e48565b9150613a8382613a44565b602082019050919050565b5f6020820190508181035f830152613aa581613a6c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ae382612d93565b9150613aee83612d93565b9250828203905081811115613b0657613b05613aac565b5b92915050565b5f613b1682612d93565b9150613b2183612d93565b9250828202613b2f81612d93565b91508282048414831517613b4657613b45613aac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b8482612d93565b9150613b8f83612d93565b925082613b9f57613b9e613b4d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c04602183612e48565b9150613c0f82613baa565b604082019050919050565b5f6020820190508181035f830152613c3181613bf8565b9050919050565b5f613c4282612d93565b9150613c4d83612d93565b9250828201905080821115613c6557613c64613aac565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c9f601b83612e48565b9150613caa82613c6b565b602082019050919050565b5f6020820190508181035f830152613ccc81613c93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613d3b81612f8c565b92915050565b5f60208284031215613d5657613d55612d5a565b5b5f613d6384828501613d2d565b91505092915050565b5f819050919050565b5f613d8f613d8a613d8584613d6c565b612f07565b612d93565b9050919050565b613d9f81613d75565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613dd781612f7b565b82525050565b5f613de88383613dce565b60208301905092915050565b5f602082019050919050565b5f613e0a82613da5565b613e148185613daf565b9350613e1f83613dbf565b805f5b83811015613e4f578151613e368882613ddd565b9750613e4183613df4565b925050600181019050613e22565b5085935050505092915050565b5f60a082019050613e6f5f830188612e16565b613e7c6020830187613d96565b8181036040830152613e8e8186613e00565b9050613e9d606083018561305a565b613eaa6080830184612e16565b9695505050505050565b5f604082019050613ec75f830185612e16565b8181036020830152613ed98184613e00565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201d255131e65dc4527c905f452e29fec39c5540db40d636b610c72912a0bf4d0c64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061021d575f3560e01c8063751039fc11610122578063dd62ed3e116100aa578063f242ab411161006e578063f242ab41146107a0578063f2fde38b146107ca578063f8b45b05146107f2578063fa0486dc1461081c578063fb201b1d1461084457610224565b8063dd62ed3e146106d0578063ddca3f431461070c578063e3fb4e1c14610738578063e6b2603b14610760578063e9fd33941461077657610224565b80638da5cb5b116100f15780638da5cb5b146105ee57806395d89b4114610618578063a9059cbb14610642578063c3f70b521461067e578063cea9d26f146106a857610224565b8063751039fc1461055c57806375f0a874146105725780638091f3bf1461059c57806388700798146105c657610224565b80632f15d34a116101a5578063677a887011610174578063677a88701461048e5780636cd56878146104b85780636ddd1713146104e057806370a082311461050a578063715018a61461054657610224565b80632f15d34a146103c2578063313ce567146103ec5780633ecad271146104165780635e8bf1d61461045257610224565b8063095ea7b3116101ec578063095ea7b3146102ce578063180550b81461030a57806318160ddd14610332578063185870f91461035c57806323b872dd1461038657610224565b806301ae592b146102285780630445b6671461025057806306fdde031461027a5780630758d924146102a457610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612dc6565b61085a565b005b34801561025b575f80fd5b50610264610915565b6040516102719190612e25565b60405180910390f35b348015610285575f80fd5b5061028e61091b565b60405161029b9190612ec8565b60405180910390f35b3480156102af575f80fd5b506102b86109ab565b6040516102c59190612f62565b60405180910390f35b3480156102d9575f80fd5b506102f460048036038101906102ef9190612fb6565b6109d1565b6040516103019190613003565b60405180910390f35b348015610315575f80fd5b50610330600480360381019061032b919061301c565b6109ee565b005b34801561033d575f80fd5b50610346610ad2565b6040516103539190612e25565b60405180910390f35b348015610367575f80fd5b50610370610adb565b60405161037d9190613069565b60405180910390f35b348015610391575f80fd5b506103ac60048036038101906103a79190613082565b610b00565b6040516103b99190613003565b60405180910390f35b3480156103cd575f80fd5b506103d6610bd5565b6040516103e39190613003565b60405180910390f35b3480156103f7575f80fd5b50610400610be8565b60405161040d91906130ed565b60405180910390f35b348015610421575f80fd5b5061043c60048036038101906104379190613106565b610bfd565b6040516104499190613003565b60405180910390f35b34801561045d575f80fd5b5061047860048036038101906104739190613106565b610c1a565b6040516104859190613003565b60405180910390f35b348015610499575f80fd5b506104a2610c37565b6040516104af9190613069565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d99190613106565b610c5c565b005b3480156104eb575f80fd5b506104f4610d1b565b6040516105019190613003565b60405180910390f35b348015610515575f80fd5b50610530600480360381019061052b9190613106565b610d2d565b60405161053d9190612e25565b60405180910390f35b348015610551575f80fd5b5061055a610d73565b005b348015610567575f80fd5b50610570610dfa565b005b34801561057d575f80fd5b50610586610ea4565b6040516105939190613069565b60405180910390f35b3480156105a7575f80fd5b506105b0610eca565b6040516105bd9190613003565b60405180910390f35b3480156105d1575f80fd5b506105ec60048036038101906105e79190613131565b610edc565b005b3480156105f9575f80fd5b50610602610fb0565b60405161060f9190613069565b60405180910390f35b348015610623575f80fd5b5061062c610fd7565b6040516106399190612ec8565b60405180910390f35b34801561064d575f80fd5b5061066860048036038101906106639190612fb6565b611067565b6040516106759190613003565b60405180910390f35b348015610689575f80fd5b50610692611085565b60405161069f9190612e25565b60405180910390f35b3480156106b3575f80fd5b506106ce60048036038101906106c99190613082565b61108b565b005b3480156106db575f80fd5b506106f660048036038101906106f1919061316f565b611257565b6040516107039190612e25565b60405180910390f35b348015610717575f80fd5b506107206112d9565b60405161072f939291906131ad565b60405180910390f35b348015610743575f80fd5b5061075e6004803603810190610759919061316f565b6112f0565b005b34801561076b575f80fd5b506107746113f1565b005b348015610781575f80fd5b5061078a61152b565b6040516107979190613003565b60405180910390f35b3480156107ab575f80fd5b506107b461153e565b6040516107c19190613069565b60405180910390f35b3480156107d5575f80fd5b506107f060048036038101906107eb9190613106565b611563565b005b3480156107fd575f80fd5b50610806611659565b6040516108139190612e25565b60405180910390f35b348015610827575f80fd5b50610842600480360381019061083d91906131e2565b61165f565b005b34801561084f575f80fd5b50610858611796565b005b61086261187d565b73ffffffffffffffffffffffffffffffffffffffff16610880610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90613257565b60405180910390fd5b8260125f6101000a81548160ff02191690831515021790555081601260016101000a81548160ff02191690831515021790555080601181905550505050565b60115481565b60606001805461092a906132a2565b80601f0160208091040260200160405190810160405280929190818152602001828054610956906132a2565b80156109a15780601f10610978576101008083540402835291602001916109a1565b820191905f5260205f20905b81548152906001019060200180831161098457829003601f168201915b5050505050905090565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6109e46109dd61187d565b8484611884565b6001905092915050565b6109f661187d565b73ffffffffffffffffffffffffffffffffffffffff16610a14610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190613257565b60405180910390fd5b60238211158015610a7c5750601e8111155b610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab29061331c565b60405180910390fd5b8160065f0181905550806006600101819055505050565b5f600e54905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610b0c848484611a47565b50610bca84610b1961187d565b610bc585604051806060016040528060288152602001613ee360289139600b5f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b7c61187d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b611884565b600190509392505050565b601260029054906101000a900460ff1681565b5f60035f9054906101000a900460ff16905090565b600d602052805f5260405f205f915054906101000a900460ff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610c6461187d565b73ffffffffffffffffffffffffffffffffffffffff16610c82610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccf90613257565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60125f9054906101000a900460ff1681565b5f600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610d7b61187d565b73ffffffffffffffffffffffffffffffffffffffff16610d99610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613257565b60405180910390fd5b610df85f61212a565b565b610e0261187d565b73ffffffffffffffffffffffffffffffffffffffff16610e20610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610e76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6d90613257565b60405180910390fd5b600e54600f81905550600e546010819055505f601260026101000a81548160ff021916908315150217905550565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1681565b610ee461187d565b73ffffffffffffffffffffffffffffffffffffffff16610f02610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614610f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4f90613257565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610fe6906132a2565b80601f0160208091040260200160405190810160405280929190818152602001828054611012906132a2565b801561105d5780601f106110345761010080835404028352916020019161105d565b820191905f5260205f20905b81548152906001019060200180831161104057829003601f168201915b5050505050905090565b5f61107a61107361187d565b8484611a47565b506001905092915050565b600f5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190613384565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016111459291906133a2565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516111cf919061340d565b5f604051808303815f865af19150503d805f8114611208576040519150601f19603f3d011682016040523d82523d5f602084013e61120d565b606091505b5050905080611251576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112489061346d565b60405180910390fd5b50505050565b5f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6006805f0154908060010154908060020154905083565b6112f861187d565b73ffffffffffffffffffffffffffffffffffffffff16611316610fb0565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390613257565b60405180910390fd5b81600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147790613384565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516114a5906134ae565b5f6040518083038185875af1925050503d805f81146114df576040519150601f19603f3d011682016040523d82523d5f602084013e6114e4565b606091505b5050905080611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f9061350c565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61156b61187d565b73ffffffffffffffffffffffffffffffffffffffff16611589610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690613257565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361164d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116449061359a565b60405180910390fd5b6116568161212a565b50565b60105481565b61166761187d565b73ffffffffffffffffffffffffffffffffffffffff16611685610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613257565b60405180910390fd5b600181101580156116f85750601260029054906101000a900460ff165b611737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172e90613628565b60405180910390fd5b61175f606461175183600e546121eb90919063ffffffff16565b61226290919063ffffffff16565b600f8190555061178d606461177f83600e546121eb90919063ffffffff16565b61226290919063ffffffff16565b60108190555050565b61179e61187d565b73ffffffffffffffffffffffffffffffffffffffff166117bc610fb0565b73ffffffffffffffffffffffffffffffffffffffff1614611812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180990613257565b60405180910390fd5b60095f9054906101000a900460ff1615611861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185890613690565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e99061371e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611957906137ac565b60405180910390fd5b80600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190612e25565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad9061383a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1b906138c8565b60405180910390fd5b5f8211611b66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5d90613956565b60405180910390fd5b601360149054906101000a900460ff1615611b8d57611b868484846122ab565b90506120c1565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c2b5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611c435750601260029054906101000a900460ff165b15611d8a5760095f9054906101000a900460ff16611c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8d906139be565b60405180910390fd5b600f54821115611cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd290613a26565b60405180910390fd5b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d8957601054611d4783611d3986610d2d565b61247590919063ffffffff16565b1115611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613a8e565b60405180910390fd5b5b5b5f611d9430610d2d565b90505f6011548210159050808015611db95750601360149054906101000a900460ff16155b8015611e0c5750600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e23575060125f9054906101000a900460ff165b8015611e765750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ec95750600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611ed857611ed7826124d2565b5b611f5f846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f611fab87876126b1565b611fbf57611fba87878761280d565b611fc1565b845b905061201381600a5f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120b19190612e25565b60405180910390a3600193505050505b9392505050565b5f83831115829061210f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121069190612ec8565b60405180910390fd5b505f838561211d9190613ad9565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8083036121fb575f905061225c565b5f82846122089190613b0c565b90508284826122179190613b7a565b14612257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224e90613c1a565b60405180910390fd5b809150505b92915050565b5f6122a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a31565b905092915050565b5f612333826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120c89092919063ffffffff16565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506123c482600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124629190612e25565b60405180910390a3600190509392505050565b5f8082846124839190613c38565b9050838110156124c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bf90613cb5565b60405180910390fd5b8091505092915050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff16156125085760115490505b5f47905061251582612a92565b5f6125298247612d1190919063ffffffff16565b90505f811115612692575f61254860028361226290919063ffffffff16565b90505f61255e8284612d1190919063ffffffff16565b90505f8211156125f8575f600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16836040516125af906134ae565b5f6040518083038185875af1925050503d805f81146125e9576040519150601f19603f3d011682016040523d82523d5f602084013e6125ee565b606091505b5050905060019050505b5f81111561268f575f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612646906134ae565b5f6040518083038185875af1925050503d805f8114612680576040519150601f19603f3d011682016040523d82523d5f602084013e612685565b606091505b5050905060019050505b50505b50505f601360146101000a81548160ff02191690831515021790555050565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061274d5750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561275b5760019050612807565b600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806127f65750600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612803575f9050612807565b5f90505b92915050565b5f80600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156128935761288c60066002015461287e60065f0154866121eb90919063ffffffff16565b61226290919063ffffffff16565b9050612915565b600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561291457612911600660020154612903600660010154866121eb90919063ffffffff16565b61226290919063ffffffff16565b90505b5b5f811115612a145761296d81600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461247590919063ffffffff16565b600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a0b9190612e25565b60405180910390a35b612a278184612d1190919063ffffffff16565b9150509392505050565b5f8083118290612a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6e9190612ec8565b60405180910390fd5b505f8385612a859190613b7a565b9050809150509392505050565b5f600267ffffffffffffffff811115612aae57612aad613cd3565b5b604051908082528060200260200182016040528015612adc5781602001602082028036833780820191505090505b50905030815f81518110612af357612af2613d00565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbc9190613d41565b81600181518110612bd057612bcf613d00565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3730601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611884565b601260039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360018430601e42612c879190613c38565b6040518663ffffffff1660e01b8152600401612ca7959493929190613e5c565b5f604051808303815f87803b158015612cbe575f80fd5b505af1158015612cd0573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051612d05929190613eb4565b60405180910390a15050565b5f612d5283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c8565b905092915050565b5f80fd5b5f8115159050919050565b612d7281612d5e565b8114612d7c575f80fd5b50565b5f81359050612d8d81612d69565b92915050565b5f819050919050565b612da581612d93565b8114612daf575f80fd5b50565b5f81359050612dc081612d9c565b92915050565b5f805f60608486031215612ddd57612ddc612d5a565b5b5f612dea86828701612d7f565b9350506020612dfb86828701612d7f565b9250506040612e0c86828701612db2565b9150509250925092565b612e1f81612d93565b82525050565b5f602082019050612e385f830184612e16565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e75578082015181840152602081019050612e5a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e9a82612e3e565b612ea48185612e48565b9350612eb4818560208601612e58565b612ebd81612e80565b840191505092915050565b5f6020820190508181035f830152612ee08184612e90565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612f2a612f25612f2084612ee8565b612f07565b612ee8565b9050919050565b5f612f3b82612f10565b9050919050565b5f612f4c82612f31565b9050919050565b612f5c81612f42565b82525050565b5f602082019050612f755f830184612f53565b92915050565b5f612f8582612ee8565b9050919050565b612f9581612f7b565b8114612f9f575f80fd5b50565b5f81359050612fb081612f8c565b92915050565b5f8060408385031215612fcc57612fcb612d5a565b5b5f612fd985828601612fa2565b9250506020612fea85828601612db2565b9150509250929050565b612ffd81612d5e565b82525050565b5f6020820190506130165f830184612ff4565b92915050565b5f806040838503121561303257613031612d5a565b5b5f61303f85828601612db2565b925050602061305085828601612db2565b9150509250929050565b61306381612f7b565b82525050565b5f60208201905061307c5f83018461305a565b92915050565b5f805f6060848603121561309957613098612d5a565b5b5f6130a686828701612fa2565b93505060206130b786828701612fa2565b92505060406130c886828701612db2565b9150509250925092565b5f60ff82169050919050565b6130e7816130d2565b82525050565b5f6020820190506131005f8301846130de565b92915050565b5f6020828403121561311b5761311a612d5a565b5b5f61312884828501612fa2565b91505092915050565b5f806040838503121561314757613146612d5a565b5b5f61315485828601612fa2565b925050602061316585828601612d7f565b9150509250929050565b5f806040838503121561318557613184612d5a565b5b5f61319285828601612fa2565b92505060206131a385828601612fa2565b9150509250929050565b5f6060820190506131c05f830186612e16565b6131cd6020830185612e16565b6131da6040830184612e16565b949350505050565b5f602082840312156131f7576131f6612d5a565b5b5f61320484828501612db2565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613241602083612e48565b915061324c8261320d565b602082019050919050565b5f6020820190508181035f83015261326e81613235565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806132b957607f821691505b6020821081036132cc576132cb613275565b5b50919050565b7f4d617820746178204c696d6974205265616368656421000000000000000000005f82015250565b5f613306601683612e48565b9150613311826132d2565b602082019050919050565b5f6020820190508181035f830152613333816132fa565b9050919050565b7f496e76616c69642043616c6c65722100000000000000000000000000000000005f82015250565b5f61336e600f83612e48565b91506133798261333a565b602082019050919050565b5f6020820190508181035f83015261339b81613362565b9050919050565b5f6040820190506133b55f83018561305a565b6133c26020830184612e16565b9392505050565b5f81519050919050565b5f81905092915050565b5f6133e7826133c9565b6133f181856133d3565b9350613401818560208601612e58565b80840191505092915050565b5f61341882846133dd565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f613457601483612e48565b915061346282613423565b602082019050919050565b5f6020820190508181035f8301526134848161344b565b9050919050565b50565b5f6134995f836133d3565b91506134a48261348b565b5f82019050919050565b5f6134b88261348e565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f6134f6601483612e48565b9150613501826134c2565b602082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613584602683612e48565b915061358f8261352a565b604082019050919050565b5f6020820190508181035f8301526135b181613578565b9050919050565b7f4d696e696d756d204c696d6974206973203125206f72205768616c65204d75735f8201527f7420626520416374697665000000000000000000000000000000000000000000602082015250565b5f613612602b83612e48565b915061361d826135b8565b604082019050919050565b5f6020820190508181035f83015261363f81613606565b9050919050565b7f416c726561647920456e61626c656421000000000000000000000000000000005f82015250565b5f61367a601083612e48565b915061368582613646565b602082019050919050565b5f6020820190508181035f8301526136a78161366e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613708602483612e48565b9150613713826136ae565b604082019050919050565b5f6020820190508181035f830152613735816136fc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613796602283612e48565b91506137a18261373c565b604082019050919050565b5f6020820190508181035f8301526137c38161378a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613824602583612e48565b915061382f826137ca565b604082019050919050565b5f6020820190508181035f83015261385181613818565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6138b2602383612e48565b91506138bd82613858565b604082019050919050565b5f6020820190508181035f8301526138df816138a6565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613940602983612e48565b915061394b826138e6565b604082019050919050565b5f6020820190508181035f83015261396d81613934565b9050919050565b7f4e6f74204c61756e6368656421000000000000000000000000000000000000005f82015250565b5f6139a8600d83612e48565b91506139b382613974565b602082019050919050565b5f6020820190508181035f8301526139d58161399c565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613a10601383612e48565b9150613a1b826139dc565b602082019050919050565b5f6020820190508181035f830152613a3d81613a04565b9050919050565b7f45786365656473206d617857616c6c65740000000000000000000000000000005f82015250565b5f613a78601183612e48565b9150613a8382613a44565b602082019050919050565b5f6020820190508181035f830152613aa581613a6c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ae382612d93565b9150613aee83612d93565b9250828203905081811115613b0657613b05613aac565b5b92915050565b5f613b1682612d93565b9150613b2183612d93565b9250828202613b2f81612d93565b91508282048414831517613b4657613b45613aac565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613b8482612d93565b9150613b8f83612d93565b925082613b9f57613b9e613b4d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c04602183612e48565b9150613c0f82613baa565b604082019050919050565b5f6020820190508181035f830152613c3181613bf8565b9050919050565b5f613c4282612d93565b9150613c4d83612d93565b9250828201905080821115613c6557613c64613aac565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c9f601b83612e48565b9150613caa82613c6b565b602082019050919050565b5f6020820190508181035f830152613ccc81613c93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613d3b81612f8c565b92915050565b5f60208284031215613d5657613d55612d5a565b5b5f613d6384828501613d2d565b91505092915050565b5f819050919050565b5f613d8f613d8a613d8584613d6c565b612f07565b612d93565b9050919050565b613d9f81613d75565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613dd781612f7b565b82525050565b5f613de88383613dce565b60208301905092915050565b5f602082019050919050565b5f613e0a82613da5565b613e148185613daf565b9350613e1f83613dbf565b805f5b83811015613e4f578151613e368882613ddd565b9750613e4183613df4565b925050600181019050613e22565b5085935050505092915050565b5f60a082019050613e6f5f830188612e16565b613e7c6020830187613d96565b8181036040830152613e8e8186613e00565b9050613e9d606083018561305a565b613eaa6080830184612e16565b9695505050505050565b5f604082019050613ec75f830185612e16565b8181036020830152613ed98184613e00565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201d255131e65dc4527c905f452e29fec39c5540db40d636b610c72912a0bf4d0c64736f6c63430008160033

Deployed Bytecode Sourcemap

6375:10515:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16490:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7418:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8658:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9325:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15742:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8935:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6781:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10051:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7563:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8844:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7163:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15340:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7488:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9043:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3668:94;;;;;;;;;;;;;:::i;:::-;;16727:156;;;;;;;;;;;;;:::i;:::-;;6604:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15948:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3359:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8749;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9876:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7286:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15462:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9174:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6930:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;14952:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15154:178;;;;;;;;;;;;;:::i;:::-;;7525:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7640:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3770:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7354:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16203:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16071:124;;;;;;;;;;;;;:::i;:::-;;16490:229;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16633:8:::1;16619:11;;:22;;;;;;;;;;;;;;;;;;16666:8;16652:11;;:22;;;;;;;;;;;;;;;;;;16701:10;16685:13;:26;;;;16490:229:::0;;;:::o;7418:61::-;;;;:::o;8658:83::-;8695:13;8728:5;8721:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8658:83;:::o;7602:31::-;;;;;;;;;;;;;:::o;9325:161::-;9400:4;9417:39;9426:12;:10;:12::i;:::-;9440:7;9449:6;9417:8;:39::i;:::-;9474:4;9467:11;;9325:161;;;;:::o;15742:195::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15834:2:::1;15826:4;:10;;:25;;;;;15849:2;15840:5;:11;;15826:25;15818:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;15898:4;15888:3;:7;;:14;;;;15924:5;15913:3;:8;;:16;;;;15742:195:::0;;:::o;8935:100::-;8988:7;9015:12;;9008:19;;8935:100;:::o;6781:30::-;;;;;;;;;;;;;:::o;10051:313::-;10149:4;10166:36;10176:6;10184:9;10195:6;10166:9;:36::i;:::-;;10213:121;10222:6;10230:12;:10;:12::i;:::-;10244:89;10282:6;10244:89;;;;;;;;;;;;;;;;;:11;:19;10256:6;10244:19;;;;;;;;;;;;;;;:33;10264:12;:10;:12::i;:::-;10244:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;10213:8;:121::i;:::-;10352:4;10345:11;;10051:313;;;;;:::o;7563:30::-;;;;;;;;;;;;;:::o;8844:83::-;8885:5;8910:9;;;;;;;;;;;8903:16;;8844:83;:::o;7163:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7111:::-;;;;;;;;;;;;;;;;;;;;;;:::o;6695:79::-;;;;;;;;;;;;;:::o;15340:114::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15436:10:::1;15418:15;;:28;;;;;;;;;;;;;;;;;;15340:114:::0;:::o;7488:30::-;;;;;;;;;;;;;:::o;9043:123::-;9109:7;9135:9;:18;9145:7;9135:18;;;;;;;;;;;;;;;;9128:25;;9043:123;;;:::o;3668:94::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3733:21:::1;3751:1;3733:9;:21::i;:::-;3668:94::o:0;16727:156::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16798:12:::1;;16781:14;:29;;;;16833:12;;16821:9;:24;;;;16870:5;16856:11;;:19;;;;;;;;;;;;;;;;;;16727:156::o:0;6604:84::-;;;;;;;;;;;;;:::o;6959:20::-;;;;;;;;;;;;;:::o;15948:115::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16048:7:::1;16027:12;:18;16040:4;16027:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15948:115:::0;;:::o;3359:87::-;3405:7;3432:6;;;;;;;;;;;3425:13;;3359:87;:::o;8749:::-;8788:13;8821:7;8814:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8749:87;:::o;9876:167::-;9954:4;9971:42;9981:12;:10;:12::i;:::-;9995:9;10006:6;9971:9;:42::i;:::-;;10031:4;10024:11;;9876:167;;;;:::o;7286:61::-;;;;:::o;15462:272::-;7842:15;;;;;;;;;;;7828:29;;:10;:29;;;7820:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15562:12:::1;15588:6;15580:20;;15655:9;15666:7;15601:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15580:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15561:114;;;15694:7;15686:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;15550:184;15462:272:::0;;;:::o;9174:143::-;9255:7;9282:11;:18;9294:5;9282:18;;;;;;;;;;;;;;;:27;9301:7;9282:27;;;;;;;;;;;;;;;;9275:34;;9174:143;;;;:::o;6930:20::-;;;;;;;;;;;;;;;;;;;:::o;14952:194::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15081:19:::1;15063:15;;:37;;;;;;;;;;;;;;;;;;15124:14;15111:10;;:27;;;;;;;;;;;;;;;;;;14952:194:::0;;:::o;15154:178::-;7842:15;;;;;;;;;;;7828:29;;:10;:29;;;7820:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;15209:7:::1;15229:10;15221:24;;15253:21;15221:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15208:71;;;15298:2;15290:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;15196:136;15154:178::o:0;7525:31::-;;;;;;;;;;;;;:::o;7640:22::-;;;;;;;;;;;;;:::o;3770:229::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3893:1:::1;3873:22;;:8;:22;;::::0;3851:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3972:19;3982:8;3972:9;:19::i;:::-;3770:229:::0;:::o;7354:55::-;;;;:::o;16203:279::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16298:1:::1;16289:4;:10;;:25;;;;;16303:11;;;;;;;;;;;16289:25;16281:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;16389:31;16416:3;16389:22;16406:4;16389:12;;:16;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;16372:14;:48;;;;16443:31;16470:3;16443:22;16460:4;16443:12;;:16;;:22;;;;:::i;:::-;:26;;:31;;;;:::i;:::-;16431:9;:43;;;;16203:279:::0;:::o;16071:124::-;3591:12;:10;:12::i;:::-;3580:23;;:7;:5;:7::i;:::-;:23;;;3572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16133:8:::1;;;;;;;;;;;16132:9;16124:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;16183:4;16172:8;;:15;;;;;;;;;;;;;;;;;;16071:124::o:0;1924:98::-;1977:7;2004:10;1997:17;;1924:98;:::o;9494:337::-;9604:1;9587:19;;:5;:19;;;9579:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9685:1;9666:21;;:7;:21;;;9658:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9769:6;9739:11;:18;9751:5;9739:18;;;;;;;;;;;;;;;:27;9758:7;9739:27;;;;;;;;;;;;;;;:36;;;;9807:7;9791:32;;9800:5;9791:32;;;9816:6;9791:32;;;;;;:::i;:::-;;;;;;;;9494:337;;;:::o;10372:1741::-;10459:4;10504:1;10486:20;;:6;:20;;;10478:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10588:1;10567:23;;:9;:23;;;10559:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10658:1;10649:6;:10;10641:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10726:6;;;;;;;;;;;10722:1382;;;10756:41;10771:6;10779:9;10790:6;10756:14;:41::i;:::-;10749:48;;;;10722:1382;10845:12;:20;10858:6;10845:20;;;;;;;;;;;;;;;;;;;;;;;;;10844:21;:49;;;;;10870:12;:23;10883:9;10870:23;;;;;;;;;;;;;;;;;;;;;;;;;10869:24;10844:49;:64;;;;;10897:11;;;;;;;;;;;10844:64;10841:377;;;10937:8;;;;;;;;;;;10929:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;10999:14;;10989:6;:24;;10981:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11060:12;:23;11073:9;11060:23;;;;;;;;;;;;;;;;;;;;;;;;;11056:147;;11152:9;;11116:32;11141:6;11116:20;11126:9;11116;:20::i;:::-;:24;;:32;;;;:::i;:::-;:45;;11108:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11056:147;10841:377;11246:28;11277:24;11295:4;11277:9;:24::i;:::-;11246:55;;11316:28;11371:13;;11347:20;:37;;11316:68;;11405:23;:52;;;;;11451:6;;;;;;;;;;;11450:7;11405:52;:95;;;;;11480:12;:20;11493:6;11480:20;;;;;;;;;;;;;;;;;;;;;;;;;11479:21;11405:95;:128;;;;;11522:11;;;;;;;;;;;11405:128;:170;;;;;11555:12;:20;11568:6;11555:20;;;;;;;;;;;;;;;;;;;;;;;;;11554:21;11405:170;:215;;;;;11597:12;:23;11610:9;11597:23;;;;;;;;;;;;;;;;;;;;;;;;;11596:24;11405:215;11401:304;;;11659:30;11668:20;11659:8;:30::i;:::-;11401:304;11753:53;11775:6;11753:53;;;;;;;;;;;;;;;;;:9;:17;11763:6;11753:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;11733:9;:17;11743:6;11733:17;;;;;;;;;;;;;;;:73;;;;11823:19;11845:34;11862:6;11869:9;11845:16;:34::i;:::-;:80;;11891:34;11899:6;11907:9;11918:6;11891:7;:34::i;:::-;11845:80;;;11882:6;11845:80;11823:102;;11965:37;11990:11;11965:9;:20;11975:9;11965:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;11942:9;:20;11952:9;11942:20;;;;;;;;;;;;;;;:60;;;;12041:9;12024:40;;12033:6;12024:40;;;12052:11;12024:40;;;;;;:::i;:::-;;;;;;;;12086:4;12079:11;;;;;10372:1741;;;;;;:::o;4546:192::-;4632:7;4665:1;4660;:6;;4668:12;4652:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4692:9;4708:1;4704;:5;;;;:::i;:::-;4692:17;;4729:1;4722:8;;;4546:192;;;;;:::o;4007:173::-;4063:16;4082:6;;;;;;;;;;;4063:25;;4108:8;4099:6;;:17;;;;;;;;;;;;;;;;;;4163:8;4132:40;;4153:8;4132:40;;;;;;;;;;;;4052:128;4007:173;:::o;4746:250::-;4804:7;4833:1;4828;:6;4824:47;;4858:1;4851:8;;;;4824:47;4883:9;4899:1;4895;:5;;;;:::i;:::-;4883:17;;4928:1;4923;4919;:5;;;;:::i;:::-;:10;4911:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4987:1;4980:8;;;4746:250;;;;;:::o;5004:132::-;5062:7;5089:39;5093:1;5096;5089:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5082:46;;5004:132;;;;:::o;12121:330::-;12214:4;12251:53;12273:6;12251:53;;;;;;;;;;;;;;;;;:9;:17;12261:6;12251:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;12231:9;:17;12241:6;12231:17;;;;;;;;;;;;;;;:73;;;;12338:32;12363:6;12338:9;:20;12348:9;12338:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12315:9;:20;12325:9;12315:20;;;;;;;;;;;;;;;:55;;;;12403:9;12386:35;;12395:6;12386:35;;;12414:6;12386:35;;;;;;:::i;:::-;;;;;;;;12439:4;12432:11;;12121:330;;;;;:::o;4213:181::-;4271:7;4291:9;4307:1;4303;:5;;;;:::i;:::-;4291:17;;4332:1;4327;:6;;4319:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4385:1;4378:8;;;4213:181;;;;:::o;13532:793::-;7731:4;7722:6;;:13;;;;;;;;;;;;;;;;;;13606:11:::1;;;;;;;;;;;13603:47;;;13637:13;;13619:31;;13603:47;13663:22;13688:21;13663:46;;13720:33;13737:15;13720:16;:33::i;:::-;13764:22;13789:41;13815:14;13789:21;:25;;:41;;;;:::i;:::-;13764:66;;13863:1;13846:14;:18;13843:473;;;13881:10;13894:21;13913:1;13894:14;:18;;:21;;;;:::i;:::-;13881:34;;13930:11;13944:25;13963:5;13944:14;:18;;:25;;;;:::i;:::-;13930:39;;13995:1;13987:5;:9;13984:155;;;14018:8;14039:15;;;;;;;;;;;14031:29;;14068:5;14031:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14017:61;;;14103:4;14097:10;;13998:141;13984:155;14165:1;14156:6;:10;14153:152;;;14188:8;14209:10;;;;;;;;;;;14201:24;;14233:6;14201:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14187:57;;;14269:4;14263:10;;14168:137;14153:152;13866:450;;13843:473;13590:735;;7767:5:::0;7758:6;;:14;;;;;;;;;;;;;;;;;;13532:793;:::o;12463:359::-;12547:4;12567:12;:20;12580:6;12567:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;12591:12;:23;12604:9;12591:23;;;;;;;;;;;;;;;;;;;;;;;;;12567:47;12564:251;;;12638:4;12631:11;;;;12564:251;12673:12;:20;12686:6;12673:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;12697:12;:23;12710:9;12697:23;;;;;;;;;;;;;;;;;;;;;;;;;12673:47;12669:146;;;12744:5;12737:12;;;;12669:146;12798:5;12791:12;;12463:359;;;;;:::o;12830:694::-;12916:7;12946:14;13003:12;:20;13016:6;13003:20;;;;;;;;;;;;;;;;;;;;;;;;;13000:250;;;13057:40;13081:3;:15;;;13057:19;13068:3;:7;;;13057:6;:10;;:19;;;;:::i;:::-;:23;;:40;;;;:::i;:::-;13045:52;;13000:250;;;13136:12;:23;13149:9;13136:23;;;;;;;;;;;;;;;;;;;;;;;;;13133:117;;;13193:41;13218:3;:15;;;13193:20;13204:3;:8;;;13193:6;:10;;:20;;;;:::i;:::-;:24;;:41;;;;:::i;:::-;13181:53;;13133:117;13000:250;13281:1;13269:9;:13;13266:185;;;13330:39;13359:9;13330;:24;13348:4;13330:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13303:9;:24;13321:4;13303:24;;;;;;;;;;;;;;;:66;;;;13418:4;13393:42;;13402:6;13393:42;;;13425:9;13393:42;;;;;;:::i;:::-;;;;;;;;13266:185;13474:21;13485:9;13474:6;:10;;:21;;;;:::i;:::-;13467:28;;;12830:694;;;;;:::o;5144:278::-;5230:7;5262:1;5258;:5;5265:12;5250:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5289:9;5305:1;5301;:5;;;;:::i;:::-;5289:17;;5413:1;5406:8;;;5144:278;;;;;:::o;14333:611::-;14459:21;14497:1;14483:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14459:40;;14528:4;14510;14515:1;14510:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;14554:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14544:4;14549:1;14544:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;14583:56;14600:4;14615:9;;;;;;;;;;;14627:11;14583:8;:56::i;:::-;14678:9;;;;;;;;;;;:60;;;14753:11;14779:1;14796:4;14823;14862:2;14844:15;:20;;;;:::i;:::-;14678:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14901:35;14918:11;14931:4;14901:35;;;;;;;:::i;:::-;;;;;;;;14388:556;14333:611;:::o;4402:136::-;4460:7;4487:43;4491:1;4494;4487:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4480:50;;4402:136;;;;:::o;88:117:1:-;197:1;194;187:12;334:90;368:7;411:5;404:13;397:21;386:32;;334:90;;;:::o;430:116::-;500:21;515:5;500:21;:::i;:::-;493:5;490:32;480:60;;536:1;533;526:12;480:60;430:116;:::o;552:133::-;595:5;633:6;620:20;611:29;;649:30;673:5;649:30;:::i;:::-;552:133;;;;:::o;691:77::-;728:7;757:5;746:16;;691:77;;;:::o;774:122::-;847:24;865:5;847:24;:::i;:::-;840:5;837:35;827:63;;886:1;883;876:12;827:63;774:122;:::o;902:139::-;948:5;986:6;973:20;964:29;;1002:33;1029:5;1002:33;:::i;:::-;902:139;;;;:::o;1047:607::-;1118:6;1126;1134;1183:2;1171:9;1162:7;1158:23;1154:32;1151:119;;;1189:79;;:::i;:::-;1151:119;1309:1;1334:50;1376:7;1367:6;1356:9;1352:22;1334:50;:::i;:::-;1324:60;;1280:114;1433:2;1459:50;1501:7;1492:6;1481:9;1477:22;1459:50;:::i;:::-;1449:60;;1404:115;1558:2;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1529:118;1047:607;;;;;:::o;1660:118::-;1747:24;1765:5;1747:24;:::i;:::-;1742:3;1735:37;1660:118;;:::o;1784:222::-;1877:4;1915:2;1904:9;1900:18;1892:26;;1928:71;1996:1;1985:9;1981:17;1972:6;1928:71;:::i;:::-;1784:222;;;;:::o;2012:99::-;2064:6;2098:5;2092:12;2082:22;;2012:99;;;:::o;2117:169::-;2201:11;2235:6;2230:3;2223:19;2275:4;2270:3;2266:14;2251:29;;2117:169;;;;:::o;2292:246::-;2373:1;2383:113;2397:6;2394:1;2391:13;2383:113;;;2482:1;2477:3;2473:11;2467:18;2463:1;2458:3;2454:11;2447:39;2419:2;2416:1;2412:10;2407:15;;2383:113;;;2530:1;2521:6;2516:3;2512:16;2505:27;2354:184;2292:246;;;:::o;2544:102::-;2585:6;2636:2;2632:7;2627:2;2620:5;2616:14;2612:28;2602:38;;2544:102;;;:::o;2652:377::-;2740:3;2768:39;2801:5;2768:39;:::i;:::-;2823:71;2887:6;2882:3;2823:71;:::i;:::-;2816:78;;2903:65;2961:6;2956:3;2949:4;2942:5;2938:16;2903:65;:::i;:::-;2993:29;3015:6;2993:29;:::i;:::-;2988:3;2984:39;2977:46;;2744:285;2652:377;;;;:::o;3035:313::-;3148:4;3186:2;3175:9;3171:18;3163:26;;3235:9;3229:4;3225:20;3221:1;3210:9;3206:17;3199:47;3263:78;3336:4;3327:6;3263:78;:::i;:::-;3255:86;;3035:313;;;;:::o;3354:126::-;3391:7;3431:42;3424:5;3420:54;3409:65;;3354:126;;;:::o;3486:60::-;3514:3;3535:5;3528:12;;3486:60;;;:::o;3552:142::-;3602:9;3635:53;3653:34;3662:24;3680:5;3662:24;:::i;:::-;3653:34;:::i;:::-;3635:53;:::i;:::-;3622:66;;3552:142;;;:::o;3700:126::-;3750:9;3783:37;3814:5;3783:37;:::i;:::-;3770:50;;3700:126;;;:::o;3832:148::-;3904:9;3937:37;3968:5;3937:37;:::i;:::-;3924:50;;3832:148;;;:::o;3986:175::-;4095:59;4148:5;4095:59;:::i;:::-;4090:3;4083:72;3986:175;;:::o;4167:266::-;4282:4;4320:2;4309:9;4305:18;4297:26;;4333:93;4423:1;4412:9;4408:17;4399:6;4333:93;:::i;:::-;4167:266;;;;:::o;4439:96::-;4476:7;4505:24;4523:5;4505:24;:::i;:::-;4494:35;;4439:96;;;:::o;4541:122::-;4614:24;4632:5;4614:24;:::i;:::-;4607:5;4604:35;4594:63;;4653:1;4650;4643:12;4594:63;4541:122;:::o;4669:139::-;4715:5;4753:6;4740:20;4731:29;;4769:33;4796:5;4769:33;:::i;:::-;4669:139;;;;:::o;4814:474::-;4882:6;4890;4939:2;4927:9;4918:7;4914:23;4910:32;4907:119;;;4945:79;;:::i;:::-;4907:119;5065:1;5090:53;5135:7;5126:6;5115:9;5111:22;5090:53;:::i;:::-;5080:63;;5036:117;5192:2;5218:53;5263:7;5254:6;5243:9;5239:22;5218:53;:::i;:::-;5208:63;;5163:118;4814:474;;;;;:::o;5294:109::-;5375:21;5390:5;5375:21;:::i;:::-;5370:3;5363:34;5294:109;;:::o;5409:210::-;5496:4;5534:2;5523:9;5519:18;5511:26;;5547:65;5609:1;5598:9;5594:17;5585:6;5547:65;:::i;:::-;5409:210;;;;:::o;5625:474::-;5693:6;5701;5750:2;5738:9;5729:7;5725:23;5721:32;5718:119;;;5756:79;;:::i;:::-;5718:119;5876:1;5901:53;5946:7;5937:6;5926:9;5922:22;5901:53;:::i;:::-;5891:63;;5847:117;6003:2;6029:53;6074:7;6065:6;6054:9;6050:22;6029:53;:::i;:::-;6019:63;;5974:118;5625:474;;;;;:::o;6105:118::-;6192:24;6210:5;6192:24;:::i;:::-;6187:3;6180:37;6105:118;;:::o;6229:222::-;6322:4;6360:2;6349:9;6345:18;6337:26;;6373:71;6441:1;6430:9;6426:17;6417:6;6373:71;:::i;:::-;6229:222;;;;:::o;6457:619::-;6534:6;6542;6550;6599:2;6587:9;6578:7;6574:23;6570:32;6567:119;;;6605:79;;:::i;:::-;6567:119;6725:1;6750:53;6795:7;6786:6;6775:9;6771:22;6750:53;:::i;:::-;6740:63;;6696:117;6852:2;6878:53;6923:7;6914:6;6903:9;6899:22;6878:53;:::i;:::-;6868:63;;6823:118;6980:2;7006:53;7051:7;7042:6;7031:9;7027:22;7006:53;:::i;:::-;6996:63;;6951:118;6457:619;;;;;:::o;7082:86::-;7117:7;7157:4;7150:5;7146:16;7135:27;;7082:86;;;:::o;7174:112::-;7257:22;7273:5;7257:22;:::i;:::-;7252:3;7245:35;7174:112;;:::o;7292:214::-;7381:4;7419:2;7408:9;7404:18;7396:26;;7432:67;7496:1;7485:9;7481:17;7472:6;7432:67;:::i;:::-;7292:214;;;;:::o;7512:329::-;7571:6;7620:2;7608:9;7599:7;7595:23;7591:32;7588:119;;;7626:79;;:::i;:::-;7588:119;7746:1;7771:53;7816:7;7807:6;7796:9;7792:22;7771:53;:::i;:::-;7761:63;;7717:117;7512:329;;;;:::o;7847:468::-;7912:6;7920;7969:2;7957:9;7948:7;7944:23;7940:32;7937:119;;;7975:79;;:::i;:::-;7937:119;8095:1;8120:53;8165:7;8156:6;8145:9;8141:22;8120:53;:::i;:::-;8110:63;;8066:117;8222:2;8248:50;8290:7;8281:6;8270:9;8266:22;8248:50;:::i;:::-;8238:60;;8193:115;7847:468;;;;;:::o;8321:474::-;8389:6;8397;8446:2;8434:9;8425:7;8421:23;8417:32;8414:119;;;8452:79;;:::i;:::-;8414:119;8572:1;8597:53;8642:7;8633:6;8622:9;8618:22;8597:53;:::i;:::-;8587:63;;8543:117;8699:2;8725:53;8770:7;8761:6;8750:9;8746:22;8725:53;:::i;:::-;8715:63;;8670:118;8321:474;;;;;:::o;8801:442::-;8950:4;8988:2;8977:9;8973:18;8965:26;;9001:71;9069:1;9058:9;9054:17;9045:6;9001:71;:::i;:::-;9082:72;9150:2;9139:9;9135:18;9126:6;9082:72;:::i;:::-;9164;9232:2;9221:9;9217:18;9208:6;9164:72;:::i;:::-;8801:442;;;;;;:::o;9249:329::-;9308:6;9357:2;9345:9;9336:7;9332:23;9328:32;9325:119;;;9363:79;;:::i;:::-;9325:119;9483:1;9508:53;9553:7;9544:6;9533:9;9529:22;9508:53;:::i;:::-;9498:63;;9454:117;9249:329;;;;:::o;9584:182::-;9724:34;9720:1;9712:6;9708:14;9701:58;9584:182;:::o;9772:366::-;9914:3;9935:67;9999:2;9994:3;9935:67;:::i;:::-;9928:74;;10011:93;10100:3;10011:93;:::i;:::-;10129:2;10124:3;10120:12;10113:19;;9772:366;;;:::o;10144:419::-;10310:4;10348:2;10337:9;10333:18;10325:26;;10397:9;10391:4;10387:20;10383:1;10372:9;10368:17;10361:47;10425:131;10551:4;10425:131;:::i;:::-;10417:139;;10144:419;;;:::o;10569:180::-;10617:77;10614:1;10607:88;10714:4;10711:1;10704:15;10738:4;10735:1;10728:15;10755:320;10799:6;10836:1;10830:4;10826:12;10816:22;;10883:1;10877:4;10873:12;10904:18;10894:81;;10960:4;10952:6;10948:17;10938:27;;10894:81;11022:2;11014:6;11011:14;10991:18;10988:38;10985:84;;11041:18;;:::i;:::-;10985:84;10806:269;10755:320;;;:::o;11081:172::-;11221:24;11217:1;11209:6;11205:14;11198:48;11081:172;:::o;11259:366::-;11401:3;11422:67;11486:2;11481:3;11422:67;:::i;:::-;11415:74;;11498:93;11587:3;11498:93;:::i;:::-;11616:2;11611:3;11607:12;11600:19;;11259:366;;;:::o;11631:419::-;11797:4;11835:2;11824:9;11820:18;11812:26;;11884:9;11878:4;11874:20;11870:1;11859:9;11855:17;11848:47;11912:131;12038:4;11912:131;:::i;:::-;11904:139;;11631:419;;;:::o;12056:165::-;12196:17;12192:1;12184:6;12180:14;12173:41;12056:165;:::o;12227:366::-;12369:3;12390:67;12454:2;12449:3;12390:67;:::i;:::-;12383:74;;12466:93;12555:3;12466:93;:::i;:::-;12584:2;12579:3;12575:12;12568:19;;12227:366;;;:::o;12599:419::-;12765:4;12803:2;12792:9;12788:18;12780:26;;12852:9;12846:4;12842:20;12838:1;12827:9;12823:17;12816:47;12880:131;13006:4;12880:131;:::i;:::-;12872:139;;12599:419;;;:::o;13024:332::-;13145:4;13183:2;13172:9;13168:18;13160:26;;13196:71;13264:1;13253:9;13249:17;13240:6;13196:71;:::i;:::-;13277:72;13345:2;13334:9;13330:18;13321:6;13277:72;:::i;:::-;13024:332;;;;;:::o;13362:98::-;13413:6;13447:5;13441:12;13431:22;;13362:98;;;:::o;13466:147::-;13567:11;13604:3;13589:18;;13466:147;;;;:::o;13619:386::-;13723:3;13751:38;13783:5;13751:38;:::i;:::-;13805:88;13886:6;13881:3;13805:88;:::i;:::-;13798:95;;13902:65;13960:6;13955:3;13948:4;13941:5;13937:16;13902:65;:::i;:::-;13992:6;13987:3;13983:16;13976:23;;13727:278;13619:386;;;;:::o;14011:271::-;14141:3;14163:93;14252:3;14243:6;14163:93;:::i;:::-;14156:100;;14273:3;14266:10;;14011:271;;;;:::o;14288:170::-;14428:22;14424:1;14416:6;14412:14;14405:46;14288:170;:::o;14464:366::-;14606:3;14627:67;14691:2;14686:3;14627:67;:::i;:::-;14620:74;;14703:93;14792:3;14703:93;:::i;:::-;14821:2;14816:3;14812:12;14805:19;;14464:366;;;:::o;14836:419::-;15002:4;15040:2;15029:9;15025:18;15017:26;;15089:9;15083:4;15079:20;15075:1;15064:9;15060:17;15053:47;15117:131;15243:4;15117:131;:::i;:::-;15109:139;;14836:419;;;:::o;15261:114::-;;:::o;15381:398::-;15540:3;15561:83;15642:1;15637:3;15561:83;:::i;:::-;15554:90;;15653:93;15742:3;15653:93;:::i;:::-;15771:1;15766:3;15762:11;15755:18;;15381:398;;;:::o;15785:379::-;15969:3;15991:147;16134:3;15991:147;:::i;:::-;15984:154;;16155:3;16148:10;;15785:379;;;:::o;16170:170::-;16310:22;16306:1;16298:6;16294:14;16287:46;16170:170;:::o;16346:366::-;16488:3;16509:67;16573:2;16568:3;16509:67;:::i;:::-;16502:74;;16585:93;16674:3;16585:93;:::i;:::-;16703:2;16698:3;16694:12;16687:19;;16346:366;;;:::o;16718:419::-;16884:4;16922:2;16911:9;16907:18;16899:26;;16971:9;16965:4;16961:20;16957:1;16946:9;16942:17;16935:47;16999:131;17125:4;16999:131;:::i;:::-;16991:139;;16718:419;;;:::o;17143:225::-;17283:34;17279:1;17271:6;17267:14;17260:58;17352:8;17347:2;17339:6;17335:15;17328:33;17143:225;:::o;17374:366::-;17516:3;17537:67;17601:2;17596:3;17537:67;:::i;:::-;17530:74;;17613:93;17702:3;17613:93;:::i;:::-;17731:2;17726:3;17722:12;17715:19;;17374:366;;;:::o;17746:419::-;17912:4;17950:2;17939:9;17935:18;17927:26;;17999:9;17993:4;17989:20;17985:1;17974:9;17970:17;17963:47;18027:131;18153:4;18027:131;:::i;:::-;18019:139;;17746:419;;;:::o;18171:230::-;18311:34;18307:1;18299:6;18295:14;18288:58;18380:13;18375:2;18367:6;18363:15;18356:38;18171:230;:::o;18407:366::-;18549:3;18570:67;18634:2;18629:3;18570:67;:::i;:::-;18563:74;;18646:93;18735:3;18646:93;:::i;:::-;18764:2;18759:3;18755:12;18748:19;;18407:366;;;:::o;18779:419::-;18945:4;18983:2;18972:9;18968:18;18960:26;;19032:9;19026:4;19022:20;19018:1;19007:9;19003:17;18996:47;19060:131;19186:4;19060:131;:::i;:::-;19052:139;;18779:419;;;:::o;19204:166::-;19344:18;19340:1;19332:6;19328:14;19321:42;19204:166;:::o;19376:366::-;19518:3;19539:67;19603:2;19598:3;19539:67;:::i;:::-;19532:74;;19615:93;19704:3;19615:93;:::i;:::-;19733:2;19728:3;19724:12;19717:19;;19376:366;;;:::o;19748:419::-;19914:4;19952:2;19941:9;19937:18;19929:26;;20001:9;19995:4;19991:20;19987:1;19976:9;19972:17;19965:47;20029:131;20155:4;20029:131;:::i;:::-;20021:139;;19748:419;;;:::o;20173:223::-;20313:34;20309:1;20301:6;20297:14;20290:58;20382:6;20377:2;20369:6;20365:15;20358:31;20173:223;:::o;20402:366::-;20544:3;20565:67;20629:2;20624:3;20565:67;:::i;:::-;20558:74;;20641:93;20730:3;20641:93;:::i;:::-;20759:2;20754:3;20750:12;20743:19;;20402:366;;;:::o;20774:419::-;20940:4;20978:2;20967:9;20963:18;20955:26;;21027:9;21021:4;21017:20;21013:1;21002:9;20998:17;20991:47;21055:131;21181:4;21055:131;:::i;:::-;21047:139;;20774:419;;;:::o;21199:221::-;21339:34;21335:1;21327:6;21323:14;21316:58;21408:4;21403:2;21395:6;21391:15;21384:29;21199:221;:::o;21426:366::-;21568:3;21589:67;21653:2;21648:3;21589:67;:::i;:::-;21582:74;;21665:93;21754:3;21665:93;:::i;:::-;21783:2;21778:3;21774:12;21767:19;;21426:366;;;:::o;21798:419::-;21964:4;22002:2;21991:9;21987:18;21979:26;;22051:9;22045:4;22041:20;22037:1;22026:9;22022:17;22015:47;22079:131;22205:4;22079:131;:::i;:::-;22071:139;;21798:419;;;:::o;22223:224::-;22363:34;22359:1;22351:6;22347:14;22340:58;22432:7;22427:2;22419:6;22415:15;22408:32;22223:224;:::o;22453:366::-;22595:3;22616:67;22680:2;22675:3;22616:67;:::i;:::-;22609:74;;22692:93;22781:3;22692:93;:::i;:::-;22810:2;22805:3;22801:12;22794:19;;22453:366;;;:::o;22825:419::-;22991:4;23029:2;23018:9;23014:18;23006:26;;23078:9;23072:4;23068:20;23064:1;23053:9;23049:17;23042:47;23106:131;23232:4;23106:131;:::i;:::-;23098:139;;22825:419;;;:::o;23250:222::-;23390:34;23386:1;23378:6;23374:14;23367:58;23459:5;23454:2;23446:6;23442:15;23435:30;23250:222;:::o;23478:366::-;23620:3;23641:67;23705:2;23700:3;23641:67;:::i;:::-;23634:74;;23717:93;23806:3;23717:93;:::i;:::-;23835:2;23830:3;23826:12;23819:19;;23478:366;;;:::o;23850:419::-;24016:4;24054:2;24043:9;24039:18;24031:26;;24103:9;24097:4;24093:20;24089:1;24078:9;24074:17;24067:47;24131:131;24257:4;24131:131;:::i;:::-;24123:139;;23850:419;;;:::o;24275:228::-;24415:34;24411:1;24403:6;24399:14;24392:58;24484:11;24479:2;24471:6;24467:15;24460:36;24275:228;:::o;24509:366::-;24651:3;24672:67;24736:2;24731:3;24672:67;:::i;:::-;24665:74;;24748:93;24837:3;24748:93;:::i;:::-;24866:2;24861:3;24857:12;24850:19;;24509:366;;;:::o;24881:419::-;25047:4;25085:2;25074:9;25070:18;25062:26;;25134:9;25128:4;25124:20;25120:1;25109:9;25105:17;25098:47;25162:131;25288:4;25162:131;:::i;:::-;25154:139;;24881:419;;;:::o;25306:163::-;25446:15;25442:1;25434:6;25430:14;25423:39;25306:163;:::o;25475:366::-;25617:3;25638:67;25702:2;25697:3;25638:67;:::i;:::-;25631:74;;25714:93;25803:3;25714:93;:::i;:::-;25832:2;25827:3;25823:12;25816:19;;25475:366;;;:::o;25847:419::-;26013:4;26051:2;26040:9;26036:18;26028:26;;26100:9;26094:4;26090:20;26086:1;26075:9;26071:17;26064:47;26128:131;26254:4;26128:131;:::i;:::-;26120:139;;25847:419;;;:::o;26272:169::-;26412:21;26408:1;26400:6;26396:14;26389:45;26272:169;:::o;26447:366::-;26589:3;26610:67;26674:2;26669:3;26610:67;:::i;:::-;26603:74;;26686:93;26775:3;26686:93;:::i;:::-;26804:2;26799:3;26795:12;26788:19;;26447:366;;;:::o;26819:419::-;26985:4;27023:2;27012:9;27008:18;27000:26;;27072:9;27066:4;27062:20;27058:1;27047:9;27043:17;27036:47;27100:131;27226:4;27100:131;:::i;:::-;27092:139;;26819:419;;;:::o;27244:167::-;27384:19;27380:1;27372:6;27368:14;27361:43;27244:167;:::o;27417:366::-;27559:3;27580:67;27644:2;27639:3;27580:67;:::i;:::-;27573:74;;27656:93;27745:3;27656:93;:::i;:::-;27774:2;27769:3;27765:12;27758:19;;27417:366;;;:::o;27789:419::-;27955:4;27993:2;27982:9;27978:18;27970:26;;28042:9;28036:4;28032:20;28028:1;28017:9;28013:17;28006:47;28070:131;28196:4;28070:131;:::i;:::-;28062:139;;27789:419;;;:::o;28214:180::-;28262:77;28259:1;28252:88;28359:4;28356:1;28349:15;28383:4;28380:1;28373:15;28400:194;28440:4;28460:20;28478:1;28460:20;:::i;:::-;28455:25;;28494:20;28512:1;28494:20;:::i;:::-;28489:25;;28538:1;28535;28531:9;28523:17;;28562:1;28556:4;28553:11;28550:37;;;28567:18;;:::i;:::-;28550:37;28400:194;;;;:::o;28600:410::-;28640:7;28663:20;28681:1;28663:20;:::i;:::-;28658:25;;28697:20;28715:1;28697:20;:::i;:::-;28692:25;;28752:1;28749;28745:9;28774:30;28792:11;28774:30;:::i;:::-;28763:41;;28953:1;28944:7;28940:15;28937:1;28934:22;28914:1;28907:9;28887:83;28864:139;;28983:18;;:::i;:::-;28864:139;28648:362;28600:410;;;;:::o;29016:180::-;29064:77;29061:1;29054:88;29161:4;29158:1;29151:15;29185:4;29182:1;29175:15;29202:185;29242:1;29259:20;29277:1;29259:20;:::i;:::-;29254:25;;29293:20;29311:1;29293:20;:::i;:::-;29288:25;;29332:1;29322:35;;29337:18;;:::i;:::-;29322:35;29379:1;29376;29372:9;29367:14;;29202:185;;;;:::o;29393:220::-;29533:34;29529:1;29521:6;29517:14;29510:58;29602:3;29597:2;29589:6;29585:15;29578:28;29393:220;:::o;29619:366::-;29761:3;29782:67;29846:2;29841:3;29782:67;:::i;:::-;29775:74;;29858:93;29947:3;29858:93;:::i;:::-;29976:2;29971:3;29967:12;29960:19;;29619:366;;;:::o;29991:419::-;30157:4;30195:2;30184:9;30180:18;30172:26;;30244:9;30238:4;30234:20;30230:1;30219:9;30215:17;30208:47;30272:131;30398:4;30272:131;:::i;:::-;30264:139;;29991:419;;;:::o;30416:191::-;30456:3;30475:20;30493:1;30475:20;:::i;:::-;30470:25;;30509:20;30527:1;30509:20;:::i;:::-;30504:25;;30552:1;30549;30545:9;30538:16;;30573:3;30570:1;30567:10;30564:36;;;30580:18;;:::i;:::-;30564:36;30416:191;;;;:::o;30613:177::-;30753:29;30749:1;30741:6;30737:14;30730:53;30613:177;:::o;30796:366::-;30938:3;30959:67;31023:2;31018:3;30959:67;:::i;:::-;30952:74;;31035:93;31124:3;31035:93;:::i;:::-;31153:2;31148:3;31144:12;31137:19;;30796:366;;;:::o;31168:419::-;31334:4;31372:2;31361:9;31357:18;31349:26;;31421:9;31415:4;31411:20;31407:1;31396:9;31392:17;31385:47;31449:131;31575:4;31449:131;:::i;:::-;31441:139;;31168:419;;;:::o;31593:180::-;31641:77;31638:1;31631:88;31738:4;31735:1;31728:15;31762:4;31759:1;31752:15;31779:180;31827:77;31824:1;31817:88;31924:4;31921:1;31914:15;31948:4;31945:1;31938:15;31965:143;32022:5;32053:6;32047:13;32038:22;;32069:33;32096:5;32069:33;:::i;:::-;31965:143;;;;:::o;32114:351::-;32184:6;32233:2;32221:9;32212:7;32208:23;32204:32;32201:119;;;32239:79;;:::i;:::-;32201:119;32359:1;32384:64;32440:7;32431:6;32420:9;32416:22;32384:64;:::i;:::-;32374:74;;32330:128;32114:351;;;;:::o;32471:85::-;32516:7;32545:5;32534:16;;32471:85;;;:::o;32562:158::-;32620:9;32653:61;32671:42;32680:32;32706:5;32680:32;:::i;:::-;32671:42;:::i;:::-;32653:61;:::i;:::-;32640:74;;32562:158;;;:::o;32726:147::-;32821:45;32860:5;32821:45;:::i;:::-;32816:3;32809:58;32726:147;;:::o;32879:114::-;32946:6;32980:5;32974:12;32964:22;;32879:114;;;:::o;32999:184::-;33098:11;33132:6;33127:3;33120:19;33172:4;33167:3;33163:14;33148:29;;32999:184;;;;:::o;33189:132::-;33256:4;33279:3;33271:11;;33309:4;33304:3;33300:14;33292:22;;33189:132;;;:::o;33327:108::-;33404:24;33422:5;33404:24;:::i;:::-;33399:3;33392:37;33327:108;;:::o;33441:179::-;33510:10;33531:46;33573:3;33565:6;33531:46;:::i;:::-;33609:4;33604:3;33600:14;33586:28;;33441:179;;;;:::o;33626:113::-;33696:4;33728;33723:3;33719:14;33711:22;;33626:113;;;:::o;33775:732::-;33894:3;33923:54;33971:5;33923:54;:::i;:::-;33993:86;34072:6;34067:3;33993:86;:::i;:::-;33986:93;;34103:56;34153:5;34103:56;:::i;:::-;34182:7;34213:1;34198:284;34223:6;34220:1;34217:13;34198:284;;;34299:6;34293:13;34326:63;34385:3;34370:13;34326:63;:::i;:::-;34319:70;;34412:60;34465:6;34412:60;:::i;:::-;34402:70;;34258:224;34245:1;34242;34238:9;34233:14;;34198:284;;;34202:14;34498:3;34491:10;;33899:608;;;33775:732;;;;:::o;34513:831::-;34776:4;34814:3;34803:9;34799:19;34791:27;;34828:71;34896:1;34885:9;34881:17;34872:6;34828:71;:::i;:::-;34909:80;34985:2;34974:9;34970:18;34961:6;34909:80;:::i;:::-;35036:9;35030:4;35026:20;35021:2;35010:9;35006:18;34999:48;35064:108;35167:4;35158:6;35064:108;:::i;:::-;35056:116;;35182:72;35250:2;35239:9;35235:18;35226:6;35182:72;:::i;:::-;35264:73;35332:3;35321:9;35317:19;35308:6;35264:73;:::i;:::-;34513:831;;;;;;;;:::o;35350:483::-;35521:4;35559:2;35548:9;35544:18;35536:26;;35572:71;35640:1;35629:9;35625:17;35616:6;35572:71;:::i;:::-;35690:9;35684:4;35680:20;35675:2;35664:9;35660:18;35653:48;35718:108;35821:4;35812:6;35718:108;:::i;:::-;35710:116;;35350:483;;;;;:::o

Swarm Source

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