ETH Price: $2,405.43 (-4.13%)

Token

Landian Accelerationism (Lacc)
 

Overview

Max Total Supply

100,000,000,000 Lacc

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.042050801 Lacc

Value
$0.00
0xb02d4fdc7f9d12da123267446309f85b10bad247
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:
LA

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
//
pragma solidity ^0.8.11;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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 {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    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 LA is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Landian Accelerationism';
    string private constant _symbol = 'Lacc';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000000 * (10 ** _decimals);
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 0;
    uint256 private burnFee = 0;
    uint256 private totalFee = 1100;
    uint256 private sellFee = 2100;
    uint256 private transferFee = 2000;
    uint256 private denominator = 10000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal development_receiver = 0x01C1b5dEF6EA2AeFcC84a8BFfE8Fc396d9C9690f; 
    address internal marketing_receiver = 0x01C1b5dEF6EA2AeFcC84a8BFfE8Fc396d9C9690f;
    address internal liquidity_receiver = 0x01C1b5dEF6EA2AeFcC84a8BFfE8Fc396d9C9690f;
    uint256 public _maxTxAmount = ( _totalSupply * 120 ) / 10000;
    uint256 public _maxSellAmount = ( _totalSupply * 120 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 120 ) / 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }
    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function startTrading() external onlyOwner {tradingAllowed = true;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}

    function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold;
    }

    function setcontractctehreshold(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    function updatetax(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }
    function setAddresses(address _marketing, address _liquidity, address _development) external onlyOwner {
        marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development;
        isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true;
    }
    function removeLimit(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    function manualSwap() external onlyOwner {
        swapAndLiquify(swapThreshold);
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

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

    function shoTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));}
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");}
        require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);}
        if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shoTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

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

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setcontractctehreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"updatetax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000905565b64174876e80062000026919062000956565b6001556000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600a55620186a06103e86001546200007a919062000956565b620000869190620009e6565b600b55620186a0600a6001546200009e919062000956565b620000aa9190620009e6565b600c556000600d556000600e556000600f55600060105561044c6011556108346012556107d06013556127106014557301c1b5def6ea2aefcc84a8bffe8fc396d9c9690f601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507301c1b5def6ea2aefcc84a8bffe8fc396d9c9690f601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507301c1b5def6ea2aefcc84a8bffe8fc396d9c9690f601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506127106078600154620001ec919062000956565b620001f89190620009e6565b60185561271060786001546200020f919062000956565b6200021b9190620009e6565b601955612710607860015462000232919062000956565b6200023e9190620009e6565b601a553480156200024e57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000a88565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000386573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ac919062000a88565b6040518363ffffffff1660e01b8152600401620003cb92919062000acb565b6020604051808303816000875af1158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000a88565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200075b919062000b09565b60405180910390a3505062000b26565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007f957808604811115620007d157620007d06200076b565b5b6001851615620007e15780820291505b8081029050620007f1856200079a565b9450620007b1565b94509492505050565b600082620008145760019050620008e7565b81620008245760009050620008e7565b81600181146200083d576002811462000848576200087e565b6001915050620008e7565b60ff8411156200085d576200085c6200076b565b5b8360020a9150848211156200087757620008766200076b565b5b50620008e7565b5060208310610133831016604e8410600b8410161715620008b85782820a905083811115620008b257620008b16200076b565b5b620008e7565b620008c78484846001620007a7565b92509050818404811115620008e157620008e06200076b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200091282620008ee565b91506200091f83620008f8565b92506200094e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000802565b905092915050565b60006200096382620008ee565b91506200097083620008ee565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ac57620009ab6200076b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009f382620008ee565b915062000a0083620008ee565b92508262000a135762000a12620009b7565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a508262000a23565b9050919050565b62000a628162000a43565b811462000a6e57600080fd5b50565b60008151905062000a828162000a57565b92915050565b60006020828403121562000aa15762000aa062000a1e565b5b600062000ab18482850162000a71565b91505092915050565b62000ac58162000a43565b82525050565b600060408201905062000ae2600083018562000aba565b62000af1602083018462000aba565b9392505050565b62000b0381620008ee565b82525050565b600060208201905062000b20600083018462000af8565b92915050565b6136b08062000b366000396000f3fe60806040526004361061014f5760003560e01c80635a3b3e2d116100b657806395d89b411161006f57806395d89b411461048b578063a8aa1b31146104b6578063a9059cbb146104e1578063db6ee37b1461051e578063dd62ed3e14610547578063f2fde38b1461058457610156565b80635a3b3e2d1461037957806370a08231146103a257806378109e54146103df5780637cca52fe1461040a5780637d1db4a514610435578063893d20e81461046057610156565b8063313ce56711610108578063313ce5671461027f578063363bf964146102aa5780633f4218e0146102d357806348ff2b8b146103105780635023eda81461033957806351bc3c851461036257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063293230b81461022b5780632f54bf6e1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105ad565b60405161017d9190612760565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061281b565b6105ea565b6040516101ba9190612876565b60405180910390f35b3480156101cf57600080fd5b506101d8610601565b6040516101e591906128a0565b60405180910390f35b3480156101fa57600080fd5b50610215600480360381019061021091906128bb565b610642565b6040516102229190612876565b60405180910390f35b34801561023757600080fd5b5061024061070d565b005b34801561024e57600080fd5b506102696004803603810190610264919061290e565b610772565b6040516102769190612876565b60405180910390f35b34801561028b57600080fd5b506102946107cb565b6040516102a19190612957565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612972565b6107d4565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061290e565b6109ec565b6040516103079190612876565b60405180910390f35b34801561031c57600080fd5b50610337600480360381019061033291906129f1565b610a0c565b005b34801561034557600080fd5b50610360600480360381019061035b9190612a31565b610aaf565b005b34801561036e57600080fd5b50610377610bd1565b005b34801561038557600080fd5b506103a0600480360381019061039b9190612ad3565b610c26565b005b3480156103ae57600080fd5b506103c960048036038101906103c4919061290e565b610da1565b6040516103d691906128a0565b60405180910390f35b3480156103eb57600080fd5b506103f4610dea565b60405161040191906128a0565b60405180910390f35b34801561041657600080fd5b5061041f610df0565b60405161042c91906128a0565b60405180910390f35b34801561044157600080fd5b5061044a610df6565b60405161045791906128a0565b60405180910390f35b34801561046c57600080fd5b50610475610dfc565b6040516104829190612b35565b60405180910390f35b34801561049757600080fd5b506104a0610e25565b6040516104ad9190612760565b60405180910390f35b3480156104c257600080fd5b506104cb610e62565b6040516104d89190612b35565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061281b565b610e88565b6040516105159190612876565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612ad3565b610e9f565b005b34801561055357600080fd5b5061056e60048036038101906105699190612b50565b610f53565b60405161057b91906128a0565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190612bce565b610fda565b005b60606040518060400160405280601781526020017f4c616e6469616e20416363656c65726174696f6e69736d000000000000000000815250905090565b60006105f733848461109c565b6001905092915050565b600061063d6106106000610da1565b61062f61061e61dead610da1565b60015461126790919063ffffffff16565b61126790919063ffffffff16565b905090565b600061064f84848461127d565b61070284336106fd8560405180606001604052806028815260200161365360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b499092919063ffffffff16565b61109c565b600190509392505050565b61071633610772565b610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612c47565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6107dd33610772565b61081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390612c47565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60046020528060005260406000206000915054906101000a900460ff1681565b610a1533610772565b610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90612c47565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ab833610772565b610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90612c47565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f81905550826011819055508160128190555080601381905550610b3e6001601454611b9e90919063ffffffff16565b60115411158015610b665750610b606001601454611b9e90919063ffffffff16565b60125411155b8015610b895750610b836001601454611b9e90919063ffffffff16565b60135411155b610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf90612cd9565b60405180910390fd5b50505050505050565b610bda33610772565b610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090612c47565b60405180910390fd5b610c24600b54611bb4565b565b610c2f33610772565b610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612c47565b60405180910390fd5b6000610c99612710610c8b86600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000610cc6612710610cb886600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000610cf3612710610ce586600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b9050826018819055508160198190555080601a819055506000610d3b6103e8610d2d6005610d1f610601565b611e2190919063ffffffff16565b611b9e90919063ffffffff16565b9050808410158015610d4d5750808310155b8015610d595750808210155b610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612d6b565b60405180910390fd5b50505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60195481565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c61636300000000000000000000000000000000000000000000000000000000815250905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e9533848461127d565b6001905092915050565b610ea833610772565b610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ede90612c47565b60405180910390fd5b82600a81905550610f18620186a0610f0a84600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b600b81905550610f48620186a0610f3a83600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b600c81905550505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fe333610772565b611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990612c47565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516110919190612dea565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390612e77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390612f09565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125a91906128a0565b60405180910390a3505050565b600081836112759190612f58565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613090565b60405180910390fd5b61136683610da1565b8111156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90613122565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561144c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114a157600760149054906101000a900460ff166114a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114979061318e565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115455750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561159f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561167557601a5461163382600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b1115611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b906131fa565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117b857601954811115806117245750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117785750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613266565b60405180910390fd5b5b601854811115806118125750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118665750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613266565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561194c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196c576001600860008282546119649190613286565b925050819055505b611977838383611e4d565b1561199057611987600b54611bb4565b60006008819055505b6119e281600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461126790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611a318484611f87565b611a3b5781611a47565b611a46848484612035565b5b9050611a9b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3b91906128a0565b60405180910390a350505050565b6000838311158290611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b889190612760565b60405180910390fd5b5082840390509392505050565b60008183611bac919061330b565b905092915050565b6001600960006101000a81548160ff0219169083151502179055506000611c226002611c14600f54611c06600e54611bf86001600d54611e3790919063ffffffff16565b611e3790919063ffffffff16565b611e3790919063ffffffff16565b611e2190919063ffffffff16565b90506000611c4d82611c3f600d5486611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000611c64828561126790919063ffffffff16565b90506000479050611c74826121f3565b6000611c89824761126790919063ffffffff16565b90506000611cb4611ca5600d548861126790919063ffffffff16565b83611b9e90919063ffffffff16565b90506000611ccd600d5483611e2190919063ffffffff16565b90506000811115611ce357611ce28682612436565b5b6000611d0d600e54611cff600286611e2190919063ffffffff16565b611e2190919063ffffffff16565b90506000811115611d8257601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d80573d6000803e3d6000fd5b505b60004790506000811115611dfa57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611df8573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b60008183611e2f919061333c565b905092915050565b60008183611e459190613286565b905092915050565b600080600c5483101590506000600b54611e6630610da1565b10159050600960009054906101000a900460ff16158015611e935750600760159054906101000a900460ff165b8015611eab5750600760149054906101000a900460ff165b8015611eb45750815b8015611f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f635750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750600a5460085410155b8015611f7c5750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561202d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806120428585612536565b11156121e857600061207a6120578686612536565b61206c60145486611b9e90919063ffffffff16565b611e2190919063ffffffff16565b90506120ce81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216e91906128a0565b60405180910390a3600060105411801561219257506010546121908686612536565b115b156121cd576121cc3061dead6121c76010546121b960145489611b9e90919063ffffffff16565b611e2190919063ffffffff16565b61127d565b5b6121e0818461126790919063ffffffff16565b9150506121ec565b8190505b9392505050565b6000600267ffffffffffffffff8111156122105761220f613396565b5b60405190808252806020026020018201604052801561223e5781602001602082028036833780820191505090505b5090503081600081518110612256576122556133c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123219190613409565b81600181518110612335576123346133c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061239c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161240095949392919061352f565b600060405180830381600087803b15801561241a57600080fd5b505af115801561242e573d6000803e3d6000fd5b505050505050565b61246330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016124ec96959493929190613589565b60606040518083038185885af115801561250a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061252f91906135ff565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125d95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125fb576125f4606460145461126790919063ffffffff16565b90506126c1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265b5760125490506126c1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126bb5760115490506126c1565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127015780820151818401526020810190506126e6565b83811115612710576000848401525b50505050565b6000601f19601f8301169050919050565b6000612732826126c7565b61273c81856126d2565b935061274c8185602086016126e3565b61275581612716565b840191505092915050565b6000602082019050818103600083015261277a8184612727565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b282612787565b9050919050565b6127c2816127a7565b81146127cd57600080fd5b50565b6000813590506127df816127b9565b92915050565b6000819050919050565b6127f8816127e5565b811461280357600080fd5b50565b600081359050612815816127ef565b92915050565b6000806040838503121561283257612831612782565b5b6000612840858286016127d0565b925050602061285185828601612806565b9150509250929050565b60008115159050919050565b6128708161285b565b82525050565b600060208201905061288b6000830184612867565b92915050565b61289a816127e5565b82525050565b60006020820190506128b56000830184612891565b92915050565b6000806000606084860312156128d4576128d3612782565b5b60006128e2868287016127d0565b93505060206128f3868287016127d0565b925050604061290486828701612806565b9150509250925092565b60006020828403121561292457612923612782565b5b6000612932848285016127d0565b91505092915050565b600060ff82169050919050565b6129518161293b565b82525050565b600060208201905061296c6000830184612948565b92915050565b60008060006060848603121561298b5761298a612782565b5b6000612999868287016127d0565b93505060206129aa868287016127d0565b92505060406129bb868287016127d0565b9150509250925092565b6129ce8161285b565b81146129d957600080fd5b50565b6000813590506129eb816129c5565b92915050565b60008060408385031215612a0857612a07612782565b5b6000612a16858286016127d0565b9250506020612a27858286016129dc565b9150509250929050565b600080600080600080600060e0888a031215612a5057612a4f612782565b5b6000612a5e8a828b01612806565b9750506020612a6f8a828b01612806565b9650506040612a808a828b01612806565b9550506060612a918a828b01612806565b9450506080612aa28a828b01612806565b93505060a0612ab38a828b01612806565b92505060c0612ac48a828b01612806565b91505092959891949750929550565b600080600060608486031215612aec57612aeb612782565b5b6000612afa86828701612806565b9350506020612b0b86828701612806565b9250506040612b1c86828701612806565b9150509250925092565b612b2f816127a7565b82525050565b6000602082019050612b4a6000830184612b26565b92915050565b60008060408385031215612b6757612b66612782565b5b6000612b75858286016127d0565b9250506020612b86858286016127d0565b9150509250929050565b6000612b9b82612787565b9050919050565b612bab81612b90565b8114612bb657600080fd5b50565b600081359050612bc881612ba2565b92915050565b600060208284031215612be457612be3612782565b5b6000612bf284828501612bb9565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c316006836126d2565b9150612c3c82612bfb565b602082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612cc3602c836126d2565b9150612cce82612c67565b604082019050919050565b60006020820190508181036000830152612cf281612cb6565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612d55602e836126d2565b9150612d6082612cf9565b604082019050919050565b60006020820190508181036000830152612d8481612d48565b9050919050565b6000819050919050565b6000612db0612dab612da684612787565b612d8b565b612787565b9050919050565b6000612dc282612d95565b9050919050565b6000612dd482612db7565b9050919050565b612de481612dc9565b82525050565b6000602082019050612dff6000830184612ddb565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e616024836126d2565b9150612e6c82612e05565b604082019050919050565b60006020820190508181036000830152612e9081612e54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ef36022836126d2565b9150612efe82612e97565b604082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f63826127e5565b9150612f6e836127e5565b925082821015612f8157612f80612f29565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fe86025836126d2565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061307a6023836126d2565b91506130858261301e565b604082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b600061310c6031836126d2565b9150613117826130b0565b604082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613178600e836126d2565b915061318382613142565b602082019050919050565b600060208201905081810360008301526131a78161316b565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006131e4601e836126d2565b91506131ef826131ae565b602082019050919050565b60006020820190508181036000830152613213816131d7565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006132506011836126d2565b915061325b8261321a565b602082019050919050565b6000602082019050818103600083015261327f81613243565b9050919050565b6000613291826127e5565b915061329c836127e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132d1576132d0612f29565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826127e5565b9150613321836127e5565b925082613331576133306132dc565b5b828204905092915050565b6000613347826127e5565b9150613352836127e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338b5761338a612f29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613403816127b9565b92915050565b60006020828403121561341f5761341e612782565b5b600061342d848285016133f4565b91505092915050565b6000819050919050565b600061345b61345661345184613436565b612d8b565b6127e5565b9050919050565b61346b81613440565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134a6816127a7565b82525050565b60006134b8838361349d565b60208301905092915050565b6000602082019050919050565b60006134dc82613471565b6134e6818561347c565b93506134f18361348d565b8060005b8381101561352257815161350988826134ac565b9750613514836134c4565b9250506001810190506134f5565b5085935050505092915050565b600060a0820190506135446000830188612891565b6135516020830187613462565b818103604083015261356381866134d1565b90506135726060830185612b26565b61357f6080830184612891565b9695505050505050565b600060c08201905061359e6000830189612b26565b6135ab6020830188612891565b6135b86040830187613462565b6135c56060830186613462565b6135d26080830185612b26565b6135df60a0830184612891565b979650505050505050565b6000815190506135f9816127ef565b92915050565b60008060006060848603121561361857613617612782565b5b6000613626868287016135ea565b9350506020613637868287016135ea565b9250506040613648868287016135ea565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035337e66dfc9202290fa6f30efed1d0d2c7289f850daa1c1b16c793b1f44b1b164736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80635a3b3e2d116100b657806395d89b411161006f57806395d89b411461048b578063a8aa1b31146104b6578063a9059cbb146104e1578063db6ee37b1461051e578063dd62ed3e14610547578063f2fde38b1461058457610156565b80635a3b3e2d1461037957806370a08231146103a257806378109e54146103df5780637cca52fe1461040a5780637d1db4a514610435578063893d20e81461046057610156565b8063313ce56711610108578063313ce5671461027f578063363bf964146102aa5780633f4218e0146102d357806348ff2b8b146103105780635023eda81461033957806351bc3c851461036257610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063293230b81461022b5780632f54bf6e1461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b506101706105ad565b60405161017d9190612760565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a8919061281b565b6105ea565b6040516101ba9190612876565b60405180910390f35b3480156101cf57600080fd5b506101d8610601565b6040516101e591906128a0565b60405180910390f35b3480156101fa57600080fd5b50610215600480360381019061021091906128bb565b610642565b6040516102229190612876565b60405180910390f35b34801561023757600080fd5b5061024061070d565b005b34801561024e57600080fd5b506102696004803603810190610264919061290e565b610772565b6040516102769190612876565b60405180910390f35b34801561028b57600080fd5b506102946107cb565b6040516102a19190612957565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc9190612972565b6107d4565b005b3480156102df57600080fd5b506102fa60048036038101906102f5919061290e565b6109ec565b6040516103079190612876565b60405180910390f35b34801561031c57600080fd5b50610337600480360381019061033291906129f1565b610a0c565b005b34801561034557600080fd5b50610360600480360381019061035b9190612a31565b610aaf565b005b34801561036e57600080fd5b50610377610bd1565b005b34801561038557600080fd5b506103a0600480360381019061039b9190612ad3565b610c26565b005b3480156103ae57600080fd5b506103c960048036038101906103c4919061290e565b610da1565b6040516103d691906128a0565b60405180910390f35b3480156103eb57600080fd5b506103f4610dea565b60405161040191906128a0565b60405180910390f35b34801561041657600080fd5b5061041f610df0565b60405161042c91906128a0565b60405180910390f35b34801561044157600080fd5b5061044a610df6565b60405161045791906128a0565b60405180910390f35b34801561046c57600080fd5b50610475610dfc565b6040516104829190612b35565b60405180910390f35b34801561049757600080fd5b506104a0610e25565b6040516104ad9190612760565b60405180910390f35b3480156104c257600080fd5b506104cb610e62565b6040516104d89190612b35565b60405180910390f35b3480156104ed57600080fd5b506105086004803603810190610503919061281b565b610e88565b6040516105159190612876565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612ad3565b610e9f565b005b34801561055357600080fd5b5061056e60048036038101906105699190612b50565b610f53565b60405161057b91906128a0565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a69190612bce565b610fda565b005b60606040518060400160405280601781526020017f4c616e6469616e20416363656c65726174696f6e69736d000000000000000000815250905090565b60006105f733848461109c565b6001905092915050565b600061063d6106106000610da1565b61062f61061e61dead610da1565b60015461126790919063ffffffff16565b61126790919063ffffffff16565b905090565b600061064f84848461127d565b61070284336106fd8560405180606001604052806028815260200161365360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b499092919063ffffffff16565b61109c565b600190509392505050565b61071633610772565b610755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074c90612c47565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6107dd33610772565b61081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390612c47565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60046020528060005260406000206000915054906101000a900460ff1681565b610a1533610772565b610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90612c47565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610ab833610772565b610af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aee90612c47565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f81905550826011819055508160128190555080601381905550610b3e6001601454611b9e90919063ffffffff16565b60115411158015610b665750610b606001601454611b9e90919063ffffffff16565b60125411155b8015610b895750610b836001601454611b9e90919063ffffffff16565b60135411155b610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf90612cd9565b60405180910390fd5b50505050505050565b610bda33610772565b610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1090612c47565b60405180910390fd5b610c24600b54611bb4565b565b610c2f33610772565b610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590612c47565b60405180910390fd5b6000610c99612710610c8b86600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000610cc6612710610cb886600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000610cf3612710610ce586600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b9050826018819055508160198190555080601a819055506000610d3b6103e8610d2d6005610d1f610601565b611e2190919063ffffffff16565b611b9e90919063ffffffff16565b9050808410158015610d4d5750808310155b8015610d595750808210155b610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f90612d6b565b60405180910390fd5b50505050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b60195481565b60185481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c61636300000000000000000000000000000000000000000000000000000000815250905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610e9533848461127d565b6001905092915050565b610ea833610772565b610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ede90612c47565b60405180910390fd5b82600a81905550610f18620186a0610f0a84600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b600b81905550610f48620186a0610f3a83600154611e2190919063ffffffff16565b611b9e90919063ffffffff16565b600c81905550505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fe333610772565b611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990612c47565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516110919190612dea565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110390612e77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117390612f09565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125a91906128a0565b60405180910390a3505050565b600081836112759190612f58565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e490612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613090565b60405180910390fd5b61136683610da1565b8111156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90613122565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561144c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114a157600760149054906101000a900460ff166114a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114979061318e565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115455750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561159f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d9575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561167557601a5461163382600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b1115611674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166b906131fa565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146117b857601954811115806117245750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117785750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6117b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ae90613266565b60405180910390fd5b5b601854811115806118125750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118665750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c90613266565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561194c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561196c576001600860008282546119649190613286565b925050819055505b611977838383611e4d565b1561199057611987600b54611bb4565b60006008819055505b6119e281600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461126790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611a318484611f87565b611a3b5781611a47565b611a46848484612035565b5b9050611a9b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b3b91906128a0565b60405180910390a350505050565b6000838311158290611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b889190612760565b60405180910390fd5b5082840390509392505050565b60008183611bac919061330b565b905092915050565b6001600960006101000a81548160ff0219169083151502179055506000611c226002611c14600f54611c06600e54611bf86001600d54611e3790919063ffffffff16565b611e3790919063ffffffff16565b611e3790919063ffffffff16565b611e2190919063ffffffff16565b90506000611c4d82611c3f600d5486611e2190919063ffffffff16565b611b9e90919063ffffffff16565b90506000611c64828561126790919063ffffffff16565b90506000479050611c74826121f3565b6000611c89824761126790919063ffffffff16565b90506000611cb4611ca5600d548861126790919063ffffffff16565b83611b9e90919063ffffffff16565b90506000611ccd600d5483611e2190919063ffffffff16565b90506000811115611ce357611ce28682612436565b5b6000611d0d600e54611cff600286611e2190919063ffffffff16565b611e2190919063ffffffff16565b90506000811115611d8257601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d80573d6000803e3d6000fd5b505b60004790506000811115611dfa57601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611df8573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b60008183611e2f919061333c565b905092915050565b60008183611e459190613286565b905092915050565b600080600c5483101590506000600b54611e6630610da1565b10159050600960009054906101000a900460ff16158015611e935750600760159054906101000a900460ff165b8015611eab5750600760149054906101000a900460ff165b8015611eb45750815b8015611f0a5750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f635750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611f735750600a5460085410155b8015611f7c5750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561202d5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806120428585612536565b11156121e857600061207a6120578686612536565b61206c60145486611b9e90919063ffffffff16565b611e2190919063ffffffff16565b90506120ce81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216e91906128a0565b60405180910390a3600060105411801561219257506010546121908686612536565b115b156121cd576121cc3061dead6121c76010546121b960145489611b9e90919063ffffffff16565b611e2190919063ffffffff16565b61127d565b5b6121e0818461126790919063ffffffff16565b9150506121ec565b8190505b9392505050565b6000600267ffffffffffffffff8111156122105761220f613396565b5b60405190808252806020026020018201604052801561223e5781602001602082028036833780820191505090505b5090503081600081518110612256576122556133c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123219190613409565b81600181518110612335576123346133c5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061239c30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161240095949392919061352f565b600060405180830381600087803b15801561241a57600080fd5b505af115801561242e573d6000803e3d6000fd5b505050505050565b61246330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109c565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016124ec96959493929190613589565b60606040518083038185885af115801561250a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061252f91906135ff565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125d95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125fb576125f4606460145461126790919063ffffffff16565b90506126c1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561265b5760125490506126c1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126bb5760115490506126c1565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156127015780820151818401526020810190506126e6565b83811115612710576000848401525b50505050565b6000601f19601f8301169050919050565b6000612732826126c7565b61273c81856126d2565b935061274c8185602086016126e3565b61275581612716565b840191505092915050565b6000602082019050818103600083015261277a8184612727565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b282612787565b9050919050565b6127c2816127a7565b81146127cd57600080fd5b50565b6000813590506127df816127b9565b92915050565b6000819050919050565b6127f8816127e5565b811461280357600080fd5b50565b600081359050612815816127ef565b92915050565b6000806040838503121561283257612831612782565b5b6000612840858286016127d0565b925050602061285185828601612806565b9150509250929050565b60008115159050919050565b6128708161285b565b82525050565b600060208201905061288b6000830184612867565b92915050565b61289a816127e5565b82525050565b60006020820190506128b56000830184612891565b92915050565b6000806000606084860312156128d4576128d3612782565b5b60006128e2868287016127d0565b93505060206128f3868287016127d0565b925050604061290486828701612806565b9150509250925092565b60006020828403121561292457612923612782565b5b6000612932848285016127d0565b91505092915050565b600060ff82169050919050565b6129518161293b565b82525050565b600060208201905061296c6000830184612948565b92915050565b60008060006060848603121561298b5761298a612782565b5b6000612999868287016127d0565b93505060206129aa868287016127d0565b92505060406129bb868287016127d0565b9150509250925092565b6129ce8161285b565b81146129d957600080fd5b50565b6000813590506129eb816129c5565b92915050565b60008060408385031215612a0857612a07612782565b5b6000612a16858286016127d0565b9250506020612a27858286016129dc565b9150509250929050565b600080600080600080600060e0888a031215612a5057612a4f612782565b5b6000612a5e8a828b01612806565b9750506020612a6f8a828b01612806565b9650506040612a808a828b01612806565b9550506060612a918a828b01612806565b9450506080612aa28a828b01612806565b93505060a0612ab38a828b01612806565b92505060c0612ac48a828b01612806565b91505092959891949750929550565b600080600060608486031215612aec57612aeb612782565b5b6000612afa86828701612806565b9350506020612b0b86828701612806565b9250506040612b1c86828701612806565b9150509250925092565b612b2f816127a7565b82525050565b6000602082019050612b4a6000830184612b26565b92915050565b60008060408385031215612b6757612b66612782565b5b6000612b75858286016127d0565b9250506020612b86858286016127d0565b9150509250929050565b6000612b9b82612787565b9050919050565b612bab81612b90565b8114612bb657600080fd5b50565b600081359050612bc881612ba2565b92915050565b600060208284031215612be457612be3612782565b5b6000612bf284828501612bb9565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c316006836126d2565b9150612c3c82612bfb565b602082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612cc3602c836126d2565b9150612cce82612c67565b604082019050919050565b60006020820190508181036000830152612cf281612cb6565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612d55602e836126d2565b9150612d6082612cf9565b604082019050919050565b60006020820190508181036000830152612d8481612d48565b9050919050565b6000819050919050565b6000612db0612dab612da684612787565b612d8b565b612787565b9050919050565b6000612dc282612d95565b9050919050565b6000612dd482612db7565b9050919050565b612de481612dc9565b82525050565b6000602082019050612dff6000830184612ddb565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e616024836126d2565b9150612e6c82612e05565b604082019050919050565b60006020820190508181036000830152612e9081612e54565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ef36022836126d2565b9150612efe82612e97565b604082019050919050565b60006020820190508181036000830152612f2281612ee6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f63826127e5565b9150612f6e836127e5565b925082821015612f8157612f80612f29565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fe86025836126d2565b9150612ff382612f8c565b604082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061307a6023836126d2565b91506130858261301e565b604082019050919050565b600060208201905081810360008301526130a98161306d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b600061310c6031836126d2565b9150613117826130b0565b604082019050919050565b6000602082019050818103600083015261313b816130ff565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613178600e836126d2565b915061318382613142565b602082019050919050565b600060208201905081810360008301526131a78161316b565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006131e4601e836126d2565b91506131ef826131ae565b602082019050919050565b60006020820190508181036000830152613213816131d7565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006132506011836126d2565b915061325b8261321a565b602082019050919050565b6000602082019050818103600083015261327f81613243565b9050919050565b6000613291826127e5565b915061329c836127e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132d1576132d0612f29565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613316826127e5565b9150613321836127e5565b925082613331576133306132dc565b5b828204905092915050565b6000613347826127e5565b9150613352836127e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561338b5761338a612f29565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613403816127b9565b92915050565b60006020828403121561341f5761341e612782565b5b600061342d848285016133f4565b91505092915050565b6000819050919050565b600061345b61345661345184613436565b612d8b565b6127e5565b9050919050565b61346b81613440565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134a6816127a7565b82525050565b60006134b8838361349d565b60208301905092915050565b6000602082019050919050565b60006134dc82613471565b6134e6818561347c565b93506134f18361348d565b8060005b8381101561352257815161350988826134ac565b9750613514836134c4565b9250506001810190506134f5565b5085935050505092915050565b600060a0820190506135446000830188612891565b6135516020830187613462565b818103604083015261356381866134d1565b90506135726060830185612b26565b61357f6080830184612891565b9695505050505050565b600060c08201905061359e6000830189612b26565b6135ab6020830188612891565b6135b86040830187613462565b6135c56060830186613462565b6135d26080830185612b26565b6135df60a0830184612891565b979650505050505050565b6000815190506135f9816127ef565b92915050565b60008060006060848603121561361857613617612782565b5b6000613626868287016135ea565b9350506020613637868287016135ea565b9250506040613648868287016135ea565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035337e66dfc9202290fa6f30efed1d0d2c7289f850daa1c1b16c793b1f44b1b164736f6c634300080b0033

