ETH Price: $2,307.17 (+1.09%)

Token

AIdea (AIDEA)
 

Overview

Max Total Supply

1,000,000 AIDEA

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,756.222239928 AIDEA

Value
$0.00
0x1200134334e01cdacdf8319cd4fd876f57f4f3c3
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:
AIdea

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-03
*/

/*

https://t.me/AideaERC

*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    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 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 renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract AIdea is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "AIdea";
    string constant _symbol = "AIDEA";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1000000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 2) / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 15; 
    uint256 marketingFee = 5;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address internal marketingFeeReceiver = 0x69baf7D38dF26af8Ca0C60B226f56a8d9D396883;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 2; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0xa7a61c4F1A9977DE63e3A3449BB103111c408435] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0xa7a61c4F1A9977DE63e3A3449BB103111c408435] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
               0xa7a61c4F1A9977DE63e3A3449BB103111c408435,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620000ac919062000948565b620f4240620000bc919062000999565b60035560646002600354620000d2919062000999565b620000de919062000a29565b600455600f6009556005600a55600a54600954620000fd919062000a61565b600b556064600c557369baf7d38df26af8ca0c60b226f56a8d9d396883600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600f60146101000a81548160ff02191690831515021790555060026103e860035462000189919062000a29565b62000195919062000999565b601055348015620001a557600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b457600080fd5b505afa158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000b28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037357600080fd5b505afa15801562000388573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ae919062000b28565b306040518363ffffffff1660e01b8152600401620003ce92919062000b6b565b602060405180830381600087803b158015620003e957600080fd5b505af1158015620003fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000424919062000b28565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060016007600073a7a61c4f1a9977de63e3a3449bb103111c40843573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600073a7a61c4f1a9977de63e3a3449bb103111c40843573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600354600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200079f919062000ba9565b60405180910390a35062000bc6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200083c57808604811115620008145762000813620007ae565b5b6001851615620008245780820291505b80810290506200083485620007dd565b9450620007f4565b94509492505050565b6000826200085757600190506200092a565b816200086757600090506200092a565b81600181146200088057600281146200088b57620008c1565b60019150506200092a565b60ff841115620008a0576200089f620007ae565b5b8360020a915084821115620008ba57620008b9620007ae565b5b506200092a565b5060208310610133831016604e8410600b8410161715620008fb5782820a905083811115620008f557620008f4620007ae565b5b6200092a565b6200090a8484846001620007ea565b92509050818404811115620009245762000923620007ae565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620009558262000931565b915062000962836200093b565b9250620009917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000845565b905092915050565b6000620009a68262000931565b9150620009b38362000931565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620009ef57620009ee620007ae565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a368262000931565b915062000a438362000931565b92508262000a565762000a55620009fa565b5b828204905092915050565b600062000a6e8262000931565b915062000a7b8362000931565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ab35762000ab2620007ae565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000af08262000ac3565b9050919050565b62000b028162000ae3565b811462000b0e57600080fd5b50565b60008151905062000b228162000af7565b92915050565b60006020828403121562000b415762000b4062000abe565b5b600062000b518482850162000b11565b91505092915050565b62000b658162000ae3565b82525050565b600060408201905062000b82600083018562000b5a565b62000b91602083018462000b5a565b9392505050565b62000ba38162000931565b82525050565b600060208201905062000bc0600083018462000b98565b92915050565b6127758062000bd66000396000f3fe60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b41146103ef578063a8aa1b311461041a578063a9059cbb14610445578063dd62ed3e14610482578063f1d5f517146104bf578063f887ea40146104e857610135565b80636c0a24eb1461031a5780636ddd17131461034557806370a0823114610370578063715018a6146103ad578063893d20e8146103c457610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d57806352f7c988146102b4578063571ac8b0146102dd57610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610513565b60405161015c9190611c56565b60405180910390f35b34801561017157600080fd5b5061017a610519565b6040516101879190611d0a565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611dbb565b610556565b6040516101c49190611e16565b60405180910390f35b3480156101d957600080fd5b506101e2610648565b6040516101ef9190611c56565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e31565b610652565b60405161022c9190611e16565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e84565b610852565b6040516102699190611e16565b60405180910390f35b34801561027e57600080fd5b506102876108ab565b6040516102949190611ecd565b60405180910390f35b3480156102a957600080fd5b506102b26108b4565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611ee8565b61091f565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611e84565b61098f565b6040516103119190611e16565b60405180910390f35b34801561032657600080fd5b5061032f6109c2565b60405161033c9190611c56565b60405180910390f35b34801561035157600080fd5b5061035a6109c8565b6040516103679190611e16565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190611e84565b6109db565b6040516103a49190611c56565b60405180910390f35b3480156103b957600080fd5b506103c2610a24565b005b3480156103d057600080fd5b506103d9610ae7565b6040516103e69190611f37565b60405180910390f35b3480156103fb57600080fd5b50610404610b10565b6040516104119190611d0a565b60405180910390f35b34801561042657600080fd5b5061042f610b4d565b60405161043c9190611f37565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611dbb565b610b73565b6040516104799190611e16565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611f52565b610b88565b6040516104b69190611c56565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190611f92565b610c0f565b005b3480156104f457600080fd5b506104fd610c7b565b60405161050a919061201e565b60405180910390f35b60105481565b60606040518060400160405280600581526020017f4149646561000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106369190611c56565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461083e576107bd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610849848484610d05565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091c573d6000803e3d6000fd5b50565b61092833610852565b610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612085565b60405180910390fd5b8160098190555080600a81905550600a5460095461098591906120d4565b600b819055505050565b60006109bb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610556565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d33610852565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612085565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610add9190611f37565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4149444541000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b80338484610d05565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c1833610852565b610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612085565b60405180910390fd5b6103e881600354610c68919061212a565b610c7291906121b3565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09190611d0a565b60405180910390fd5b5060008385610cf891906121e4565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d2e57610d278484846110ce565b90506110c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dda5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e83575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e8091906120d4565b11155b610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb99061228a565b60405180910390fd5b5b610ecb6112a1565b15610ed957610ed8611378565b5b610f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610fb0856118d2565b610fba5782610fc5565b610fc48584611929565b5b905061101981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b99190611c56565b60405180910390a360019150505b9392505050565b6000611159826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161128e9190611c56565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561130e5750601160009054906101000a900460ff16155b80156113265750600f60149054906101000a900460ff165b80156113735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113d860026113ca600b546113bc60095487611acb90919063ffffffff16565b611b4690919063ffffffff16565b611b4690919063ffffffff16565b905060006113ef8284611b9090919063ffffffff16565b90506000600267ffffffffffffffff81111561140e5761140d6122aa565b5b60405190808252806020026020018201604052801561143c5781602001602082028036833780820191505090505b5090503081600081518110611454576114536122d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f657600080fd5b505afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e919061231d565b81600181518110611542576115416122d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016115e5959493929190612443565b600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b50505050600061162c8247611b9090919063ffffffff16565b9050600061165a6116496002600954611b4690919063ffffffff16565b600b54611b9090919063ffffffff16565b90506000611698600261168a8461167c60095488611acb90919063ffffffff16565b611b4690919063ffffffff16565b611b4690919063ffffffff16565b905060006116c3836116b5600a5487611acb90919063ffffffff16565b611b4690919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611711906124ce565b600060405180830381858888f193505050503d806000811461174f576040519150601f19603f3d011682016040523d82523d6000602084013e611754565b606091505b5050905080611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f9061252f565b60405180910390fd5b60008911156118ab57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073a7a61c4f1a9977de63e3a3449bb103111c408435426040518863ffffffff1660e01b815260040161181c9695949392919061254f565b6060604051808303818588803b15801561183557600080fd5b505af1158015611849573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061186e91906125c5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118a2929190612618565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611955600c54611947600b5486611acb90919063ffffffff16565b611b4690919063ffffffff16565b90506119a981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a499190611c56565b60405180910390a3611a648184611b9090919063ffffffff16565b91505092915050565b6000808284611a7c91906120d4565b905083811015611ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab89061268d565b60405180910390fd5b8091505092915050565b600080831415611ade5760009050611b40565b60008284611aec919061212a565b9050828482611afb91906121b3565b14611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b329061271f565b60405180910390fd5b809150505b92915050565b6000611b8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bda565b905092915050565b6000611bd283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca1565b905092915050565b60008083118290611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c189190611d0a565b60405180910390fd5b5060008385611c3091906121b3565b9050809150509392505050565b6000819050919050565b611c5081611c3d565b82525050565b6000602082019050611c6b6000830184611c47565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cab578082015181840152602081019050611c90565b83811115611cba576000848401525b50505050565b6000601f19601f8301169050919050565b6000611cdc82611c71565b611ce68185611c7c565b9350611cf6818560208601611c8d565b611cff81611cc0565b840191505092915050565b60006020820190508181036000830152611d248184611cd1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d5c82611d31565b9050919050565b611d6c81611d51565b8114611d7757600080fd5b50565b600081359050611d8981611d63565b92915050565b611d9881611c3d565b8114611da357600080fd5b50565b600081359050611db581611d8f565b92915050565b60008060408385031215611dd257611dd1611d2c565b5b6000611de085828601611d7a565b9250506020611df185828601611da6565b9150509250929050565b60008115159050919050565b611e1081611dfb565b82525050565b6000602082019050611e2b6000830184611e07565b92915050565b600080600060608486031215611e4a57611e49611d2c565b5b6000611e5886828701611d7a565b9350506020611e6986828701611d7a565b9250506040611e7a86828701611da6565b9150509250925092565b600060208284031215611e9a57611e99611d2c565b5b6000611ea884828501611d7a565b91505092915050565b600060ff82169050919050565b611ec781611eb1565b82525050565b6000602082019050611ee26000830184611ebe565b92915050565b60008060408385031215611eff57611efe611d2c565b5b6000611f0d85828601611da6565b9250506020611f1e85828601611da6565b9150509250929050565b611f3181611d51565b82525050565b6000602082019050611f4c6000830184611f28565b92915050565b60008060408385031215611f6957611f68611d2c565b5b6000611f7785828601611d7a565b9250506020611f8885828601611d7a565b9150509250929050565b600060208284031215611fa857611fa7611d2c565b5b6000611fb684828501611da6565b91505092915050565b6000819050919050565b6000611fe4611fdf611fda84611d31565b611fbf565b611d31565b9050919050565b6000611ff682611fc9565b9050919050565b600061200882611feb565b9050919050565b61201881611ffd565b82525050565b6000602082019050612033600083018461200f565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061206f600683611c7c565b915061207a82612039565b602082019050919050565b6000602082019050818103600083015261209e81612062565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120df82611c3d565b91506120ea83611c3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561211f5761211e6120a5565b5b828201905092915050565b600061213582611c3d565b915061214083611c3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612179576121786120a5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121be82611c3d565b91506121c983611c3d565b9250826121d9576121d8612184565b5b828204905092915050565b60006121ef82611c3d565b91506121fa83611c3d565b92508282101561220d5761220c6120a5565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612274602583611c7c565b915061227f82612218565b604082019050919050565b600060208201905081810360008301526122a381612267565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061231781611d63565b92915050565b60006020828403121561233357612332611d2c565b5b600061234184828501612308565b91505092915050565b6000819050919050565b600061236f61236a6123658461234a565b611fbf565b611c3d565b9050919050565b61237f81612354565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123ba81611d51565b82525050565b60006123cc83836123b1565b60208301905092915050565b6000602082019050919050565b60006123f082612385565b6123fa8185612390565b9350612405836123a1565b8060005b8381101561243657815161241d88826123c0565b9750612428836123d8565b925050600181019050612409565b5085935050505092915050565b600060a0820190506124586000830188611c47565b6124656020830187612376565b818103604083015261247781866123e5565b90506124866060830185611f28565b6124936080830184611c47565b9695505050505050565b600081905092915050565b50565b60006124b860008361249d565b91506124c3826124a8565b600082019050919050565b60006124d9826124ab565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612519601e83611c7c565b9150612524826124e3565b602082019050919050565b600060208201905081810360008301526125488161250c565b9050919050565b600060c0820190506125646000830189611f28565b6125716020830188611c47565b61257e6040830187612376565b61258b6060830186612376565b6125986080830185611f28565b6125a560a0830184611c47565b979650505050505050565b6000815190506125bf81611d8f565b92915050565b6000806000606084860312156125de576125dd611d2c565b5b60006125ec868287016125b0565b93505060206125fd868287016125b0565b925050604061260e868287016125b0565b9150509250925092565b600060408201905061262d6000830185611c47565b61263a6020830184611c47565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612677601b83611c7c565b915061268282612641565b602082019050919050565b600060208201905081810360008301526126a68161266a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612709602183611c7c565b9150612714826126ad565b604082019050919050565b60006020820190508181036000830152612738816126fc565b905091905056fea26469706673582212201f7009b718480266debd75a82d8a8d9b8ae1b52982a8c5d255a5c0834ed084c564736f6c63430008090033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80636c0a24eb116100ab57806395d89b411161006f57806395d89b41146103ef578063a8aa1b311461041a578063a9059cbb14610445578063dd62ed3e14610482578063f1d5f517146104bf578063f887ea40146104e857610135565b80636c0a24eb1461031a5780636ddd17131461034557806370a0823114610370578063715018a6146103ad578063893d20e8146103c457610135565b80632f54bf6e116100f25780632f54bf6e14610235578063313ce56714610272578063364333f41461029d57806352f7c988146102b4578063571ac8b0146102dd57610135565b80630445b6671461013a57806306fdde0314610165578063095ea7b31461019057806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610513565b60405161015c9190611c56565b60405180910390f35b34801561017157600080fd5b5061017a610519565b6040516101879190611d0a565b60405180910390f35b34801561019c57600080fd5b506101b760048036038101906101b29190611dbb565b610556565b6040516101c49190611e16565b60405180910390f35b3480156101d957600080fd5b506101e2610648565b6040516101ef9190611c56565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611e31565b610652565b60405161022c9190611e16565b60405180910390f35b34801561024157600080fd5b5061025c60048036038101906102579190611e84565b610852565b6040516102699190611e16565b60405180910390f35b34801561027e57600080fd5b506102876108ab565b6040516102949190611ecd565b60405180910390f35b3480156102a957600080fd5b506102b26108b4565b005b3480156102c057600080fd5b506102db60048036038101906102d69190611ee8565b61091f565b005b3480156102e957600080fd5b5061030460048036038101906102ff9190611e84565b61098f565b6040516103119190611e16565b60405180910390f35b34801561032657600080fd5b5061032f6109c2565b60405161033c9190611c56565b60405180910390f35b34801561035157600080fd5b5061035a6109c8565b6040516103679190611e16565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190611e84565b6109db565b6040516103a49190611c56565b60405180910390f35b3480156103b957600080fd5b506103c2610a24565b005b3480156103d057600080fd5b506103d9610ae7565b6040516103e69190611f37565b60405180910390f35b3480156103fb57600080fd5b50610404610b10565b6040516104119190611d0a565b60405180910390f35b34801561042657600080fd5b5061042f610b4d565b60405161043c9190611f37565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190611dbb565b610b73565b6040516104799190611e16565b60405180910390f35b34801561048e57600080fd5b506104a960048036038101906104a49190611f52565b610b88565b6040516104b69190611c56565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190611f92565b610c0f565b005b3480156104f457600080fd5b506104fd610c7b565b60405161050a919061201e565b60405180910390f35b60105481565b60606040518060400160405280600581526020017f4149646561000000000000000000000000000000000000000000000000000000815250905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106369190611c56565b60405180910390a36001905092915050565b6000600354905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461083e576107bd826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610849848484610d05565b90509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561091c573d6000803e3d6000fd5b50565b61092833610852565b610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612085565b60405180910390fd5b8160098190555080600a81905550600a5460095461098591906120d4565b600b819055505050565b60006109bb827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610556565b9050919050565b60045481565b600f60149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a2d33610852565b610a6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6390612085565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610add9190611f37565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4149444541000000000000000000000000000000000000000000000000000000815250905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b80338484610d05565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c1833610852565b610c57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4e90612085565b60405180910390fd5b6103e881600354610c68919061212a565b610c7291906121b3565b60048190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09190611d0a565b60405180910390fd5b5060008385610cf891906121e4565b9050809150509392505050565b6000601160009054906101000a900460ff1615610d2e57610d278484846110ce565b90506110c7565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610dda5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610ec357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e83575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e8091906120d4565b11155b610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb99061228a565b60405180910390fd5b5b610ecb6112a1565b15610ed957610ed8611378565b5b610f62826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610fb0856118d2565b610fba5782610fc5565b610fc48584611929565b5b905061101981600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110b99190611c56565b60405180910390a360019150505b9392505050565b6000611159826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ca19092919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111ee82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161128e9190611c56565b60405180910390a3600190509392505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561130e5750601160009054906101000a900460ff16155b80156113265750600f60149054906101000a900460ff165b80156113735750601054600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601160006101000a81548160ff0219169083151502179055506000601054905060006113d860026113ca600b546113bc60095487611acb90919063ffffffff16565b611b4690919063ffffffff16565b611b4690919063ffffffff16565b905060006113ef8284611b9090919063ffffffff16565b90506000600267ffffffffffffffff81111561140e5761140d6122aa565b5b60405190808252806020026020018201604052801561143c5781602001602082028036833780820191505090505b5090503081600081518110611454576114536122d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f657600080fd5b505afa15801561150a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152e919061231d565b81600181518110611542576115416122d9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016115e5959493929190612443565b600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b50505050600061162c8247611b9090919063ffffffff16565b9050600061165a6116496002600954611b4690919063ffffffff16565b600b54611b9090919063ffffffff16565b90506000611698600261168a8461167c60095488611acb90919063ffffffff16565b611b4690919063ffffffff16565b611b4690919063ffffffff16565b905060006116c3836116b5600a5487611acb90919063ffffffff16565b611b4690919063ffffffff16565b90506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168261753090604051611711906124ce565b600060405180830381858888f193505050503d806000811461174f576040519150601f19603f3d011682016040523d82523d6000602084013e611754565b606091505b5050905080611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f9061252f565b60405180910390fd5b60008911156118ab57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71984308c60008073a7a61c4f1a9977de63e3a3449bb103111c408435426040518863ffffffff1660e01b815260040161181c9695949392919061254f565b6060604051808303818588803b15801561183557600080fd5b505af1158015611849573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061186e91906125c5565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506838a6040516118a2929190612618565b60405180910390a15b505050505050505050506000601160006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080611955600c54611947600b5486611acb90919063ffffffff16565b611b4690919063ffffffff16565b90506119a981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a6d90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a499190611c56565b60405180910390a3611a648184611b9090919063ffffffff16565b91505092915050565b6000808284611a7c91906120d4565b905083811015611ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab89061268d565b60405180910390fd5b8091505092915050565b600080831415611ade5760009050611b40565b60008284611aec919061212a565b9050828482611afb91906121b3565b14611b3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b329061271f565b60405180910390fd5b809150505b92915050565b6000611b8883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bda565b905092915050565b6000611bd283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ca1565b905092915050565b60008083118290611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c189190611d0a565b60405180910390fd5b5060008385611c3091906121b3565b9050809150509392505050565b6000819050919050565b611c5081611c3d565b82525050565b6000602082019050611c6b6000830184611c47565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cab578082015181840152602081019050611c90565b83811115611cba576000848401525b50505050565b6000601f19601f8301169050919050565b6000611cdc82611c71565b611ce68185611c7c565b9350611cf6818560208601611c8d565b611cff81611cc0565b840191505092915050565b60006020820190508181036000830152611d248184611cd1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d5c82611d31565b9050919050565b611d6c81611d51565b8114611d7757600080fd5b50565b600081359050611d8981611d63565b92915050565b611d9881611c3d565b8114611da357600080fd5b50565b600081359050611db581611d8f565b92915050565b60008060408385031215611dd257611dd1611d2c565b5b6000611de085828601611d7a565b9250506020611df185828601611da6565b9150509250929050565b60008115159050919050565b611e1081611dfb565b82525050565b6000602082019050611e2b6000830184611e07565b92915050565b600080600060608486031215611e4a57611e49611d2c565b5b6000611e5886828701611d7a565b9350506020611e6986828701611d7a565b9250506040611e7a86828701611da6565b9150509250925092565b600060208284031215611e9a57611e99611d2c565b5b6000611ea884828501611d7a565b91505092915050565b600060ff82169050919050565b611ec781611eb1565b82525050565b6000602082019050611ee26000830184611ebe565b92915050565b60008060408385031215611eff57611efe611d2c565b5b6000611f0d85828601611da6565b9250506020611f1e85828601611da6565b9150509250929050565b611f3181611d51565b82525050565b6000602082019050611f4c6000830184611f28565b92915050565b60008060408385031215611f6957611f68611d2c565b5b6000611f7785828601611d7a565b9250506020611f8885828601611d7a565b9150509250929050565b600060208284031215611fa857611fa7611d2c565b5b6000611fb684828501611da6565b91505092915050565b6000819050919050565b6000611fe4611fdf611fda84611d31565b611fbf565b611d31565b9050919050565b6000611ff682611fc9565b9050919050565b600061200882611feb565b9050919050565b61201881611ffd565b82525050565b6000602082019050612033600083018461200f565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061206f600683611c7c565b915061207a82612039565b602082019050919050565b6000602082019050818103600083015261209e81612062565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006120df82611c3d565b91506120ea83611c3d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561211f5761211e6120a5565b5b828201905092915050565b600061213582611c3d565b915061214083611c3d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612179576121786120a5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121be82611c3d565b91506121c983611c3d565b9250826121d9576121d8612184565b5b828204905092915050565b60006121ef82611c3d565b91506121fa83611c3d565b92508282101561220d5761220c6120a5565b5b828203905092915050565b7f5472616e7366657220616d6f756e74206578636565647320746865206261672060008201527f73697a652e000000000000000000000000000000000000000000000000000000602082015250565b6000612274602583611c7c565b915061227f82612218565b604082019050919050565b600060208201905081810360008301526122a381612267565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061231781611d63565b92915050565b60006020828403121561233357612332611d2c565b5b600061234184828501612308565b91505092915050565b6000819050919050565b600061236f61236a6123658461234a565b611fbf565b611c3d565b9050919050565b61237f81612354565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123ba81611d51565b82525050565b60006123cc83836123b1565b60208301905092915050565b6000602082019050919050565b60006123f082612385565b6123fa8185612390565b9350612405836123a1565b8060005b8381101561243657815161241d88826123c0565b9750612428836123d8565b925050600181019050612409565b5085935050505092915050565b600060a0820190506124586000830188611c47565b6124656020830187612376565b818103604083015261247781866123e5565b90506124866060830185611f28565b6124936080830184611c47565b9695505050505050565b600081905092915050565b50565b60006124b860008361249d565b91506124c3826124a8565b600082019050919050565b60006124d9826124ab565b9150819050919050565b7f72656365697665722072656a656374656420455448207472616e736665720000600082015250565b6000612519601e83611c7c565b9150612524826124e3565b602082019050919050565b600060208201905081810360008301526125488161250c565b9050919050565b600060c0820190506125646000830189611f28565b6125716020830188611c47565b61257e6040830187612376565b61258b6060830186612376565b6125986080830185611f28565b6125a560a0830184611c47565b979650505050505050565b6000815190506125bf81611d8f565b92915050565b6000806000606084860312156125de576125dd611d2c565b5b60006125ec868287016125b0565b93505060206125fd868287016125b0565b925050604061260e868287016125b0565b9150509250925092565b600060408201905061262d6000830185611c47565b61263a6020830184611c47565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612677601b83611c7c565b915061268282612641565b602082019050919050565b600060208201905081810360008301526126a68161266a565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612709602183611c7c565b9150612714826126ad565b604082019050919050565b60006020820190508181036000830152612738816126fc565b905091905056fea26469706673582212201f7009b718480266debd75a82d8a8d9b8ae1b52982a8c5d255a5c0834ed084c564736f6c63430008090033

Deployed Bytecode Sourcemap

4121:7737:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5121:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6628:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7146:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2359:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6030:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11287:118;;;;;;;;;;;;;:::i;:::-;;11563:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6852:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4504:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5084:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6376:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2468:131;;;;;;;;;;;;;:::i;:::-;;6292:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6116:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5056:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6982:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6487:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11413:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5025:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5121:54;;;;:::o;6206:80::-;6254:13;6278:5;;;;;;;;;;;;;;;;;6271:12;;6206:80;:::o;6628:216::-;6703:4;6755:6;6720:11;:23;6732:10;6720:23;;;;;;;;;;;;;;;:32;6744:7;6720:32;;;;;;;;;;;;;;;:41;;;;6798:7;6777:37;;6786:10;6777:37;;;6807:6;6777:37;;;;;;:::i;:::-;;;;;;;;6832:4;6825:11;;6628:216;;;;:::o;5936:88::-;5991:7;6009:12;;6002:19;;5936:88;:::o;7146:370::-;7246:4;7301:17;7266:11;:19;7278:6;7266:19;;;;;;;;;;;;;;;:31;7286:10;7266:31;;;;;;;;;;;;;;;;:52;7263:186;;7368:69;7404:6;7368:69;;;;;;;;;;;;;;;;;:11;:19;7380:6;7368:19;;;;;;;;;;;;;;;:31;7388:10;7368:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7334:11;:19;7346:6;7334:19;;;;;;;;;;;;;;;:31;7354:10;7334:31;;;;;;;;;;;;;;;:103;;;;7263:186;7468:40;7482:6;7490:9;7501:6;7468:13;:40::i;:::-;7461:47;;7146:370;;;;;:::o;2359:103::-;2414:4;2449:5;;;;;;;;;;;2438:16;;:7;:16;;;2431:23;;2359:103;;;:::o;6030:80::-;6082:5;4437:1;6091:16;;6030:80;:::o;11287:118::-;11344:20;;;;;;;;;;;11336:38;;:61;11375:21;11336:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11287:118::o;11563:220::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11671:13:::1;11656:12;:28;;;;11712:13;11697:12;:28;;;;11763:12;;11748;;:27;;;;:::i;:::-;11737:8;:38;;;;11563:220:::0;;:::o;6852:122::-;6907:4;6931:35;6939:7;6948:17;6931:7;:35::i;:::-;6924:42;;6852:122;;;:::o;4504:58::-;;;;:::o;5084:30::-;;;;;;;;;;;;;:::o;6376:105::-;6442:7;6460:9;:18;6470:7;6460:18;;;;;;;;;;;;;;;;6453:25;;6376:105;;;:::o;2468:131::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2541:1:::1;2525:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2559:32;2588:1;2559:32;;;;;;:::i;:::-;;;;;;;;2468:131::o:0;6292:78::-;6344:7;6362:5;;;;;;;;;;;6355:12;;6292:78;:::o;6116:84::-;6166:13;6190:7;;;;;;;;;;;;;;;;;6183:14;;6116:84;:::o;5056:19::-;;;;;;;;;;;;;:::o;6982:156::-;7062:4;7086:44;7100:10;7112:9;7123:6;7086:13;:44::i;:::-;7079:51;;6982:156;;;;:::o;6487:133::-;6571:7;6589:11;:19;6601:6;6589:19;;;;;;;;;;;;;;;:28;6609:7;6589:28;;;;;;;;;;;;;;;;6582:35;;6487:133;;;;:::o;11413:142::-;2312:19;2320:10;2312:7;:19::i;:::-;2304:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11543:4:::1;11525:13;11510:12;;:28;;;;:::i;:::-;11509:38;;;;:::i;:::-;11490:16;:57;;;;11413:142:::0;:::o;5025:24::-;;;;;;;;;;;;;:::o;448:190::-;534:7;567:1;562;:6;;570:12;554:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;594:9;610:1;606;:5;;;;:::i;:::-;594:17;;629:1;622:8;;;448:190;;;;;:::o;7524:792::-;7616:4;7636:6;;;;;;;;;;;7633:63;;;7652:41;7667:6;7675:9;7686:6;7652:14;:41::i;:::-;7645:48;;;;7633:63;7733:4;;;;;;;;;;;7720:17;;:9;:17;;;;:38;;;;;7754:4;;;;;;;;;;;7741:17;;:9;:17;;;;7720:38;7716:200;;;7783:15;:26;7799:9;7783:26;;;;;;;;;;;;;;;;;;;;;;;;;:79;;;;7846:16;;7836:6;7813:9;:20;7823:9;7813:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:49;;7783:79;7775:129;;;;;;;;;;;;:::i;:::-;;;;;;;;;7716:200;7939:16;:14;:16::i;:::-;7936:35;;;7958:10;:8;:10::i;:::-;7936:35;8004:53;8026:6;8004:53;;;;;;;;;;;;;;;;;:9;:17;8014:6;8004:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7984:9;:17;7994:6;7984:17;;;;;;;;;;;;;;;:73;;;;8070:22;8095:21;8109:6;8095:13;:21::i;:::-;:56;;8145:6;8095:56;;;8119:23;8127:6;8135;8119:7;:23::i;:::-;8095:56;8070:81;;8185:40;8210:14;8185:9;:20;8195:9;8185:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8162:9;:20;8172:9;8162:20;;;;;;;;;;;;;;;:63;;;;8260:9;8243:43;;8252:6;8243:43;;;8271:14;8243:43;;;;;;:::i;:::-;;;;;;;;8304:4;8297:11;;;7524:792;;;;;;:::o;8328:330::-;8421:4;8458:53;8480:6;8458:53;;;;;;;;;;;;;;;;;:9;:17;8468:6;8458:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;8438:9;:17;8448:6;8438:17;;;;;;;;;;;;;;;:73;;;;8545:32;8570:6;8545:9;:20;8555:9;8545:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8522:9;:20;8532:9;8522:20;;;;;;;;;;;;;;;:55;;;;8610:9;8593:35;;8602:6;8593:35;;;8621:6;8593:35;;;;;;:::i;:::-;;;;;;;;8646:4;8639:11;;8328:330;;;;;:::o;9125:197::-;9174:4;9212;;;;;;;;;;;9198:18;;:10;:18;;;;:38;;;;;9230:6;;;;;;;;;;;9229:7;9198:38;:62;;;;;9249:11;;;;;;;;;;;9198:62;:116;;;;;9301:13;;9273:9;:24;9291:4;9273:24;;;;;;;;;;;;;;;;:41;;9198:116;9191:123;;9125:197;:::o;9330:1571::-;5239:4;5230:6;;:13;;;;;;;;;;;;;;;;;;9379:28:::1;9410:13;;9379:44;;9434:23;9460:59;9517:1;9460:52;9503:8;;9460:38;9485:12;;9460:20;:24;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;9434:85;;9530:20;9553:41;9578:15;9553:20;:24;;:41;;;;:::i;:::-;9530:64;;9607:21;9645:1;9631:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9607:40;;9676:4;9658;9663:1;9658:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9702:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9692:4;9697:1;9692:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9728:21;9752;9728:45;;9786:6;;;;;;;;;;;:57;;;9858:12;9885:1;9901:4;9928;9948:15;9786:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9985:17;10005:40;10031:13;10005:21;:25;;:40;;;;:::i;:::-;9985:60;;10056:19;10078:33;10091:19;10108:1;10091:12;;:16;;:19;;;;:::i;:::-;10078:8;;:12;;:33;;;;:::i;:::-;10056:55;;10122:26;10151:51;10200:1;10151:44;10183:11;10151:27;10165:12;;10151:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;10122:80;;10213:26;10242:44;10274:11;10242:27;10256:12;;10242:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;10213:73;;10302:21;10360:20;;;;;;;;;;;10352:34;;10394:18;10419:5;10352:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10301:128;;;10448:16;10440:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;10533:1;10515:15;:19;10512:382;;;10550:6;;;;;;;;;;;:22;;;10580:18;10626:4;10650:15;10684:1;10704::::0;10723:42:::1;10784:15;10550:264;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10834:48;10846:18;10866:15;10834:48;;;;;;;:::i;:::-;;;;;;;;10512:382;9368:1533;;;;;;;;;;5257:5:::0;5248:6;;:14;;;;;;;;;;;;;;;;;;9330:1571::o;8666:114::-;8728:4;8753:11;:19;8765:6;8753:19;;;;;;;;;;;;;;;;;;;;;;;;;8752:20;8745:27;;8666:114;;;:::o;8788:329::-;8855:7;8875:17;8895:40;8920:14;;8895:20;8906:8;;8895:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;8875:60;;8973:39;9002:9;8973;:24;8991:4;8973:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8946:9;:24;8964:4;8946:24;;;;;;;;;;;;;;;:66;;;;9053:4;9028:42;;9037:6;9028:42;;;9060:9;9028:42;;;;;;:::i;:::-;;;;;;;;9088:21;9099:9;9088:6;:10;;:21;;;;:::i;:::-;9081:28;;;8788:329;;;;:::o;121:179::-;179:7;199:9;215:1;211;:5;;;;:::i;:::-;199:17;;240:1;235;:6;;227:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;291:1;284:8;;;121:179;;;;:::o;644:246::-;702:7;731:1;726;:6;722:47;;;756:1;749:8;;;;722:47;779:9;795:1;791;:5;;;;:::i;:::-;779:17;;824:1;819;815;:5;;;;:::i;:::-;:10;807:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;881:1;874:8;;;644:246;;;;;:::o;896:132::-;954:7;981:39;985:1;988;981:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;974:46;;896:132;;;;:::o;306:136::-;364:7;391:43;395:1;398;391:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;384:50;;306:136;;;;:::o;1034:189::-;1120:7;1152:1;1148;:5;1155:12;1140:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1179:9;1195:1;1191;:5;;;;:::i;:::-;1179:17;;1214:1;1207:8;;;1034:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::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:474::-;5304:6;5312;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5614:2;5640:53;5685:7;5676:6;5665:9;5661:22;5640:53;:::i;:::-;5630:63;;5585:118;5236:474;;;;;:::o;5716:118::-;5803:24;5821:5;5803:24;:::i;:::-;5798:3;5791:37;5716:118;;:::o;5840:222::-;5933:4;5971:2;5960:9;5956:18;5948:26;;5984:71;6052:1;6041:9;6037:17;6028:6;5984:71;:::i;:::-;5840:222;;;;:::o;6068:474::-;6136:6;6144;6193:2;6181:9;6172:7;6168:23;6164:32;6161:119;;;6199:79;;:::i;:::-;6161:119;6319:1;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6290:117;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;6068:474;;;;;:::o;6548:329::-;6607:6;6656:2;6644:9;6635:7;6631:23;6627:32;6624:119;;;6662:79;;:::i;:::-;6624:119;6782:1;6807:53;6852:7;6843:6;6832:9;6828:22;6807:53;:::i;:::-;6797:63;;6753:117;6548:329;;;;:::o;6883:60::-;6911:3;6932:5;6925:12;;6883:60;;;:::o;6949:142::-;6999:9;7032:53;7050:34;7059:24;7077:5;7059:24;:::i;:::-;7050:34;:::i;:::-;7032:53;:::i;:::-;7019:66;;6949:142;;;:::o;7097:126::-;7147:9;7180:37;7211:5;7180:37;:::i;:::-;7167:50;;7097:126;;;:::o;7229:144::-;7297:9;7330:37;7361:5;7330:37;:::i;:::-;7317:50;;7229:144;;;:::o;7379:167::-;7484:55;7533:5;7484:55;:::i;:::-;7479:3;7472:68;7379:167;;:::o;7552:258::-;7663:4;7701:2;7690:9;7686:18;7678:26;;7714:89;7800:1;7789:9;7785:17;7776:6;7714:89;:::i;:::-;7552:258;;;;:::o;7816:156::-;7956:8;7952:1;7944:6;7940:14;7933:32;7816:156;:::o;7978:365::-;8120:3;8141:66;8205:1;8200:3;8141:66;:::i;:::-;8134:73;;8216:93;8305:3;8216:93;:::i;:::-;8334:2;8329:3;8325:12;8318:19;;7978:365;;;:::o;8349:419::-;8515:4;8553:2;8542:9;8538:18;8530:26;;8602:9;8596:4;8592:20;8588:1;8577:9;8573:17;8566:47;8630:131;8756:4;8630:131;:::i;:::-;8622:139;;8349:419;;;:::o;8774:180::-;8822:77;8819:1;8812:88;8919:4;8916:1;8909:15;8943:4;8940:1;8933:15;8960:305;9000:3;9019:20;9037:1;9019:20;:::i;:::-;9014:25;;9053:20;9071:1;9053:20;:::i;:::-;9048:25;;9207:1;9139:66;9135:74;9132:1;9129:81;9126:107;;;9213:18;;:::i;:::-;9126:107;9257:1;9254;9250:9;9243:16;;8960:305;;;;:::o;9271:348::-;9311:7;9334:20;9352:1;9334:20;:::i;:::-;9329:25;;9368:20;9386:1;9368:20;:::i;:::-;9363:25;;9556:1;9488:66;9484:74;9481:1;9478:81;9473:1;9466:9;9459:17;9455:105;9452:131;;;9563:18;;:::i;:::-;9452:131;9611:1;9608;9604:9;9593:20;;9271:348;;;;:::o;9625:180::-;9673:77;9670:1;9663:88;9770:4;9767:1;9760:15;9794:4;9791:1;9784:15;9811:185;9851:1;9868:20;9886:1;9868:20;:::i;:::-;9863:25;;9902:20;9920:1;9902:20;:::i;:::-;9897:25;;9941:1;9931:35;;9946:18;;:::i;:::-;9931:35;9988:1;9985;9981:9;9976:14;;9811:185;;;;:::o;10002:191::-;10042:4;10062:20;10080:1;10062:20;:::i;:::-;10057:25;;10096:20;10114:1;10096:20;:::i;:::-;10091:25;;10135:1;10132;10129:8;10126:34;;;10140:18;;:::i;:::-;10126:34;10185:1;10182;10178:9;10170:17;;10002:191;;;;:::o;10199:224::-;10339:34;10335:1;10327:6;10323:14;10316:58;10408:7;10403:2;10395:6;10391:15;10384:32;10199:224;:::o;10429:366::-;10571:3;10592:67;10656:2;10651:3;10592:67;:::i;:::-;10585:74;;10668:93;10757:3;10668:93;:::i;:::-;10786:2;10781:3;10777:12;10770:19;;10429:366;;;:::o;10801:419::-;10967:4;11005:2;10994:9;10990:18;10982:26;;11054:9;11048:4;11044:20;11040:1;11029:9;11025:17;11018:47;11082:131;11208:4;11082:131;:::i;:::-;11074:139;;10801:419;;;:::o;11226:180::-;11274:77;11271:1;11264:88;11371:4;11368:1;11361:15;11395:4;11392:1;11385:15;11412:180;11460:77;11457:1;11450:88;11557:4;11554:1;11547:15;11581:4;11578:1;11571:15;11598:143;11655:5;11686:6;11680:13;11671:22;;11702:33;11729:5;11702:33;:::i;:::-;11598:143;;;;:::o;11747:351::-;11817:6;11866:2;11854:9;11845:7;11841:23;11837:32;11834:119;;;11872:79;;:::i;:::-;11834:119;11992:1;12017:64;12073:7;12064:6;12053:9;12049:22;12017:64;:::i;:::-;12007:74;;11963:128;11747:351;;;;:::o;12104:85::-;12149:7;12178:5;12167:16;;12104:85;;;:::o;12195:158::-;12253:9;12286:61;12304:42;12313:32;12339:5;12313:32;:::i;:::-;12304:42;:::i;:::-;12286:61;:::i;:::-;12273:74;;12195:158;;;:::o;12359:147::-;12454:45;12493:5;12454:45;:::i;:::-;12449:3;12442:58;12359:147;;:::o;12512:114::-;12579:6;12613:5;12607:12;12597:22;;12512:114;;;:::o;12632:184::-;12731:11;12765:6;12760:3;12753:19;12805:4;12800:3;12796:14;12781:29;;12632:184;;;;:::o;12822:132::-;12889:4;12912:3;12904:11;;12942:4;12937:3;12933:14;12925:22;;12822:132;;;:::o;12960:108::-;13037:24;13055:5;13037:24;:::i;:::-;13032:3;13025:37;12960:108;;:::o;13074:179::-;13143:10;13164:46;13206:3;13198:6;13164:46;:::i;:::-;13242:4;13237:3;13233:14;13219:28;;13074:179;;;;:::o;13259:113::-;13329:4;13361;13356:3;13352:14;13344:22;;13259:113;;;:::o;13408:732::-;13527:3;13556:54;13604:5;13556:54;:::i;:::-;13626:86;13705:6;13700:3;13626:86;:::i;:::-;13619:93;;13736:56;13786:5;13736:56;:::i;:::-;13815:7;13846:1;13831:284;13856:6;13853:1;13850:13;13831:284;;;13932:6;13926:13;13959:63;14018:3;14003:13;13959:63;:::i;:::-;13952:70;;14045:60;14098:6;14045:60;:::i;:::-;14035:70;;13891:224;13878:1;13875;13871:9;13866:14;;13831:284;;;13835:14;14131:3;14124:10;;13532:608;;;13408:732;;;;:::o;14146:831::-;14409:4;14447:3;14436:9;14432:19;14424:27;;14461:71;14529:1;14518:9;14514:17;14505:6;14461:71;:::i;:::-;14542:80;14618:2;14607:9;14603:18;14594:6;14542:80;:::i;:::-;14669:9;14663:4;14659:20;14654:2;14643:9;14639:18;14632:48;14697:108;14800:4;14791:6;14697:108;:::i;:::-;14689:116;;14815:72;14883:2;14872:9;14868:18;14859:6;14815:72;:::i;:::-;14897:73;14965:3;14954:9;14950:19;14941:6;14897:73;:::i;:::-;14146:831;;;;;;;;:::o;14983:147::-;15084:11;15121:3;15106:18;;14983:147;;;;:::o;15136:114::-;;:::o;15256:398::-;15415:3;15436:83;15517:1;15512:3;15436:83;:::i;:::-;15429:90;;15528:93;15617:3;15528:93;:::i;:::-;15646:1;15641:3;15637:11;15630:18;;15256:398;;;:::o;15660:379::-;15844:3;15866:147;16009:3;15866:147;:::i;:::-;15859:154;;16030:3;16023:10;;15660:379;;;:::o;16045:180::-;16185:32;16181:1;16173:6;16169:14;16162:56;16045:180;:::o;16231:366::-;16373:3;16394:67;16458:2;16453:3;16394:67;:::i;:::-;16387:74;;16470:93;16559:3;16470:93;:::i;:::-;16588:2;16583:3;16579:12;16572:19;;16231:366;;;:::o;16603:419::-;16769:4;16807:2;16796:9;16792:18;16784:26;;16856:9;16850:4;16846:20;16842:1;16831:9;16827:17;16820:47;16884:131;17010:4;16884:131;:::i;:::-;16876:139;;16603:419;;;:::o;17028:807::-;17277:4;17315:3;17304:9;17300:19;17292:27;;17329:71;17397:1;17386:9;17382:17;17373:6;17329:71;:::i;:::-;17410:72;17478:2;17467:9;17463:18;17454:6;17410:72;:::i;:::-;17492:80;17568:2;17557:9;17553:18;17544:6;17492:80;:::i;:::-;17582;17658:2;17647:9;17643:18;17634:6;17582:80;:::i;:::-;17672:73;17740:3;17729:9;17725:19;17716:6;17672:73;:::i;:::-;17755;17823:3;17812:9;17808:19;17799:6;17755:73;:::i;:::-;17028:807;;;;;;;;;:::o;17841:143::-;17898:5;17929:6;17923:13;17914:22;;17945:33;17972:5;17945:33;:::i;:::-;17841:143;;;;:::o;17990:663::-;18078:6;18086;18094;18143:2;18131:9;18122:7;18118:23;18114:32;18111:119;;;18149:79;;:::i;:::-;18111:119;18269:1;18294:64;18350:7;18341:6;18330:9;18326:22;18294:64;:::i;:::-;18284:74;;18240:128;18407:2;18433:64;18489:7;18480:6;18469:9;18465:22;18433:64;:::i;:::-;18423:74;;18378:129;18546:2;18572:64;18628:7;18619:6;18608:9;18604:22;18572:64;:::i;:::-;18562:74;;18517:129;17990:663;;;;;:::o;18659:332::-;18780:4;18818:2;18807:9;18803:18;18795:26;;18831:71;18899:1;18888:9;18884:17;18875:6;18831:71;:::i;:::-;18912:72;18980:2;18969:9;18965:18;18956:6;18912:72;:::i;:::-;18659:332;;;;;:::o;18997:177::-;19137:29;19133:1;19125:6;19121:14;19114:53;18997:177;:::o;19180:366::-;19322:3;19343:67;19407:2;19402:3;19343:67;:::i;:::-;19336:74;;19419:93;19508:3;19419:93;:::i;:::-;19537:2;19532:3;19528:12;19521:19;;19180:366;;;:::o;19552:419::-;19718:4;19756:2;19745:9;19741:18;19733:26;;19805:9;19799:4;19795:20;19791:1;19780:9;19776:17;19769:47;19833:131;19959:4;19833:131;:::i;:::-;19825:139;;19552:419;;;:::o;19977:220::-;20117:34;20113:1;20105:6;20101:14;20094:58;20186:3;20181:2;20173:6;20169:15;20162:28;19977:220;:::o;20203:366::-;20345:3;20366:67;20430:2;20425:3;20366:67;:::i;:::-;20359:74;;20442:93;20531:3;20442:93;:::i;:::-;20560:2;20555:3;20551:12;20544:19;;20203:366;;;:::o;20575:419::-;20741:4;20779:2;20768:9;20764:18;20756:26;;20828:9;20822:4;20818:20;20814:1;20803:9;20799:17;20792:47;20856:131;20982:4;20856:131;:::i;:::-;20848:139;;20575:419;;;:::o

Swarm Source

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