Deployed Bytecode Sourcemap

4672:10873:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7116:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7997:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8136:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14888:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7339:67;;;;;;;;;;;;;:::i;:::-;;3576:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7266:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9526:330;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5088:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7883:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9013:507;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10415:89;;;;;;;;;;;;;:::i;:::-;;9862:547;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7496:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6401:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6332:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6265:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7412:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7189:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5206:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7605:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8687:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7750:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3669:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7116:67;7153:13;7176:5;;;;;;;;;;;;;;;;;7169:12;;7116:67;:::o;7997:133::-;8072:4;8079:37;8088:10;8100:7;8109:6;8079:8;:37::i;:::-;8124:4;8117:11;;7997:133;;;;:::o;8136:132::-;8189:7;8206:60;8244:21;8262:1;8244:9;:21::i;:::-;8206:33;8223:15;5952:42;8223:9;:15::i;:::-;8206:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;8199:67;;8136:132;:::o;14888:309::-;14986:4;15003:36;15013:6;15021:9;15032:6;15003:9;:36::i;:::-;15050:117;15059:6;15067:10;15079:87;15115:6;15079:87;;;;;;;;;;;;;;;;;:11;:19;15091:6;15079:19;;;;;;;;;;;;;;;:31;15099:10;15079:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;15050:8;:117::i;:::-;15185:4;15178:11;;14888:309;;;;;:::o;7339:67::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7400:4:::1;7383:14;;:21;;;;;;;;;;;;;;;;;;7339:67::o:0;3576:87::-;3631:4;3656:5;;;;;;;;;;;3645:16;;:7;:16;;;3638:23;;3576:87;;;:::o;7266:67::-;7307:5;4889:1;7315:16;;7266:67;:::o;9526:330::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9661:10:::1;9640:18;;:31;;;;;;;;;;;;;;;;;;9694:10;9673:18;;:31;;;;;;;;;;;;;;;;;;9729:12;9706:20;;:35;;;;;;;;;;;;;;;;;;9778:4;9752:11;:23;9764:10;9752:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9810:4;9784:11;:23;9796:10;9784:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9844:4;9816:11;:25;9828:12;9816:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9526:330:::0;;;:::o;5088:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7883:108::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7981:8:::1;7957:11;:21;7969:8;7957:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7883:108:::0;;:::o;9013:507::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9201:10:::1;9186:12;:25;;;;9228:10;9213:12;:25;;;;9250:5;9240:7;:15;;;;9274:12;9257:14;:29;;;;9299:6;9288:8;:17;;;;9317:5;9307:7;:15;;;;9338:6;9324:11;:20;;;;9375:18;9391:1;9375:11;;:15;;:18;;;;:::i;:::-;9363:8;;:30;;:63;;;;;9408:18;9424:1;9408:11;;:15;;:18;;;;:::i;:::-;9397:7;;:29;;9363:63;:100;;;;;9445:18;9461:1;9445:11;;:15;;:18;;;;:::i;:::-;9430:11;;:33;;9363:100;9355:157;;;;;;;;;;;;:::i;:::-;;;;;;;;;9013:507:::0;;;;;;;:::o;10415:89::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10467:29:::1;10482:13;;10467:14;:29::i;:::-;10415:89::o:0;9862:547::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9959:13:::1;9975:33;10002:5;9975:22;9992:4;9975:12;;:16;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;9959:49;;10010:19;10032:34;10060:5;10032:23;10049:5;10032:12;;:16;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;10010:56;;10068:17;10088:36;10118:5;10088:25;10105:7;10088:12;;:16;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;10068:56;;10150:5;10135:12;:20;;;;10174:11;10157:14;:28;;;;10205:9;10187:15;:27;;;;10225:13;10241:30;10266:4;10241:20;10259:1;10241:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10225:46;;10299:5;10290;:14;;:38;;;;;10323:5;10308:11;:20;;10290:38;:60;;;;;10345:5;10332:9;:18;;10290:60;10282:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;9948:461;;;;9862:547:::0;;;:::o;7496:103::-;7562:7;7579:9;:18;7589:7;7579:18;;;;;;;;;;;;;;;;7572:25;;7496:103;;;:::o;6401:63::-;;;;:::o;6332:62::-;;;;:::o;6265:60::-;;;;:::o;7412:78::-;7464:7;7482:5;;;;;;;;;;;7475:12;;7412:78;:::o;7189:71::-;7228:13;7251:7;;;;;;;;;;;;;;;;;7244:14;;7189:71;:::o;5206:19::-;;;;;;;;;;;;;:::o;7605:139::-;7683:4;7690:40;7700:10;7712:9;7723:6;7690:9;:40::i;:::-;7738:4;7731:11;;7605:139;;;;:::o;8687:318::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8832:11:::1;8819:10;:24;;;;8861:53;8906:6;8861:32;8878:14;8861:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;8845:13;:69;;;;8943:54;8989:6;8943:33;8960:15;8943:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;8926:14;:71;;;;8687:318:::0;;;:::o;7750:127::-;7831:7;7848:11;:18;7860:5;7848:18;;;;;;;;;;;;;;;:27;7867:7;7848:27;;;;;;;;;;;;;;;;7841:34;;7750:127;;;;:::o;3669:111::-;3535:19;3543:10;3535:7;:19::i;:::-;3527:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3743:3:::1;3735:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3753:25;3774:3;3753:25;;;;;;:::i;:::-;;;;;;;;3669:111:::0;:::o;15205:335::-;15315:1;15298:19;;:5;:19;;;;15290:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15396:1;15377:21;;:7;:21;;;;15369:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15478:6;15448:11;:18;15460:5;15448:18;;;;;;;;;;;;;;;:27;15467:7;15448:27;;;;;;;;;;;;;;;:36;;;;15516:7;15500:32;;15509:5;15500:32;;;15525:6;15500:32;;;;;;:::i;:::-;;;;;;;;15205:335;;;:::o;1315:98::-;1373:7;1404:1;1400;:5;;;;:::i;:::-;1393:12;;1315:98;;;;:::o;13450:1430::-;13565:1;13547:20;;:6;:20;;;;13539:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13649:1;13628:23;;:9;:23;;;;13620:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13720:17;13730:6;13720:9;:17::i;:::-;13710:6;:27;;13702:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13805:11;:19;13817:6;13805:19;;;;;;;;;;;;;;;;;;;;;;;;;13804:20;:47;;;;;13829:11;:22;13841:9;13829:22;;;;;;;;;;;;;;;;;;;;;;;;;13828:23;13804:47;13801:95;;;13861:14;;;;;;;;;;;13853:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13801:95;13910:11;:19;13922:6;13910:19;;;;;;;;;;;;;;;;;;;;;;;;;13909:20;:47;;;;;13934:11;:22;13946:9;13934:22;;;;;;;;;;;;;;;;;;;;;;;;;13933:23;13909:47;:77;;;;;13981:4;;;;;;;;;;;13960:26;;:9;:26;;;;13909:77;:107;;;;;5952:42;13990:26;;:9;:26;;;;13909:107;13906:220;;;14074:15;;14037:32;14062:6;14037:9;:20;14047:9;14037:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14036:53;;14028:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;13906:220;14149:4;;;;;;;;;;;14139:14;;:6;:14;;;14136:124;;14173:14;;14163:6;:24;;:47;;;;14191:11;:19;14203:6;14191:19;;;;;;;;;;;;;;;;;;;;;;;;;14163:47;:73;;;;14214:11;:22;14226:9;14214:22;;;;;;;;;;;;;;;;;;;;;;;;;14163:73;14155:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14136:124;14288:12;;14278:6;:22;;:45;;;;14304:11;:19;14316:6;14304:19;;;;;;;;;;;;;;;;;;;;;;;;;14278:45;:71;;;;14327:11;:22;14339:9;14327:22;;;;;;;;;;;;;;;;;;;;;;;;;14278:71;14270:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;14399:4;;;;;;;;;;;14386:17;;:9;:17;;;:41;;;;;14408:11;:19;14420:6;14408:19;;;;;;;;;;;;;;;;;;;;;;;;;14407:20;14386:41;14383:71;;;14450:1;14429:9;;:23;;;;;;;:::i;:::-;;;;;;;;14383:71;14467:45;14486:6;14494:9;14505:6;14467:18;:45::i;:::-;14464:105;;;14514:29;14529:13;;14514:14;:29::i;:::-;14565:1;14545:9;:22;;;;14464:105;14599:29;14621:6;14599:9;:17;14609:6;14599:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;14579:9;:17;14589:6;14579:17;;;;;;;;;;;;;;;:49;;;;14639:22;14664:29;14675:6;14683:9;14664:10;:29::i;:::-;:75;;14733:6;14664:75;;;14696:34;14704:6;14712:9;14723:6;14696:7;:34::i;:::-;14664:75;14639:100;;14773:40;14798:14;14773:9;:20;14783:9;14773:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14750:9;:20;14760:9;14750:20;;;;;;;;;;;;;;;:63;;;;14846:9;14829:43;;14838:6;14829:43;;;14857:14;14829:43;;;;;;:::i;:::-;;;;;;;;13528:1352;13450:1430;;;:::o;1739:240::-;1859:7;1917:1;1912;:6;;1920:12;1904:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1959:1;1955;:5;1948:12;;1739:240;;;;;:::o;1527:98::-;1585:7;1616:1;1612;:5;;;;:::i;:::-;1605:12;;1527:98;;;;:::o;10512:1063::-;5575:4;5564:8;;:15;;;;;;;;;;;;;;;;;;10583:20:::1;10606:66;10670:1;10607:57;10649:14;;10607:37;10631:12;;10607:19;10624:1;10607:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;10606:63;;:66;;;;:::i;:::-;10583:89;;10683:32;10718:42;10747:12;10718:24;10729:12;;10718:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;10683:77;;10771:14;10788:36;10799:24;10788:6;:10;;:36;;;;:::i;:::-;10771:53;;10835:22;10860:21;10835:46;;10892:24;10909:6;10892:16;:24::i;:::-;10927:20;10950:41;10976:14;10950:21;:25;;:41;;;;:::i;:::-;10927:64;;11002:19;11023:48;11040:30;11057:12;;11040;:16;;:30;;;;:::i;:::-;11023:12;:16;;:48;;;;:::i;:::-;11002:69;;11082:29;11114;11130:12;;11114:11;:15;;:29;;;;:::i;:::-;11082:61;;11189:1;11157:21;:34;11154:103;;;11193:61;11206:24;11232:21;11193:12;:61::i;:::-;11154:103;11267:20;11290:36;11313:12;;11290:18;11306:1;11290:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;11267:59;;11355:1;11340:12;:16;11337:73;;;11366:18;;;;;;;;;;;11358:36;;:50;11395:12;11358:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11337:73;11420:23;11446:21;11420:47;;11507:1;11481:15;:28;11478:90;;;11519:20;;;;;;;;;;;11511:38;;:55;11550:15;11511:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11478:90;10572:1003;;;;;;;;;5595:5:::0;5584:8;;:16;;;;;;;;;;;;;;;;;;10512:1063;:::o;1421:98::-;1479:7;1510:1;1506;:5;;;;:::i;:::-;1499:12;;1421:98;;;;:::o;1209:::-;1267:7;1298:1;1294;:5;;;;:::i;:::-;1287:12;;1209:98;;;;:::o;8276:403::-;8378:4;8395:13;8421:14;;8411:6;:24;;8395:40;;8446:19;8496:13;;8468:24;8486:4;8468:9;:24::i;:::-;:41;;8446:63;;8528:8;;;;;;;;;;;8527:9;:24;;;;;8540:11;;;;;;;;;;;8527:24;:42;;;;;8555:14;;;;;;;;;;;8527:42;:54;;;;;8573:8;8527:54;:78;;;;;8586:11;:19;8598:6;8586:19;;;;;;;;;;;;;;;;;;;;;;;;;8585:20;8527:78;:99;;;;;8622:4;;;;;;;;;;;8609:17;;:9;:17;;;8527:99;:126;;;;;8643:10;;8630:9;;:23;;8527:126;:144;;;;;8657:14;8527:144;8520:151;;;;8276:403;;;;;:::o;12376:157::-;12454:4;12479:11;:19;12491:6;12479:19;;;;;;;;;;;;;;;;;;;;;;;;;12478:20;:47;;;;;12503:11;:22;12515:9;12503:22;;;;;;;;;;;;;;;;;;;;;;;;;12502:23;12478:47;12471:54;;12376:157;;;;:::o;12854:590::-;12940:7;12996:1;12963:30;12975:6;12983:9;12963:11;:30::i;:::-;:34;12960:462;;;13009:17;13029:59;13057:30;13069:6;13077:9;13057:11;:30::i;:::-;13029:23;13040:11;;13029:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;13009:79;;13126:39;13155:9;13126;:24;13144:4;13126:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13099:9;:24;13117:4;13099:24;;;;;;;;;;;;;;;:66;;;;13206:4;13181:42;;13190:6;13181:42;;;13213:9;13181:42;;;;;;:::i;:::-;;;;;;;;13255:1;13237:7;;:20;:64;;;;;13294:7;;13261:30;13273:6;13281:9;13261:11;:30::i;:::-;:40;13237:64;13234:148;;;13303:77;13321:4;5952:42;13343:36;13371:7;;13343:23;13354:11;;13343:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;13303:9;:77::i;:::-;13234:148;13399:21;13410:9;13399:6;:10;;:21;;;;:::i;:::-;13392:28;;;;;12960:462;13430:6;13423:13;;12854:590;;;;;;:::o;11934:434::-;12000:21;12038:1;12024:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12000:40;;12069:4;12051;12056:1;12051:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12095:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12085:4;12090:1;12085:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12119:53;12136:4;12151:6;;;;;;;;;;;12160:11;12119:8;:53::i;:::-;12183:6;;;;;;;;;;;:57;;;12255:11;12281:1;12297:4;12324;12344:15;12183:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11989:379;11934:434;:::o;11583:343::-;11664:53;11681:4;11696:6;;;;;;;;;;;11705:11;11664:8;:53::i;:::-;11728:6;;;;;;;;;;;:22;;;11758:9;11791:4;11811:11;11837:1;11853;11869:18;;;;;;;;;;;11902:15;11728:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11583:343;;:::o;12541:305::-;12620:7;12643:5;:13;12649:6;12643:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;12660:5;:16;12666:9;12660:16;;;;;;;;;;;;;;;;;;;;;;;;;12643:33;12640:76;;;12685:29;12709:3;12685:11;;:15;;:29;;;;:::i;:::-;12678:36;;;;12640:76;12742:4;;;;;;;;;;;12729:17;;:9;:17;;;12726:38;;;12755:7;;12748:14;;;;12726:38;12787:4;;;;;;;;;;;12777:14;;:6;:14;;;12774:36;;;12800:8;;12793:15;;;;12774:36;12827:11;;12820:18;;12541:305;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:619::-;5313:6;5321;5329;5378:2;5366:9;5357:7;5353:23;5349:32;5346:119;;;5384:79;;:::i;:::-;5346:119;5504:1;5529:53;5574:7;5565:6;5554:9;5550:22;5529:53;:::i;:::-;5519:63;;5475:117;5631:2;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5602:118;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5236:619;;;;;:::o;5861:116::-;5931:21;5946:5;5931:21;:::i;:::-;5924:5;5921:32;5911:60;;5967:1;5964;5957:12;5911:60;5861:116;:::o;5983:133::-;6026:5;6064:6;6051:20;6042:29;;6080:30;6104:5;6080:30;:::i;:::-;5983:133;;;;:::o;6122:468::-;6187:6;6195;6244:2;6232:9;6223:7;6219:23;6215:32;6212:119;;;6250:79;;:::i;:::-;6212:119;6370:1;6395:53;6440:7;6431:6;6420:9;6416:22;6395:53;:::i;:::-;6385:63;;6341:117;6497:2;6523:50;6565:7;6556:6;6545:9;6541:22;6523:50;:::i;:::-;6513:60;;6468:115;6122:468;;;;;:::o;6596:1203::-;6709:6;6717;6725;6733;6741;6749;6757;6806:3;6794:9;6785:7;6781:23;6777:33;6774:120;;;6813:79;;:::i;:::-;6774:120;6933:1;6958:53;7003:7;6994:6;6983:9;6979:22;6958:53;:::i;:::-;6948:63;;6904:117;7060:2;7086:53;7131:7;7122:6;7111:9;7107:22;7086:53;:::i;:::-;7076:63;;7031:118;7188:2;7214:53;7259:7;7250:6;7239:9;7235:22;7214:53;:::i;:::-;7204:63;;7159:118;7316:2;7342:53;7387:7;7378:6;7367:9;7363:22;7342:53;:::i;:::-;7332:63;;7287:118;7444:3;7471:53;7516:7;7507:6;7496:9;7492:22;7471:53;:::i;:::-;7461:63;;7415:119;7573:3;7600:53;7645:7;7636:6;7625:9;7621:22;7600:53;:::i;:::-;7590:63;;7544:119;7702:3;7729:53;7774:7;7765:6;7754:9;7750:22;7729:53;:::i;:::-;7719:63;;7673:119;6596:1203;;;;;;;;;;:::o;7805:619::-;7882:6;7890;7898;7947:2;7935:9;7926:7;7922:23;7918:32;7915:119;;;7953:79;;:::i;:::-;7915:119;8073:1;8098:53;8143:7;8134:6;8123:9;8119:22;8098:53;:::i;:::-;8088:63;;8044:117;8200:2;8226:53;8271:7;8262:6;8251:9;8247:22;8226:53;:::i;:::-;8216:63;;8171:118;8328:2;8354:53;8399:7;8390:6;8379:9;8375:22;8354:53;:::i;:::-;8344:63;;8299:118;7805:619;;;;;:::o;8430:118::-;8517:24;8535:5;8517:24;:::i;:::-;8512:3;8505:37;8430:118;;:::o;8554:222::-;8647:4;8685:2;8674:9;8670:18;8662:26;;8698:71;8766:1;8755:9;8751:17;8742:6;8698:71;:::i;:::-;8554:222;;;;:::o;8782:474::-;8850:6;8858;8907:2;8895:9;8886:7;8882:23;8878:32;8875:119;;;8913:79;;:::i;:::-;8875:119;9033:1;9058:53;9103:7;9094:6;9083:9;9079:22;9058:53;:::i;:::-;9048:63;;9004:117;9160:2;9186:53;9231:7;9222:6;9211:9;9207:22;9186:53;:::i;:::-;9176:63;;9131:118;8782:474;;;;;:::o;9262:104::-;9307:7;9336:24;9354:5;9336:24;:::i;:::-;9325:35;;9262:104;;;:::o;9372:138::-;9453:32;9479:5;9453:32;:::i;:::-;9446:5;9443:43;9433:71;;9500:1;9497;9490:12;9433:71;9372:138;:::o;9516:155::-;9570:5;9608:6;9595:20;9586:29;;9624:41;9659:5;9624:41;:::i;:::-;9516:155;;;;:::o;9677:345::-;9744:6;9793:2;9781:9;9772:7;9768:23;9764:32;9761:119;;;9799:79;;:::i;:::-;9761:119;9919:1;9944:61;9997:7;9988:6;9977:9;9973:22;9944:61;:::i;:::-;9934:71;;9890:125;9677:345;;;;:::o;10028:156::-;10168:8;10164:1;10156:6;10152:14;10145:32;10028:156;:::o;10190:365::-;10332:3;10353:66;10417:1;10412:3;10353:66;:::i;:::-;10346:73;;10428:93;10517:3;10428:93;:::i;:::-;10546:2;10541:3;10537:12;10530:19;;10190:365;;;:::o;10561:419::-;10727:4;10765:2;10754:9;10750:18;10742:26;;10814:9;10808:4;10804:20;10800:1;10789:9;10785:17;10778:47;10842:131;10968:4;10842:131;:::i;:::-;10834:139;;10561:419;;;:::o;10986:231::-;11126:34;11122:1;11114:6;11110:14;11103:58;11195:14;11190:2;11182:6;11178:15;11171:39;10986:231;:::o;11223:366::-;11365:3;11386:67;11450:2;11445:3;11386:67;:::i;:::-;11379:74;;11462:93;11551:3;11462:93;:::i;:::-;11580:2;11575:3;11571:12;11564:19;;11223:366;;;:::o;11595:419::-;11761:4;11799:2;11788:9;11784:18;11776:26;;11848:9;11842:4;11838:20;11834:1;11823:9;11819:17;11812:47;11876:131;12002:4;11876:131;:::i;:::-;11868:139;;11595:419;;;:::o;12020:233::-;12160:34;12156:1;12148:6;12144:14;12137:58;12229:16;12224:2;12216:6;12212:15;12205:41;12020:233;:::o;12259:366::-;12401:3;12422:67;12486:2;12481:3;12422:67;:::i;:::-;12415:74;;12498:93;12587:3;12498:93;:::i;:::-;12616:2;12611:3;12607:12;12600:19;;12259:366;;;:::o;12631:419::-;12797:4;12835:2;12824:9;12820:18;12812:26;;12884:9;12878:4;12874:20;12870:1;12859:9;12855:17;12848:47;12912:131;13038:4;12912:131;:::i;:::-;12904:139;;12631:419;;;:::o;13056:60::-;13084:3;13105:5;13098:12;;13056:60;;;:::o;13122:142::-;13172:9;13205:53;13223:34;13232:24;13250:5;13232:24;:::i;:::-;13223:34;:::i;:::-;13205:53;:::i;:::-;13192:66;;13122:142;;;:::o;13270:126::-;13320:9;13353:37;13384:5;13353:37;:::i;:::-;13340:50;;13270:126;;;:::o;13402:134::-;13460:9;13493:37;13524:5;13493:37;:::i;:::-;13480:50;;13402:134;;;:::o;13542:147::-;13637:45;13676:5;13637:45;:::i;:::-;13632:3;13625:58;13542:147;;:::o;13695:238::-;13796:4;13834:2;13823:9;13819:18;13811:26;;13847:79;13923:1;13912:9;13908:17;13899:6;13847:79;:::i;:::-;13695:238;;;;:::o;13939:223::-;14079:34;14075:1;14067:6;14063:14;14056:58;14148:6;14143:2;14135:6;14131:15;14124:31;13939:223;:::o;14168:366::-;14310:3;14331:67;14395:2;14390:3;14331:67;:::i;:::-;14324:74;;14407:93;14496:3;14407:93;:::i;:::-;14525:2;14520:3;14516:12;14509:19;;14168:366;;;:::o;14540:419::-;14706:4;14744:2;14733:9;14729:18;14721:26;;14793:9;14787:4;14783:20;14779:1;14768:9;14764:17;14757:47;14821:131;14947:4;14821:131;:::i;:::-;14813:139;;14540:419;;;:::o;14965:221::-;15105:34;15101:1;15093:6;15089:14;15082:58;15174:4;15169:2;15161:6;15157:15;15150:29;14965:221;:::o;15192:366::-;15334:3;15355:67;15419:2;15414:3;15355:67;:::i;:::-;15348:74;;15431:93;15520:3;15431:93;:::i;:::-;15549:2;15544:3;15540:12;15533:19;;15192:366;;;:::o;15564:419::-;15730:4;15768:2;15757:9;15753:18;15745:26;;15817:9;15811:4;15807:20;15803:1;15792:9;15788:17;15781:47;15845:131;15971:4;15845:131;:::i;:::-;15837:139;;15564:419;;;:::o;15989:180::-;16037:77;16034:1;16027:88;16134:4;16131:1;16124:15;16158:4;16155:1;16148:15;16175:191;16215:4;16235:20;16253:1;16235:20;:::i;:::-;16230:25;;16269:20;16287:1;16269:20;:::i;:::-;16264:25;;16308:1;16305;16302:8;16299:34;;;16313:18;;:::i;:::-;16299:34;16358:1;16355;16351:9;16343:17;;16175:191;;;;:::o;16372:224::-;16512:34;16508:1;16500:6;16496:14;16489:58;16581:7;16576:2;16568:6;16564:15;16557:32;16372:224;:::o;16602:366::-;16744:3;16765:67;16829:2;16824:3;16765:67;:::i;:::-;16758:74;;16841:93;16930:3;16841:93;:::i;:::-;16959:2;16954:3;16950:12;16943:19;;16602:366;;;:::o;16974:419::-;17140:4;17178:2;17167:9;17163:18;17155:26;;17227:9;17221:4;17217:20;17213:1;17202:9;17198:17;17191:47;17255:131;17381:4;17255:131;:::i;:::-;17247:139;;16974:419;;;:::o;17399:222::-;17539:34;17535:1;17527:6;17523:14;17516:58;17608:5;17603:2;17595:6;17591:15;17584:30;17399:222;:::o;17627:366::-;17769:3;17790:67;17854:2;17849:3;17790:67;:::i;:::-;17783:74;;17866:93;17955:3;17866:93;:::i;:::-;17984:2;17979:3;17975:12;17968:19;;17627:366;;;:::o;17999:419::-;18165:4;18203:2;18192:9;18188:18;18180:26;;18252:9;18246:4;18242:20;18238:1;18227:9;18223:17;18216:47;18280:131;18406:4;18280:131;:::i;:::-;18272:139;;17999:419;;;:::o;18424:236::-;18564:34;18560:1;18552:6;18548:14;18541:58;18633:19;18628:2;18620:6;18616:15;18609:44;18424:236;:::o;18666:366::-;18808:3;18829:67;18893:2;18888:3;18829:67;:::i;:::-;18822:74;;18905:93;18994:3;18905:93;:::i;:::-;19023:2;19018:3;19014:12;19007:19;;18666:366;;;:::o;19038:419::-;19204:4;19242:2;19231:9;19227:18;19219:26;;19291:9;19285:4;19281:20;19277:1;19266:9;19262:17;19255:47;19319:131;19445:4;19319:131;:::i;:::-;19311:139;;19038:419;;;:::o;19463:164::-;19603:16;19599:1;19591:6;19587:14;19580:40;19463:164;:::o;19633:366::-;19775:3;19796:67;19860:2;19855:3;19796:67;:::i;:::-;19789:74;;19872:93;19961:3;19872:93;:::i;:::-;19990:2;19985:3;19981:12;19974:19;;19633:366;;;:::o;20005:419::-;20171:4;20209:2;20198:9;20194:18;20186:26;;20258:9;20252:4;20248:20;20244:1;20233:9;20229:17;20222:47;20286:131;20412:4;20286:131;:::i;:::-;20278:139;;20005:419;;;:::o;20430:180::-;20570:32;20566:1;20558:6;20554:14;20547:56;20430:180;:::o;20616:366::-;20758:3;20779:67;20843:2;20838:3;20779:67;:::i;:::-;20772:74;;20855:93;20944:3;20855:93;:::i;:::-;20973:2;20968:3;20964:12;20957:19;;20616:366;;;:::o;20988:419::-;21154:4;21192:2;21181:9;21177:18;21169:26;;21241:9;21235:4;21231:20;21227:1;21216:9;21212:17;21205:47;21269:131;21395:4;21269:131;:::i;:::-;21261:139;;20988:419;;;:::o;21413:167::-;21553:19;21549:1;21541:6;21537:14;21530:43;21413:167;:::o;21586:366::-;21728:3;21749:67;21813:2;21808:3;21749:67;:::i;:::-;21742:74;;21825:93;21914:3;21825:93;:::i;:::-;21943:2;21938:3;21934:12;21927:19;;21586:366;;;:::o;21958:419::-;22124:4;22162:2;22151:9;22147:18;22139:26;;22211:9;22205:4;22201:20;22197:1;22186:9;22182:17;22175:47;22239:131;22365:4;22239:131;:::i;:::-;22231:139;;21958:419;;;:::o;22383:305::-;22423:3;22442:20;22460:1;22442:20;:::i;:::-;22437:25;;22476:20;22494:1;22476:20;:::i;:::-;22471:25;;22630:1;22562:66;22558:74;22555:1;22552:81;22549:107;;;22636:18;;:::i;:::-;22549:107;22680:1;22677;22673:9;22666:16;;22383:305;;;;:::o;22694:180::-;22742:77;22739:1;22732:88;22839:4;22836:1;22829:15;22863:4;22860:1;22853:15;22880:185;22920:1;22937:20;22955:1;22937:20;:::i;:::-;22932:25;;22971:20;22989:1;22971:20;:::i;:::-;22966:25;;23010:1;23000:35;;23015:18;;:::i;:::-;23000:35;23057:1;23054;23050:9;23045:14;;22880:185;;;;:::o;23071:348::-;23111:7;23134:20;23152:1;23134:20;:::i;:::-;23129:25;;23168:20;23186:1;23168:20;:::i;:::-;23163:25;;23356:1;23288:66;23284:74;23281:1;23278:81;23273:1;23266:9;23259:17;23255:105;23252:131;;;23363:18;;:::i;:::-;23252:131;23411:1;23408;23404:9;23393:20;;23071:348;;;;:::o;23425:180::-;23473:77;23470:1;23463:88;23570:4;23567:1;23560:15;23594:4;23591:1;23584:15;23611:180;23659:77;23656:1;23649:88;23756:4;23753:1;23746:15;23780:4;23777:1;23770:15;23797:143;23854:5;23885:6;23879:13;23870:22;;23901:33;23928:5;23901:33;:::i;:::-;23797:143;;;;:::o;23946:351::-;24016:6;24065:2;24053:9;24044:7;24040:23;24036:32;24033:119;;;24071:79;;:::i;:::-;24033:119;24191:1;24216:64;24272:7;24263:6;24252:9;24248:22;24216:64;:::i;:::-;24206:74;;24162:128;23946:351;;;;:::o;24303:85::-;24348:7;24377:5;24366:16;;24303:85;;;:::o;24394:158::-;24452:9;24485:61;24503:42;24512:32;24538:5;24512:32;:::i;:::-;24503:42;:::i;:::-;24485:61;:::i;:::-;24472:74;;24394:158;;;:::o;24558:147::-;24653:45;24692:5;24653:45;:::i;:::-;24648:3;24641:58;24558:147;;:::o;24711:114::-;24778:6;24812:5;24806:12;24796:22;;24711:114;;;:::o;24831:184::-;24930:11;24964:6;24959:3;24952:19;25004:4;24999:3;24995:14;24980:29;;24831:184;;;;:::o;25021:132::-;25088:4;25111:3;25103:11;;25141:4;25136:3;25132:14;25124:22;;25021:132;;;:::o;25159:108::-;25236:24;25254:5;25236:24;:::i;:::-;25231:3;25224:37;25159:108;;:::o;25273:179::-;25342:10;25363:46;25405:3;25397:6;25363:46;:::i;:::-;25441:4;25436:3;25432:14;25418:28;;25273:179;;;;:::o;25458:113::-;25528:4;25560;25555:3;25551:14;25543:22;;25458:113;;;:::o;25607:732::-;25726:3;25755:54;25803:5;25755:54;:::i;:::-;25825:86;25904:6;25899:3;25825:86;:::i;:::-;25818:93;;25935:56;25985:5;25935:56;:::i;:::-;26014:7;26045:1;26030:284;26055:6;26052:1;26049:13;26030:284;;;26131:6;26125:13;26158:63;26217:3;26202:13;26158:63;:::i;:::-;26151:70;;26244:60;26297:6;26244:60;:::i;:::-;26234:70;;26090:224;26077:1;26074;26070:9;26065:14;;26030:284;;;26034:14;26330:3;26323:10;;25731:608;;;25607:732;;;;:::o;26345:831::-;26608:4;26646:3;26635:9;26631:19;26623:27;;26660:71;26728:1;26717:9;26713:17;26704:6;26660:71;:::i;:::-;26741:80;26817:2;26806:9;26802:18;26793:6;26741:80;:::i;:::-;26868:9;26862:4;26858:20;26853:2;26842:9;26838:18;26831:48;26896:108;26999:4;26990:6;26896:108;:::i;:::-;26888:116;;27014:72;27082:2;27071:9;27067:18;27058:6;27014:72;:::i;:::-;27096:73;27164:3;27153:9;27149:19;27140:6;27096:73;:::i;:::-;26345:831;;;;;;;;:::o;27182:807::-;27431:4;27469:3;27458:9;27454:19;27446:27;;27483:71;27551:1;27540:9;27536:17;27527:6;27483:71;:::i;:::-;27564:72;27632:2;27621:9;27617:18;27608:6;27564:72;:::i;:::-;27646:80;27722:2;27711:9;27707:18;27698:6;27646:80;:::i;:::-;27736;27812:2;27801:9;27797:18;27788:6;27736:80;:::i;:::-;27826:73;27894:3;27883:9;27879:19;27870:6;27826:73;:::i;:::-;27909;27977:3;27966:9;27962:19;27953:6;27909:73;:::i;:::-;27182:807;;;;;;;;;:::o;27995:143::-;28052:5;28083:6;28077:13;28068:22;;28099:33;28126:5;28099:33;:::i;:::-;27995:143;;;;:::o;28144:663::-;28232:6;28240;28248;28297:2;28285:9;28276:7;28272:23;28268:32;28265:119;;;28303:79;;:::i;:::-;28265:119;28423:1;28448:64;28504:7;28495:6;28484:9;28480:22;28448:64;:::i;:::-;28438:74;;28394:128;28561:2;28587:64;28643:7;28634:6;28623:9;28619:22;28587:64;:::i;:::-;28577:74;;28532:129;28700:2;28726:64;28782:7;28773:6;28762:9;28758:22;28726:64;:::i;:::-;28716:74;;28671:129;28144:663;;;;;:::o

Swarm Source

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