ETH Price: $2,664.81 (+9.93%)
Gas: 2 Gwei

Token

McEth (MCE)
 

Overview

Max Total Supply

100,000,000 MCE

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
539,751.367113692288969404 MCE

Value
$0.00
0xb04e6373eb593ffd093c0377075ed3e06ae2fa98
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:
MCETH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-15
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract MCETH is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public _isExcludedFromFee;

    address payable public _taxWallet;
    address public constant deadAddress = address(0x000000000000000000000000000000000000dEaD);

    uint256 public marketingFee = 2;
    uint256 public liquidityFee = 1;
    uint256 public _buyCount = 0;

    uint8 private constant _decimals = 18;
    uint256 private _tTotal = 100000000 * 10**_decimals;
    string private constant _name = "McEth";
    string private constant _symbol = "MCE";
    uint256 public _maxWalletSize = 3000000 * 10**_decimals;
    uint256 public marketingTokens;
    uint256 public liquidityTokens;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private swapEnabled = false;

    event MaxWalletAmountUpdated(uint256 _maxTxAmount);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    receive() external payable {}

    constructor(address _marketingWallet) {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _taxWallet = payable(_marketingWallet);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 marketingAmount = 0;
        uint256 liquidityAmount = 0;
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            //buying handler
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;

                marketingAmount = amount.mul(marketingFee).div(100);

                liquidityAmount = amount.mul(liquidityFee).div(100);
            }
            //selling handler
            if (
                to == uniswapV2Pair &&
                from != address(this) &&
                !_isExcludedFromFee[from]
            ) {
                marketingAmount = amount.mul(marketingFee).div(100);

                liquidityAmount = amount.mul(liquidityFee).div(100);
            }
            //total taxes
            taxAmount = marketingAmount + liquidityAmount;
            marketingTokens += marketingAmount;
            liquidityTokens += liquidityAmount;

            //normal transfer
            if (
                from != address(this) &&
                to != uniswapV2Pair &&
                to != address(uniswapV2Router)
            ) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            if (taxAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(
                    taxAmount
                );
                if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = marketingTokens;
                    marketingTokens = 0;
                    uint256 initialBalance = address(this).balance;
                    swapTokensForEth(tokensToSwap);
                    uint256 ethToTransfer = address(this).balance - initialBalance;
                    if(ethToTransfer > 0){
                        payable(_taxWallet).transfer(ethToTransfer);
                    }
                    swapAndLiquify();
                }
            }
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function includeOrExcludeFromFee(address _addr, bool _state) external onlyOwner{
        _isExcludedFromFee[_addr] = _state;
    }

    function removeLimits() external onlyOwner {
        _maxWalletSize = _tTotal;
        emit MaxWalletAmountUpdated(_tTotal);
    }

    function changeTaxWallet(address _add) external onlyOwner {
        _taxWallet = payable(_add);
    }

    function setFees(uint256 _marketing, uint256 _liquidity)
        external
        onlyOwner
    {
        marketingFee = _marketing;
        liquidityFee = _liquidity;
    }

    function withDrawETH() external onlyOwner {
        require(address(this).balance > 0, "Not enough eth");
        payable(owner()).transfer(address(this).balance);
    }

    function withdrawStuckTokens() external onlyOwner {
        uint256 balance = balanceOf(address(this));
        require(balance > 0, "No balance to withdraw");
        _transfer(address(this), owner(), balance);
    }

    function burn(uint256 amount) external {
        require(msg.sender != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[msg.sender];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[msg.sender] = accountBalance - amount;
            _tTotal -= amount;
        }
        emit Transfer(msg.sender, address(0), amount);
    }

    function setMaxWalletAmount(uint256 _amount) external onlyOwner {
        _maxWalletSize = _amount;
    }

    function swapAndLiquify() private {

            // add liquidity
            // split the contract balance into 2 pieces

            uint256 otherPiece = liquidityTokens / (2);
            uint256 tokenAmountToBeSwapped = liquidityTokens - (otherPiece);

            liquidityTokens = 0;
            
            uint256 initialBalance = address(this).balance;
            swapTokensForEth(tokenAmountToBeSwapped);

            uint256 ETHToBeAddedToLiquidity = address(this).balance -
                (initialBalance);
            // approve contract
            _approve(address(this), address(uniswapV2Router), otherPiece);
            // add liquidity to DEX
            addLiquidity(
                otherPiece,
                ETHToBeAddedToLiquidity
            );

            emit SwapAndLiquify(
                tokenAmountToBeSwapped,
                ETHToBeAddedToLiquidity,
                otherPiece
            );
    }

   function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
 
        _approve(address(this), address(uniswapV2Router), tokenAmount);
 
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
 
    }

    function addLiquidity(
        uint256 tokenAmount,
        uint256 ethAmount
    ) private {

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deadAddress,
            block.timestamp + 45
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_add","type":"address"}],"name":"changeTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_state","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxWalletAmount","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":[],"name":"withDrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600555600160065560006007556012600a620000239190620007b0565b6305f5e10062000034919062000801565b6008556012600a620000479190620007b0565b622dc6c062000057919062000801565b6009556000600d60146101000a81548160ff0219169083151502179055503480156200008257600080fd5b5060405162003d0438038062003d048339818101604052810190620000a89190620008b6565b6000620000ba620005e560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200021b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002419190620008b6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f19190620008b6565b6040518363ffffffff1660e01b815260040162000310929190620008f9565b6020604051808303816000875af115801562000330573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003569190620008b6565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460016000620003ee620005e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000442620005ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000575620005e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620005d6919062000937565b60405180910390a35062000954565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006a4578086048111156200067c576200067b62000616565b5b60018516156200068c5780820291505b80810290506200069c8562000645565b94506200065c565b94509492505050565b600082620006bf576001905062000792565b81620006cf576000905062000792565b8160018114620006e85760028114620006f35762000729565b600191505062000792565b60ff84111562000708576200070762000616565b5b8360020a91508482111562000722576200072162000616565b5b5062000792565b5060208310610133831016604e8410600b8410161715620007635782820a9050838111156200075d576200075c62000616565b5b62000792565b62000772848484600162000652565b925090508184048111156200078c576200078b62000616565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007bd8262000799565b9150620007ca83620007a3565b9250620007f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006ad565b905092915050565b60006200080e8262000799565b91506200081b8362000799565b92508282026200082b8162000799565b9150828204841483151762000845576200084462000616565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200087e8262000851565b9050919050565b620008908162000871565b81146200089c57600080fd5b50565b600081519050620008b08162000885565b92915050565b600060208284031215620008cf57620008ce6200084c565b5b6000620008df848285016200089f565b91505092915050565b620008f38162000871565b82525050565b6000604082019050620009106000830185620008e8565b6200091f6020830184620008e8565b9392505050565b620009318162000799565b82525050565b60006020820190506200094e600083018462000926565b92915050565b6133a080620009646000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec57806395d89b411161008a578063cb71159511610064578063cb711595146105e7578063dd62ed3e14610610578063de48abf41461064d578063ea5b9e8514610664576101c2565b806395d89b411461055457806398118cb41461057f578063a9059cbb146105aa576101c2565b80638183b3c8116100c65780638183b3c8146104bc5780638b27306d146104d35780638da5cb5b146104fe5780638f9a55c014610529576101c2565b8063715018a614610451578063751039fc14610468578063768dc7101461047f576101c2565b806327c8f835116101595780634b8ce602116101335780634b8ce602146103935780636b67c4df146103be5780636f268a99146103e957806370a0823114610414576101c2565b806327c8f83514610314578063313ce5671461033f57806342966c681461036a576101c2565b806318160ddd1161019557806318160ddd1461025857806323b872dd1461028357806327a14fc2146102c057806327b1a8e9146102e9576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630b78f9c01461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61068d565b6040516101e99190612487565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612542565b6106ca565b604051610226919061259d565b60405180910390f35b34801561023b57600080fd5b50610256600480360381019061025191906125b8565b6106e8565b005b34801561026457600080fd5b5061026d61078f565b60405161027a9190612607565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a59190612622565b610799565b6040516102b7919061259d565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612675565b610872565b005b3480156102f557600080fd5b506102fe610911565b60405161030b9190612607565b60405180910390f35b34801561032057600080fd5b50610329610917565b60405161033691906126b1565b60405180910390f35b34801561034b57600080fd5b5061035461091d565b60405161036191906126e8565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612675565b610926565b005b34801561039f57600080fd5b506103a8610adc565b6040516103b59190612607565b60405180910390f35b3480156103ca57600080fd5b506103d3610ae2565b6040516103e09190612607565b60405180910390f35b3480156103f557600080fd5b506103fe610ae8565b60405161040b9190612724565b60405180910390f35b34801561042057600080fd5b5061043b6004803603810190610436919061273f565b610b0e565b6040516104489190612607565b60405180910390f35b34801561045d57600080fd5b50610466610b57565b005b34801561047457600080fd5b5061047d610caa565b005b34801561048b57600080fd5b506104a660048036038101906104a1919061273f565b610d83565b6040516104b3919061259d565b60405180910390f35b3480156104c857600080fd5b506104d1610da3565b005b3480156104df57600080fd5b506104e8610e9d565b6040516104f59190612607565b60405180910390f35b34801561050a57600080fd5b50610513610ea3565b60405161052091906126b1565b60405180910390f35b34801561053557600080fd5b5061053e610ecc565b60405161054b9190612607565b60405180910390f35b34801561056057600080fd5b50610569610ed2565b6040516105769190612487565b60405180910390f35b34801561058b57600080fd5b50610594610f0f565b6040516105a19190612607565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190612542565b610f15565b6040516105de919061259d565b60405180910390f35b3480156105f357600080fd5b5061060e6004803603810190610609919061273f565b610f33565b005b34801561061c57600080fd5b506106376004803603810190610632919061276c565b61100c565b6040516106449190612607565b60405180910390f35b34801561065957600080fd5b50610662611093565b005b34801561067057600080fd5b5061068b600480360381019061068691906127d8565b6111bb565b005b60606040518060400160405280600581526020017f4d63457468000000000000000000000000000000000000000000000000000000815250905090565b60006106de6106d76112ab565b84846112b3565b6001905092915050565b6106f06112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490612864565b60405180910390fd5b81600581905550806006819055505050565b6000600854905090565b60006107a684848461147c565b610867846107b26112ab565b6108628560405180606001604052806028815260200161334360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108186112ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dff9092919063ffffffff16565b6112b3565b600190509392505050565b61087a6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90612864565b60405180910390fd5b8060098190555050565b60075481565b61dead81565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906128f6565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612988565b60405180910390fd5b818103600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ad09190612607565b60405180910390a35050565b600b5481565b60055481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b5f6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cb26112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690612864565b60405180910390fd5b6008546009819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001600854604051610d799190612607565b60405180910390a1565b60036020528060005260406000206000915054906101000a900460ff1681565b610dab6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f90612864565b60405180910390fd5b6000610e4330610b0e565b905060008111610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f906129f4565b60405180910390fd5b610e9a30610e94610ea3565b8361147c565b50565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600381526020017f4d43450000000000000000000000000000000000000000000000000000000000815250905090565b60065481565b6000610f29610f226112ab565b848461147c565b6001905092915050565b610f3b6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612864565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61109b6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612864565b60405180910390fd5b6000471161116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116290612a60565b60405180910390fd5b611173610ea3565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111b8573d6000803e3d6000fd5b50565b6111c36112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612864565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612af2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890612b84565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146f9190612607565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190612ca8565b60405180910390fd5b6000811161159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490612d3a565b60405180910390fd5b60008060006115aa610ea3565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561161857506115e8610ea3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c4457600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156116c85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561171e5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117e8576009548461173087610b0e565b61173a9190612d89565b111561177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612e09565b60405180910390fd5b6007600081548092919061178e90612e29565b91905055506117bb60646117ad60055487611e6390919063ffffffff16565b611edd90919063ffffffff16565b92506117e560646117d760065487611e6390919063ffffffff16565b611edd90919063ffffffff16565b91505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561187157503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156118c75750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611921576118f460646118e660055487611e6390919063ffffffff16565b611edd90919063ffffffff16565b925061191e606461191060065487611e6390919063ffffffff16565b611edd90919063ffffffff16565b91505b818361192d9190612d89565b905082600a60008282546119419190612d89565b9250508190555081600b600082825461195a9190612d89565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156119eb5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611aa35760095484611a5787610b0e565b611a619190612d89565b1115611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990612e09565b60405180910390fd5b5b6000811115611c4357611afe81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611c42576000600a5490506000600a819055506000479050611bb382611f85565b60008147611bc19190612e71565b90506000811115611c3657600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c34573d6000803e3d6000fd5b505b611c3e6121c8565b5050505b5b5b611c9684600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3d611cef828661228b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de2848861228b90919063ffffffff16565b604051611def9190612607565b60405180910390a3505050505050565b6000838311158290611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e9190612487565b60405180910390fd5b5060008385611e569190612e71565b9050809150509392505050565b6000808303611e755760009050611ed7565b60008284611e839190612ea5565b9050828482611e929190612f16565b14611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990612fb9565b60405180910390fd5b809150505b92915050565b6000611f1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d5565b905092915050565b6000808284611f369190612d89565b905083811015611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613025565b60405180910390fd5b8091505092915050565b6000600267ffffffffffffffff811115611fa257611fa1613045565b5b604051908082528060200260200182016040528015611fd05781602001602082028036833780820191505090505b5090503081600081518110611fe857611fe7613074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b391906130b8565b816001815181106120c7576120c6613074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b3565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121929594939291906131e8565b600060405180830381600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050505050565b60006002600b546121d99190612f16565b9050600081600b546121eb9190612e71565b90506000600b81905550600047905061220382611f85565b600081476122119190612e71565b905061224030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866112b3565b61224a8482612338565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56183828660405161227d93929190613242565b60405180910390a150505050565b60006122cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dff565b905092915050565b6000808311829061231c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123139190612487565b60405180910390fd5b506000838561232b9190612f16565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead602d4261238c9190612d89565b6040518863ffffffff1660e01b81526004016123ad96959493929190613279565b60606040518083038185885af11580156123cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123f091906132ef565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612431578082015181840152602081019050612416565b60008484015250505050565b6000601f19601f8301169050919050565b6000612459826123f7565b6124638185612402565b9350612473818560208601612413565b61247c8161243d565b840191505092915050565b600060208201905081810360008301526124a1818461244e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124d9826124ae565b9050919050565b6124e9816124ce565b81146124f457600080fd5b50565b600081359050612506816124e0565b92915050565b6000819050919050565b61251f8161250c565b811461252a57600080fd5b50565b60008135905061253c81612516565b92915050565b60008060408385031215612559576125586124a9565b5b6000612567858286016124f7565b92505060206125788582860161252d565b9150509250929050565b60008115159050919050565b61259781612582565b82525050565b60006020820190506125b2600083018461258e565b92915050565b600080604083850312156125cf576125ce6124a9565b5b60006125dd8582860161252d565b92505060206125ee8582860161252d565b9150509250929050565b6126018161250c565b82525050565b600060208201905061261c60008301846125f8565b92915050565b60008060006060848603121561263b5761263a6124a9565b5b6000612649868287016124f7565b935050602061265a868287016124f7565b925050604061266b8682870161252d565b9150509250925092565b60006020828403121561268b5761268a6124a9565b5b60006126998482850161252d565b91505092915050565b6126ab816124ce565b82525050565b60006020820190506126c660008301846126a2565b92915050565b600060ff82169050919050565b6126e2816126cc565b82525050565b60006020820190506126fd60008301846126d9565b92915050565b600061270e826124ae565b9050919050565b61271e81612703565b82525050565b60006020820190506127396000830184612715565b92915050565b600060208284031215612755576127546124a9565b5b6000612763848285016124f7565b91505092915050565b60008060408385031215612783576127826124a9565b5b6000612791858286016124f7565b92505060206127a2858286016124f7565b9150509250929050565b6127b581612582565b81146127c057600080fd5b50565b6000813590506127d2816127ac565b92915050565b600080604083850312156127ef576127ee6124a9565b5b60006127fd858286016124f7565b925050602061280e858286016127c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061284e602083612402565b915061285982612818565b602082019050919050565b6000602082019050818103600083015261287d81612841565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006128e0602183612402565b91506128eb82612884565b604082019050919050565b6000602082019050818103600083015261290f816128d3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612972602283612402565b915061297d82612916565b604082019050919050565b600060208201905081810360008301526129a181612965565b9050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b60006129de601683612402565b91506129e9826129a8565b602082019050919050565b60006020820190508181036000830152612a0d816129d1565b9050919050565b7f4e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000612a4a600e83612402565b9150612a5582612a14565b602082019050919050565b60006020820190508181036000830152612a7981612a3d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612adc602483612402565b9150612ae782612a80565b604082019050919050565b60006020820190508181036000830152612b0b81612acf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b6e602283612402565b9150612b7982612b12565b604082019050919050565b60006020820190508181036000830152612b9d81612b61565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c00602583612402565b9150612c0b82612ba4565b604082019050919050565b60006020820190508181036000830152612c2f81612bf3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c92602383612402565b9150612c9d82612c36565b604082019050919050565b60006020820190508181036000830152612cc181612c85565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d24602983612402565b9150612d2f82612cc8565b604082019050919050565b60006020820190508181036000830152612d5381612d17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d948261250c565b9150612d9f8361250c565b9250828201905080821115612db757612db6612d5a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612df3601a83612402565b9150612dfe82612dbd565b602082019050919050565b60006020820190508181036000830152612e2281612de6565b9050919050565b6000612e348261250c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6657612e65612d5a565b5b600182019050919050565b6000612e7c8261250c565b9150612e878361250c565b9250828203905081811115612e9f57612e9e612d5a565b5b92915050565b6000612eb08261250c565b9150612ebb8361250c565b9250828202612ec98161250c565b91508282048414831517612ee057612edf612d5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f218261250c565b9150612f2c8361250c565b925082612f3c57612f3b612ee7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fa3602183612402565b9150612fae82612f47565b604082019050919050565b60006020820190508181036000830152612fd281612f96565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061300f601b83612402565b915061301a82612fd9565b602082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130b2816124e0565b92915050565b6000602082840312156130ce576130cd6124a9565b5b60006130dc848285016130a3565b91505092915050565b6000819050919050565b6000819050919050565b600061311461310f61310a846130e5565b6130ef565b61250c565b9050919050565b613124816130f9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61315f816124ce565b82525050565b60006131718383613156565b60208301905092915050565b6000602082019050919050565b60006131958261312a565b61319f8185613135565b93506131aa83613146565b8060005b838110156131db5781516131c28882613165565b97506131cd8361317d565b9250506001810190506131ae565b5085935050505092915050565b600060a0820190506131fd60008301886125f8565b61320a602083018761311b565b818103604083015261321c818661318a565b905061322b60608301856126a2565b61323860808301846125f8565b9695505050505050565b600060608201905061325760008301866125f8565b61326460208301856125f8565b61327160408301846125f8565b949350505050565b600060c08201905061328e60008301896126a2565b61329b60208301886125f8565b6132a8604083018761311b565b6132b5606083018661311b565b6132c260808301856126a2565b6132cf60a08301846125f8565b979650505050505050565b6000815190506132e981612516565b92915050565b600080600060608486031215613308576133076124a9565b5b6000613316868287016132da565b9350506020613327868287016132da565b9250506040613338868287016132da565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201122e5808b0933c30676845b126b686ab40c593272be2715cc606c283461c6de64736f6c63430008130033000000000000000000000000c221f00f39c7c72ba57a2cb489ab1022917d2520

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec57806395d89b411161008a578063cb71159511610064578063cb711595146105e7578063dd62ed3e14610610578063de48abf41461064d578063ea5b9e8514610664576101c2565b806395d89b411461055457806398118cb41461057f578063a9059cbb146105aa576101c2565b80638183b3c8116100c65780638183b3c8146104bc5780638b27306d146104d35780638da5cb5b146104fe5780638f9a55c014610529576101c2565b8063715018a614610451578063751039fc14610468578063768dc7101461047f576101c2565b806327c8f835116101595780634b8ce602116101335780634b8ce602146103935780636b67c4df146103be5780636f268a99146103e957806370a0823114610414576101c2565b806327c8f83514610314578063313ce5671461033f57806342966c681461036a576101c2565b806318160ddd1161019557806318160ddd1461025857806323b872dd1461028357806327a14fc2146102c057806327b1a8e9146102e9576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630b78f9c01461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61068d565b6040516101e99190612487565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612542565b6106ca565b604051610226919061259d565b60405180910390f35b34801561023b57600080fd5b50610256600480360381019061025191906125b8565b6106e8565b005b34801561026457600080fd5b5061026d61078f565b60405161027a9190612607565b60405180910390f35b34801561028f57600080fd5b506102aa60048036038101906102a59190612622565b610799565b6040516102b7919061259d565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e29190612675565b610872565b005b3480156102f557600080fd5b506102fe610911565b60405161030b9190612607565b60405180910390f35b34801561032057600080fd5b50610329610917565b60405161033691906126b1565b60405180910390f35b34801561034b57600080fd5b5061035461091d565b60405161036191906126e8565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190612675565b610926565b005b34801561039f57600080fd5b506103a8610adc565b6040516103b59190612607565b60405180910390f35b3480156103ca57600080fd5b506103d3610ae2565b6040516103e09190612607565b60405180910390f35b3480156103f557600080fd5b506103fe610ae8565b60405161040b9190612724565b60405180910390f35b34801561042057600080fd5b5061043b6004803603810190610436919061273f565b610b0e565b6040516104489190612607565b60405180910390f35b34801561045d57600080fd5b50610466610b57565b005b34801561047457600080fd5b5061047d610caa565b005b34801561048b57600080fd5b506104a660048036038101906104a1919061273f565b610d83565b6040516104b3919061259d565b60405180910390f35b3480156104c857600080fd5b506104d1610da3565b005b3480156104df57600080fd5b506104e8610e9d565b6040516104f59190612607565b60405180910390f35b34801561050a57600080fd5b50610513610ea3565b60405161052091906126b1565b60405180910390f35b34801561053557600080fd5b5061053e610ecc565b60405161054b9190612607565b60405180910390f35b34801561056057600080fd5b50610569610ed2565b6040516105769190612487565b60405180910390f35b34801561058b57600080fd5b50610594610f0f565b6040516105a19190612607565b60405180910390f35b3480156105b657600080fd5b506105d160048036038101906105cc9190612542565b610f15565b6040516105de919061259d565b60405180910390f35b3480156105f357600080fd5b5061060e6004803603810190610609919061273f565b610f33565b005b34801561061c57600080fd5b506106376004803603810190610632919061276c565b61100c565b6040516106449190612607565b60405180910390f35b34801561065957600080fd5b50610662611093565b005b34801561067057600080fd5b5061068b600480360381019061068691906127d8565b6111bb565b005b60606040518060400160405280600581526020017f4d63457468000000000000000000000000000000000000000000000000000000815250905090565b60006106de6106d76112ab565b84846112b3565b6001905092915050565b6106f06112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490612864565b60405180910390fd5b81600581905550806006819055505050565b6000600854905090565b60006107a684848461147c565b610867846107b26112ab565b6108628560405180606001604052806028815260200161334360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108186112ab565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dff9092919063ffffffff16565b6112b3565b600190509392505050565b61087a6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fe90612864565b60405180910390fd5b8060098190555050565b60075481565b61dead81565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906128f6565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610a1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1390612988565b60405180910390fd5b818103600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600860008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ad09190612607565b60405180910390a35050565b600b5481565b60055481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b5f6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be390612864565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cb26112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3690612864565b60405180910390fd5b6008546009819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001600854604051610d799190612607565b60405180910390a1565b60036020528060005260406000206000915054906101000a900460ff1681565b610dab6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f90612864565b60405180910390fd5b6000610e4330610b0e565b905060008111610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f906129f4565b60405180910390fd5b610e9a30610e94610ea3565b8361147c565b50565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600381526020017f4d43450000000000000000000000000000000000000000000000000000000000815250905090565b60065481565b6000610f29610f226112ab565b848461147c565b6001905092915050565b610f3b6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbf90612864565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61109b6112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612864565b60405180910390fd5b6000471161116b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116290612a60565b60405180910390fd5b611173610ea3565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111b8573d6000803e3d6000fd5b50565b6111c36112ab565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612864565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611322576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131990612af2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890612b84565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161146f9190612607565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e290612c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155190612ca8565b60405180910390fd5b6000811161159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159490612d3a565b60405180910390fd5b60008060006115aa610ea3565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561161857506115e8610ea3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c4457600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480156116c85750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561171e5750600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117e8576009548461173087610b0e565b61173a9190612d89565b111561177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290612e09565b60405180910390fd5b6007600081548092919061178e90612e29565b91905055506117bb60646117ad60055487611e6390919063ffffffff16565b611edd90919063ffffffff16565b92506117e560646117d760065487611e6390919063ffffffff16565b611edd90919063ffffffff16565b91505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561187157503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156118c75750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611921576118f460646118e660055487611e6390919063ffffffff16565b611edd90919063ffffffff16565b925061191e606461191060065487611e6390919063ffffffff16565b611edd90919063ffffffff16565b91505b818361192d9190612d89565b905082600a60008282546119419190612d89565b9250508190555081600b600082825461195a9190612d89565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156119eb5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611aa35760095484611a5787610b0e565b611a619190612d89565b1115611aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9990612e09565b60405180910390fd5b5b6000811115611c4357611afe81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611c42576000600a5490506000600a819055506000479050611bb382611f85565b60008147611bc19190612e71565b90506000811115611c3657600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c34573d6000803e3d6000fd5b505b611c3e6121c8565b5050505b5b5b611c9684600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d3d611cef828661228b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f2790919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611de2848861228b90919063ffffffff16565b604051611def9190612607565b60405180910390a3505050505050565b6000838311158290611e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3e9190612487565b60405180910390fd5b5060008385611e569190612e71565b9050809150509392505050565b6000808303611e755760009050611ed7565b60008284611e839190612ea5565b9050828482611e929190612f16565b14611ed2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec990612fb9565b60405180910390fd5b809150505b92915050565b6000611f1f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122d5565b905092915050565b6000808284611f369190612d89565b905083811015611f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7290613025565b60405180910390fd5b8091505092915050565b6000600267ffffffffffffffff811115611fa257611fa1613045565b5b604051908082528060200260200182016040528015611fd05781602001602082028036833780820191505090505b5090503081600081518110611fe857611fe7613074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561208f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b391906130b8565b816001815181106120c7576120c6613074565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212e30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b3565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121929594939291906131e8565b600060405180830381600087803b1580156121ac57600080fd5b505af11580156121c0573d6000803e3d6000fd5b505050505050565b60006002600b546121d99190612f16565b9050600081600b546121eb9190612e71565b90506000600b81905550600047905061220382611f85565b600081476122119190612e71565b905061224030600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866112b3565b61224a8482612338565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56183828660405161227d93929190613242565b60405180910390a150505050565b60006122cd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dff565b905092915050565b6000808311829061231c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123139190612487565b60405180910390fd5b506000838561232b9190612f16565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008061dead602d4261238c9190612d89565b6040518863ffffffff1660e01b81526004016123ad96959493929190613279565b60606040518083038185885af11580156123cb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123f091906132ef565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612431578082015181840152602081019050612416565b60008484015250505050565b6000601f19601f8301169050919050565b6000612459826123f7565b6124638185612402565b9350612473818560208601612413565b61247c8161243d565b840191505092915050565b600060208201905081810360008301526124a1818461244e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124d9826124ae565b9050919050565b6124e9816124ce565b81146124f457600080fd5b50565b600081359050612506816124e0565b92915050565b6000819050919050565b61251f8161250c565b811461252a57600080fd5b50565b60008135905061253c81612516565b92915050565b60008060408385031215612559576125586124a9565b5b6000612567858286016124f7565b92505060206125788582860161252d565b9150509250929050565b60008115159050919050565b61259781612582565b82525050565b60006020820190506125b2600083018461258e565b92915050565b600080604083850312156125cf576125ce6124a9565b5b60006125dd8582860161252d565b92505060206125ee8582860161252d565b9150509250929050565b6126018161250c565b82525050565b600060208201905061261c60008301846125f8565b92915050565b60008060006060848603121561263b5761263a6124a9565b5b6000612649868287016124f7565b935050602061265a868287016124f7565b925050604061266b8682870161252d565b9150509250925092565b60006020828403121561268b5761268a6124a9565b5b60006126998482850161252d565b91505092915050565b6126ab816124ce565b82525050565b60006020820190506126c660008301846126a2565b92915050565b600060ff82169050919050565b6126e2816126cc565b82525050565b60006020820190506126fd60008301846126d9565b92915050565b600061270e826124ae565b9050919050565b61271e81612703565b82525050565b60006020820190506127396000830184612715565b92915050565b600060208284031215612755576127546124a9565b5b6000612763848285016124f7565b91505092915050565b60008060408385031215612783576127826124a9565b5b6000612791858286016124f7565b92505060206127a2858286016124f7565b9150509250929050565b6127b581612582565b81146127c057600080fd5b50565b6000813590506127d2816127ac565b92915050565b600080604083850312156127ef576127ee6124a9565b5b60006127fd858286016124f7565b925050602061280e858286016127c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061284e602083612402565b915061285982612818565b602082019050919050565b6000602082019050818103600083015261287d81612841565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006128e0602183612402565b91506128eb82612884565b604082019050919050565b6000602082019050818103600083015261290f816128d3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612972602283612402565b915061297d82612916565b604082019050919050565b600060208201905081810360008301526129a181612965565b9050919050565b7f4e6f2062616c616e636520746f20776974686472617700000000000000000000600082015250565b60006129de601683612402565b91506129e9826129a8565b602082019050919050565b60006020820190508181036000830152612a0d816129d1565b9050919050565b7f4e6f7420656e6f75676820657468000000000000000000000000000000000000600082015250565b6000612a4a600e83612402565b9150612a5582612a14565b602082019050919050565b60006020820190508181036000830152612a7981612a3d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612adc602483612402565b9150612ae782612a80565b604082019050919050565b60006020820190508181036000830152612b0b81612acf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b6e602283612402565b9150612b7982612b12565b604082019050919050565b60006020820190508181036000830152612b9d81612b61565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c00602583612402565b9150612c0b82612ba4565b604082019050919050565b60006020820190508181036000830152612c2f81612bf3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c92602383612402565b9150612c9d82612c36565b604082019050919050565b60006020820190508181036000830152612cc181612c85565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d24602983612402565b9150612d2f82612cc8565b604082019050919050565b60006020820190508181036000830152612d5381612d17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d948261250c565b9150612d9f8361250c565b9250828201905080821115612db757612db6612d5a565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612df3601a83612402565b9150612dfe82612dbd565b602082019050919050565b60006020820190508181036000830152612e2281612de6565b9050919050565b6000612e348261250c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6657612e65612d5a565b5b600182019050919050565b6000612e7c8261250c565b9150612e878361250c565b9250828203905081811115612e9f57612e9e612d5a565b5b92915050565b6000612eb08261250c565b9150612ebb8361250c565b9250828202612ec98161250c565b91508282048414831517612ee057612edf612d5a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f218261250c565b9150612f2c8361250c565b925082612f3c57612f3b612ee7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fa3602183612402565b9150612fae82612f47565b604082019050919050565b60006020820190508181036000830152612fd281612f96565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061300f601b83612402565b915061301a82612fd9565b602082019050919050565b6000602082019050818103600083015261303e81613002565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130b2816124e0565b92915050565b6000602082840312156130ce576130cd6124a9565b5b60006130dc848285016130a3565b91505092915050565b6000819050919050565b6000819050919050565b600061311461310f61310a846130e5565b6130ef565b61250c565b9050919050565b613124816130f9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61315f816124ce565b82525050565b60006131718383613156565b60208301905092915050565b6000602082019050919050565b60006131958261312a565b61319f8185613135565b93506131aa83613146565b8060005b838110156131db5781516131c28882613165565b97506131cd8361317d565b9250506001810190506131ae565b5085935050505092915050565b600060a0820190506131fd60008301886125f8565b61320a602083018761311b565b818103604083015261321c818661318a565b905061322b60608301856126a2565b61323860808301846125f8565b9695505050505050565b600060608201905061325760008301866125f8565b61326460208301856125f8565b61327160408301846125f8565b949350505050565b600060c08201905061328e60008301896126a2565b61329b60208301886125f8565b6132a8604083018761311b565b6132b5606083018661311b565b6132c260808301856126a2565b6132cf60a08301846125f8565b979650505050505050565b6000815190506132e981612516565b92915050565b600080600060608486031215613308576133076124a9565b5b6000613316868287016132da565b9350506020613327868287016132da565b9250506040613338868287016132da565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212201122e5808b0933c30676845b126b686ab40c593272be2715cc606c283461c6de64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c221f00f39c7c72ba57a2cb489ab1022917d2520

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0xc221f00f39c7c72Ba57a2CB489ab1022917D2520

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c221f00f39c7c72ba57a2cb489ab1022917d2520


Deployed Bytecode Sourcemap

4141:10038:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5911:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6817:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11114:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6188:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7018:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12167:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4623:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6097:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11710:449;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4953:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4547:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4409:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2767:148;;;;;;;;;;;;;:::i;:::-;;10862:133;;;;;;;;;;;;;:::i;:::-;;4350:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11481:221;;;;;;;;;;;;;:::i;:::-;;4916:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2553:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4854:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6002:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4585:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6418:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11003:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6625:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11301:172;;;;;;;;;;;;;:::i;:::-;;10722:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5911:83;5948:13;5981:5;;;;;;;;;;;;;;;;;5974:12;;5911:83;:::o;6817:193::-;6919:4;6941:39;6950:12;:10;:12::i;:::-;6964:7;6973:6;6941:8;:39::i;:::-;6998:4;6991:11;;6817:193;;;;:::o;11114:179::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11239:10:::1;11224:12;:25;;;;11275:10;11260:12;:25;;;;11114:179:::0;;:::o;6188:95::-;6241:7;6268;;6261:14;;6188:95;:::o;7018:446::-;7150:4;7167:36;7177:6;7185:9;7196:6;7167:9;:36::i;:::-;7214:220;7237:6;7258:12;:10;:12::i;:::-;7285:138;7341:6;7285:138;;;;;;;;;;;;;;;;;:11;:19;7297:6;7285:19;;;;;;;;;;;;;;;:33;7305:12;:10;:12::i;:::-;7285:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7214:8;:220::i;:::-;7452:4;7445:11;;7018:446;;;;;:::o;12167:107::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12259:7:::1;12242:14;:24;;;;12167:107:::0;:::o;4623:28::-;;;;:::o;4449:89::-;4495:42;4449:89;:::o;6097:83::-;6138:5;4695:2;6156:16;;6097:83;:::o;11710:449::-;11790:1;11768:24;;:10;:24;;;11760:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;11841:22;11866:9;:21;11876:10;11866:21;;;;;;;;;;;;;;;;11841:46;;11924:6;11906:14;:24;;11898:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12046:6;12029:14;:23;12005:9;:21;12015:10;12005:21;;;;;;;;;;;;;;;:47;;;;12078:6;12067:7;;:17;;;;;;;;;;;12140:1;12111:40;;12120:10;12111:40;;;12144:6;12111:40;;;;;;:::i;:::-;;;;;;;;11749:410;11710:449;:::o;4953:30::-;;;;:::o;4547:31::-;;;;:::o;4409:33::-;;;;;;;;;;;;;:::o;6291:119::-;6357:7;6384:9;:18;6394:7;6384:18;;;;;;;;;;;;;;;;6377:25;;6291:119;;;:::o;2767:148::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:1:::1;2837:40;;2858:6;::::0;::::1;;;;;;;;2837:40;;;;;;;;;;;;2905:1;2888:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2767:148::o:0;10862:133::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10933:7:::1;;10916:14;:24;;;;10956:31;10979:7;;10956:31;;;;;;:::i;:::-;;;;;;;;10862:133::o:0;4350:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;11481:221::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11542:15:::1;11560:24;11578:4;11560:9;:24::i;:::-;11542:42;;11613:1;11603:7;:11;11595:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11652:42;11670:4;11677:7;:5;:7::i;:::-;11686;11652:9;:42::i;:::-;11531:171;11481:221::o:0;4916:30::-;;;;:::o;2553:79::-;2591:7;2618:6;;;;;;;;;;;2611:13;;2553:79;:::o;4854:55::-;;;;:::o;6002:87::-;6041:13;6074:7;;;;;;;;;;;;;;;;;6067:14;;6002:87;:::o;4585:31::-;;;;:::o;6418:199::-;6523:4;6545:42;6555:12;:10;:12::i;:::-;6569:9;6580:6;6545:9;:42::i;:::-;6605:4;6598:11;;6418:199;;;;:::o;11003:103::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11093:4:::1;11072:10;;:26;;;;;;;;;;;;;;;;;;11003:103:::0;:::o;6625:184::-;6742:7;6774:11;:18;6786:5;6774:18;;;;;;;;;;;;;;;:27;6793:7;6774:27;;;;;;;;;;;;;;;;6767:34;;6625:184;;;;:::o;11301:172::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11386:1:::1;11362:21;:25;11354:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11425:7;:5;:7::i;:::-;11417:25;;:48;11443:21;11417:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11301:172::o:0;10722:132::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10840:6:::1;10812:18;:25;10831:5;10812:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;10722:132:::0;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;7472:369::-;7616:1;7599:19;;:5;:19;;;7591:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7697:1;7678:21;;:7;:21;;;7670:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7779:6;7749:11;:18;7761:5;7749:18;;;;;;;;;;;;;;;:27;7768:7;7749:27;;;;;;;;;;;;;;;:36;;;;7817:7;7801:32;;7810:5;7801:32;;;7826:6;7801:32;;;;;;:::i;:::-;;;;;;;;7472:369;;;:::o;7849:2865::-;7987:1;7971:18;;:4;:18;;;7963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8064:1;8050:16;;:2;:16;;;8042:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8134:1;8125:6;:10;8117:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8192:23;8230;8268:17;8312:7;:5;:7::i;:::-;8304:15;;:4;:15;;;;:32;;;;;8329:7;:5;:7::i;:::-;8323:13;;:2;:13;;;;8304:32;8300:2227;;;8413:13;;;;;;;;;;;8405:21;;:4;:21;;;:72;;;;;8461:15;;;;;;;;;;;8447:30;;:2;:30;;;;8405:72;:116;;;;;8499:18;:22;8518:2;8499:22;;;;;;;;;;;;;;;;;;;;;;;;;8498:23;8405:116;8383:503;;;8612:14;;8602:6;8586:13;8596:2;8586:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8556:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;8715:9;;:11;;;;;;;;;:::i;:::-;;;;;;8765:33;8794:3;8765:24;8776:12;;8765:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8747:51;;8837:33;8866:3;8837:24;8848:12;;8837:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;8819:51;;8383:503;8959:13;;;;;;;;;;;8953:19;;:2;:19;;;:61;;;;;9009:4;8993:21;;:4;:21;;;;8953:61;:107;;;;;9036:18;:24;9055:4;9036:24;;;;;;;;;;;;;;;;;;;;;;;;;9035:25;8953:107;8931:303;;;9113:33;9142:3;9113:24;9124:12;;9113:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9095:51;;9185:33;9214:3;9185:24;9196:12;;9185:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9167:51;;8931:303;9305:15;9287;:33;;;;:::i;:::-;9275:45;;9354:15;9335;;:34;;;;;;;:::i;:::-;;;;;;;;9403:15;9384;;:34;;;;;;;:::i;:::-;;;;;;;;9504:4;9488:21;;:4;:21;;;;:61;;;;;9536:13;;;;;;;;;;;9530:19;;:2;:19;;;;9488:61;:112;;;;;9584:15;;;;;;;;;;;9570:30;;:2;:30;;;;9488:112;9466:325;;;9691:14;;9681:6;9665:13;9675:2;9665:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9635:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;9466:325;9823:1;9811:9;:13;9807:709;;;9872:79;9923:9;9872;:24;9890:4;9872:24;;;;;;;;;;;;;;;;:28;;:79;;;;:::i;:::-;9845:9;:24;9863:4;9845:24;;;;;;;;;;;;;;;:106;;;;9980:13;;;;;;;;;;;9974:19;;:2;:19;;;9970:531;;10018:20;10041:15;;10018:38;;10097:1;10079:15;:19;;;;10121:22;10146:21;10121:46;;10190:30;10207:12;10190:16;:30::i;:::-;10243:21;10291:14;10267:21;:38;;;;:::i;:::-;10243:62;;10347:1;10331:13;:17;10328:115;;;10384:10;;;;;;;;;;;10376:28;;:43;10405:13;10376:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10328:115;10465:16;:14;:16::i;:::-;9995:506;;;9970:531;9807:709;8300:2227;10555:27;10575:6;10555:9;:15;10565:4;10555:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10537:9;:15;10547:4;10537:15;;;;;;;;;;;;;;;:45;;;;10609:40;10627:21;10638:9;10627:6;:10;;:21;;;;:::i;:::-;10609:9;:13;10619:2;10609:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10593:9;:13;10603:2;10593:13;;;;;;;;;;;;;;;:56;;;;10680:2;10665:41;;10674:4;10665:41;;;10684:21;10695:9;10684:6;:10;;:21;;;;:::i;:::-;10665:41;;;;;;:::i;:::-;;;;;;;;7952:2762;;;7849:2865;;;:::o;1355:224::-;1475:7;1508:1;1503;:6;;1511:12;1495:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1535:9;1551:1;1547;:5;;;;:::i;:::-;1535:17;;1570:1;1563:8;;;1355:224;;;;;:::o;1587:246::-;1645:7;1674:1;1669;:6;1665:47;;1699:1;1692:8;;;;1665:47;1722:9;1738:1;1734;:5;;;;:::i;:::-;1722:17;;1767:1;1762;1758;:5;;;;:::i;:::-;:10;1750:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1824:1;1817:8;;;1587:246;;;;;:::o;1841:132::-;1899:7;1926:39;1930:1;1933;1926:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1919:46;;1841:132;;;;:::o;1024:179::-;1082:7;1102:9;1118:1;1114;:5;;;;:::i;:::-;1102:17;;1143:1;1138;:6;;1130:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1194:1;1187:8;;;1024:179;;;;:::o;13253:508::-;13319:21;13357:1;13343:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13319:40;;13388:4;13370;13375:1;13370:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13414:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13404:4;13409:1;13404:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;13450:62;13467:4;13482:15;;;;;;;;;;;13500:11;13450:8;:62::i;:::-;13526:15;;;;;;;;;;;:66;;;13607:11;13633:1;13677:4;13704;13724:15;13526:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:453;13253:508;:::o;12282:964::-;12422:18;12462:1;12443:15;;:21;;;;:::i;:::-;12422:42;;12479:30;12531:10;12512:15;;:30;;;;:::i;:::-;12479:63;;12577:1;12559:15;:19;;;;12607:22;12632:21;12607:46;;12668:40;12685:22;12668:16;:40::i;:::-;12725:31;12801:14;12759:21;:57;;;;:::i;:::-;12725:91;;12864:61;12881:4;12896:15;;;;;;;;;;;12914:10;12864:8;:61::i;:::-;12977:98;13008:10;13037:23;12977:12;:98::i;:::-;13097:141;13130:22;13171:23;13213:10;13097:141;;;;;;;;:::i;:::-;;;;;;;;12316:930;;;;12282:964::o;1211:136::-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1289:50;;1211:136;;;;:::o;1981:223::-;2101:7;2133:1;2129;:5;2136:12;2121:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2160:9;2176:1;2172;:5;;;;:::i;:::-;2160:17;;2195:1;2188:8;;;1981:223;;;;;:::o;13769:407::-;13907:15;;;;;;;;;;;:31;;;13946:9;13979:4;13999:11;14025:1;14068;4495:42;14155:2;14137:15;:20;;;;:::i;:::-;13907:261;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13769:407;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:329::-;4962:6;5011:2;4999:9;4990:7;4986:23;4982:32;4979:119;;;5017:79;;:::i;:::-;4979:119;5137:1;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5108:117;4903:329;;;;:::o;5238:118::-;5325:24;5343:5;5325:24;:::i;:::-;5320:3;5313:37;5238:118;;:::o;5362:222::-;5455:4;5493:2;5482:9;5478:18;5470:26;;5506:71;5574:1;5563:9;5559:17;5550:6;5506:71;:::i;:::-;5362:222;;;;:::o;5590:86::-;5625:7;5665:4;5658:5;5654:16;5643:27;;5590:86;;;:::o;5682:112::-;5765:22;5781:5;5765:22;:::i;:::-;5760:3;5753:35;5682:112;;:::o;5800:214::-;5889:4;5927:2;5916:9;5912:18;5904:26;;5940:67;6004:1;5993:9;5989:17;5980:6;5940:67;:::i;:::-;5800:214;;;;:::o;6020:104::-;6065:7;6094:24;6112:5;6094:24;:::i;:::-;6083:35;;6020:104;;;:::o;6130:142::-;6233:32;6259:5;6233:32;:::i;:::-;6228:3;6221:45;6130:142;;:::o;6278:254::-;6387:4;6425:2;6414:9;6410:18;6402:26;;6438:87;6522:1;6511:9;6507:17;6498:6;6438:87;:::i;:::-;6278:254;;;;:::o;6538:329::-;6597:6;6646:2;6634:9;6625:7;6621:23;6617:32;6614:119;;;6652:79;;:::i;:::-;6614:119;6772:1;6797:53;6842:7;6833:6;6822:9;6818:22;6797:53;:::i;:::-;6787:63;;6743:117;6538:329;;;;:::o;6873:474::-;6941:6;6949;6998:2;6986:9;6977:7;6973:23;6969:32;6966:119;;;7004:79;;:::i;:::-;6966:119;7124:1;7149:53;7194:7;7185:6;7174:9;7170:22;7149:53;:::i;:::-;7139:63;;7095:117;7251:2;7277:53;7322:7;7313:6;7302:9;7298:22;7277:53;:::i;:::-;7267:63;;7222:118;6873:474;;;;;:::o;7353:116::-;7423:21;7438:5;7423:21;:::i;:::-;7416:5;7413:32;7403:60;;7459:1;7456;7449:12;7403:60;7353:116;:::o;7475:133::-;7518:5;7556:6;7543:20;7534:29;;7572:30;7596:5;7572:30;:::i;:::-;7475:133;;;;:::o;7614:468::-;7679:6;7687;7736:2;7724:9;7715:7;7711:23;7707:32;7704:119;;;7742:79;;:::i;:::-;7704:119;7862:1;7887:53;7932:7;7923:6;7912:9;7908:22;7887:53;:::i;:::-;7877:63;;7833:117;7989:2;8015:50;8057:7;8048:6;8037:9;8033:22;8015:50;:::i;:::-;8005:60;;7960:115;7614:468;;;;;:::o;8088:182::-;8228:34;8224:1;8216:6;8212:14;8205:58;8088:182;:::o;8276:366::-;8418:3;8439:67;8503:2;8498:3;8439:67;:::i;:::-;8432:74;;8515:93;8604:3;8515:93;:::i;:::-;8633:2;8628:3;8624:12;8617:19;;8276:366;;;:::o;8648:419::-;8814:4;8852:2;8841:9;8837:18;8829:26;;8901:9;8895:4;8891:20;8887:1;8876:9;8872:17;8865:47;8929:131;9055:4;8929:131;:::i;:::-;8921:139;;8648:419;;;:::o;9073:220::-;9213:34;9209:1;9201:6;9197:14;9190:58;9282:3;9277:2;9269:6;9265:15;9258:28;9073:220;:::o;9299:366::-;9441:3;9462:67;9526:2;9521:3;9462:67;:::i;:::-;9455:74;;9538:93;9627:3;9538:93;:::i;:::-;9656:2;9651:3;9647:12;9640:19;;9299:366;;;:::o;9671:419::-;9837:4;9875:2;9864:9;9860:18;9852:26;;9924:9;9918:4;9914:20;9910:1;9899:9;9895:17;9888:47;9952:131;10078:4;9952:131;:::i;:::-;9944:139;;9671:419;;;:::o;10096:221::-;10236:34;10232:1;10224:6;10220:14;10213:58;10305:4;10300:2;10292:6;10288:15;10281:29;10096:221;:::o;10323:366::-;10465:3;10486:67;10550:2;10545:3;10486:67;:::i;:::-;10479:74;;10562:93;10651:3;10562:93;:::i;:::-;10680:2;10675:3;10671:12;10664:19;;10323:366;;;:::o;10695:419::-;10861:4;10899:2;10888:9;10884:18;10876:26;;10948:9;10942:4;10938:20;10934:1;10923:9;10919:17;10912:47;10976:131;11102:4;10976:131;:::i;:::-;10968:139;;10695:419;;;:::o;11120:172::-;11260:24;11256:1;11248:6;11244:14;11237:48;11120:172;:::o;11298:366::-;11440:3;11461:67;11525:2;11520:3;11461:67;:::i;:::-;11454:74;;11537:93;11626:3;11537:93;:::i;:::-;11655:2;11650:3;11646:12;11639:19;;11298:366;;;:::o;11670:419::-;11836:4;11874:2;11863:9;11859:18;11851:26;;11923:9;11917:4;11913:20;11909:1;11898:9;11894:17;11887:47;11951:131;12077:4;11951:131;:::i;:::-;11943:139;;11670:419;;;:::o;12095:164::-;12235:16;12231:1;12223:6;12219:14;12212:40;12095:164;:::o;12265:366::-;12407:3;12428:67;12492:2;12487:3;12428:67;:::i;:::-;12421:74;;12504:93;12593:3;12504:93;:::i;:::-;12622:2;12617:3;12613:12;12606:19;;12265:366;;;:::o;12637:419::-;12803:4;12841:2;12830:9;12826:18;12818:26;;12890:9;12884:4;12880:20;12876:1;12865:9;12861:17;12854:47;12918:131;13044:4;12918:131;:::i;:::-;12910:139;;12637:419;;;:::o;13062:223::-;13202:34;13198:1;13190:6;13186:14;13179:58;13271:6;13266:2;13258:6;13254:15;13247:31;13062:223;:::o;13291:366::-;13433:3;13454:67;13518:2;13513:3;13454:67;:::i;:::-;13447:74;;13530:93;13619:3;13530:93;:::i;:::-;13648:2;13643:3;13639:12;13632:19;;13291:366;;;:::o;13663:419::-;13829:4;13867:2;13856:9;13852:18;13844:26;;13916:9;13910:4;13906:20;13902:1;13891:9;13887:17;13880:47;13944:131;14070:4;13944:131;:::i;:::-;13936:139;;13663:419;;;:::o;14088:221::-;14228:34;14224:1;14216:6;14212:14;14205:58;14297:4;14292:2;14284:6;14280:15;14273:29;14088:221;:::o;14315:366::-;14457:3;14478:67;14542:2;14537:3;14478:67;:::i;:::-;14471:74;;14554:93;14643:3;14554:93;:::i;:::-;14672:2;14667:3;14663:12;14656:19;;14315:366;;;:::o;14687:419::-;14853:4;14891:2;14880:9;14876:18;14868:26;;14940:9;14934:4;14930:20;14926:1;14915:9;14911:17;14904:47;14968:131;15094:4;14968:131;:::i;:::-;14960:139;;14687:419;;;:::o;15112:224::-;15252:34;15248:1;15240:6;15236:14;15229:58;15321:7;15316:2;15308:6;15304:15;15297:32;15112:224;:::o;15342:366::-;15484:3;15505:67;15569:2;15564:3;15505:67;:::i;:::-;15498:74;;15581:93;15670:3;15581:93;:::i;:::-;15699:2;15694:3;15690:12;15683:19;;15342:366;;;:::o;15714:419::-;15880:4;15918:2;15907:9;15903:18;15895:26;;15967:9;15961:4;15957:20;15953:1;15942:9;15938:17;15931:47;15995:131;16121:4;15995:131;:::i;:::-;15987:139;;15714:419;;;:::o;16139:222::-;16279:34;16275:1;16267:6;16263:14;16256:58;16348:5;16343:2;16335:6;16331:15;16324:30;16139:222;:::o;16367:366::-;16509:3;16530:67;16594:2;16589:3;16530:67;:::i;:::-;16523:74;;16606:93;16695:3;16606:93;:::i;:::-;16724:2;16719:3;16715:12;16708:19;;16367:366;;;:::o;16739:419::-;16905:4;16943:2;16932:9;16928:18;16920:26;;16992:9;16986:4;16982:20;16978:1;16967:9;16963:17;16956:47;17020:131;17146:4;17020:131;:::i;:::-;17012:139;;16739:419;;;:::o;17164:228::-;17304:34;17300:1;17292:6;17288:14;17281:58;17373:11;17368:2;17360:6;17356:15;17349:36;17164:228;:::o;17398:366::-;17540:3;17561:67;17625:2;17620:3;17561:67;:::i;:::-;17554:74;;17637:93;17726:3;17637:93;:::i;:::-;17755:2;17750:3;17746:12;17739:19;;17398:366;;;:::o;17770:419::-;17936:4;17974:2;17963:9;17959:18;17951:26;;18023:9;18017:4;18013:20;18009:1;17998:9;17994:17;17987:47;18051:131;18177:4;18051:131;:::i;:::-;18043:139;;17770:419;;;:::o;18195:180::-;18243:77;18240:1;18233:88;18340:4;18337:1;18330:15;18364:4;18361:1;18354:15;18381:191;18421:3;18440:20;18458:1;18440:20;:::i;:::-;18435:25;;18474:20;18492:1;18474:20;:::i;:::-;18469:25;;18517:1;18514;18510:9;18503:16;;18538:3;18535:1;18532:10;18529:36;;;18545:18;;:::i;:::-;18529:36;18381:191;;;;:::o;18578:176::-;18718:28;18714:1;18706:6;18702:14;18695:52;18578:176;:::o;18760:366::-;18902:3;18923:67;18987:2;18982:3;18923:67;:::i;:::-;18916:74;;18999:93;19088:3;18999:93;:::i;:::-;19117:2;19112:3;19108:12;19101:19;;18760:366;;;:::o;19132:419::-;19298:4;19336:2;19325:9;19321:18;19313:26;;19385:9;19379:4;19375:20;19371:1;19360:9;19356:17;19349:47;19413:131;19539:4;19413:131;:::i;:::-;19405:139;;19132:419;;;:::o;19557:233::-;19596:3;19619:24;19637:5;19619:24;:::i;:::-;19610:33;;19665:66;19658:5;19655:77;19652:103;;19735:18;;:::i;:::-;19652:103;19782:1;19775:5;19771:13;19764:20;;19557:233;;;:::o;19796:194::-;19836:4;19856:20;19874:1;19856:20;:::i;:::-;19851:25;;19890:20;19908:1;19890:20;:::i;:::-;19885:25;;19934:1;19931;19927:9;19919:17;;19958:1;19952:4;19949:11;19946:37;;;19963:18;;:::i;:::-;19946:37;19796:194;;;;:::o;19996:410::-;20036:7;20059:20;20077:1;20059:20;:::i;:::-;20054:25;;20093:20;20111:1;20093:20;:::i;:::-;20088:25;;20148:1;20145;20141:9;20170:30;20188:11;20170:30;:::i;:::-;20159:41;;20349:1;20340:7;20336:15;20333:1;20330:22;20310:1;20303:9;20283:83;20260:139;;20379:18;;:::i;:::-;20260:139;20044:362;19996:410;;;;:::o;20412:180::-;20460:77;20457:1;20450:88;20557:4;20554:1;20547:15;20581:4;20578:1;20571:15;20598:185;20638:1;20655:20;20673:1;20655:20;:::i;:::-;20650:25;;20689:20;20707:1;20689:20;:::i;:::-;20684:25;;20728:1;20718:35;;20733:18;;:::i;:::-;20718:35;20775:1;20772;20768:9;20763:14;;20598:185;;;;:::o;20789:220::-;20929:34;20925:1;20917:6;20913:14;20906:58;20998:3;20993:2;20985:6;20981:15;20974:28;20789:220;:::o;21015:366::-;21157:3;21178:67;21242:2;21237:3;21178:67;:::i;:::-;21171:74;;21254:93;21343:3;21254:93;:::i;:::-;21372:2;21367:3;21363:12;21356:19;;21015:366;;;:::o;21387:419::-;21553:4;21591:2;21580:9;21576:18;21568:26;;21640:9;21634:4;21630:20;21626:1;21615:9;21611:17;21604:47;21668:131;21794:4;21668:131;:::i;:::-;21660:139;;21387:419;;;:::o;21812:177::-;21952:29;21948:1;21940:6;21936:14;21929:53;21812:177;:::o;21995:366::-;22137:3;22158:67;22222:2;22217:3;22158:67;:::i;:::-;22151:74;;22234:93;22323:3;22234:93;:::i;:::-;22352:2;22347:3;22343:12;22336:19;;21995:366;;;:::o;22367:419::-;22533:4;22571:2;22560:9;22556:18;22548:26;;22620:9;22614:4;22610:20;22606:1;22595:9;22591:17;22584:47;22648:131;22774:4;22648:131;:::i;:::-;22640:139;;22367:419;;;:::o;22792:180::-;22840:77;22837:1;22830:88;22937:4;22934:1;22927:15;22961:4;22958:1;22951:15;22978:180;23026:77;23023:1;23016:88;23123:4;23120:1;23113:15;23147:4;23144:1;23137:15;23164:143;23221:5;23252:6;23246:13;23237:22;;23268:33;23295:5;23268:33;:::i;:::-;23164:143;;;;:::o;23313:351::-;23383:6;23432:2;23420:9;23411:7;23407:23;23403:32;23400:119;;;23438:79;;:::i;:::-;23400:119;23558:1;23583:64;23639:7;23630:6;23619:9;23615:22;23583:64;:::i;:::-;23573:74;;23529:128;23313:351;;;;:::o;23670:85::-;23715:7;23744:5;23733:16;;23670:85;;;:::o;23761:60::-;23789:3;23810:5;23803:12;;23761:60;;;:::o;23827:158::-;23885:9;23918:61;23936:42;23945:32;23971:5;23945:32;:::i;:::-;23936:42;:::i;:::-;23918:61;:::i;:::-;23905:74;;23827:158;;;:::o;23991:147::-;24086:45;24125:5;24086:45;:::i;:::-;24081:3;24074:58;23991:147;;:::o;24144:114::-;24211:6;24245:5;24239:12;24229:22;;24144:114;;;:::o;24264:184::-;24363:11;24397:6;24392:3;24385:19;24437:4;24432:3;24428:14;24413:29;;24264:184;;;;:::o;24454:132::-;24521:4;24544:3;24536:11;;24574:4;24569:3;24565:14;24557:22;;24454:132;;;:::o;24592:108::-;24669:24;24687:5;24669:24;:::i;:::-;24664:3;24657:37;24592:108;;:::o;24706:179::-;24775:10;24796:46;24838:3;24830:6;24796:46;:::i;:::-;24874:4;24869:3;24865:14;24851:28;;24706:179;;;;:::o;24891:113::-;24961:4;24993;24988:3;24984:14;24976:22;;24891:113;;;:::o;25040:732::-;25159:3;25188:54;25236:5;25188:54;:::i;:::-;25258:86;25337:6;25332:3;25258:86;:::i;:::-;25251:93;;25368:56;25418:5;25368:56;:::i;:::-;25447:7;25478:1;25463:284;25488:6;25485:1;25482:13;25463:284;;;25564:6;25558:13;25591:63;25650:3;25635:13;25591:63;:::i;:::-;25584:70;;25677:60;25730:6;25677:60;:::i;:::-;25667:70;;25523:224;25510:1;25507;25503:9;25498:14;;25463:284;;;25467:14;25763:3;25756:10;;25164:608;;;25040:732;;;;:::o;25778:831::-;26041:4;26079:3;26068:9;26064:19;26056:27;;26093:71;26161:1;26150:9;26146:17;26137:6;26093:71;:::i;:::-;26174:80;26250:2;26239:9;26235:18;26226:6;26174:80;:::i;:::-;26301:9;26295:4;26291:20;26286:2;26275:9;26271:18;26264:48;26329:108;26432:4;26423:6;26329:108;:::i;:::-;26321:116;;26447:72;26515:2;26504:9;26500:18;26491:6;26447:72;:::i;:::-;26529:73;26597:3;26586:9;26582:19;26573:6;26529:73;:::i;:::-;25778:831;;;;;;;;:::o;26615:442::-;26764:4;26802:2;26791:9;26787:18;26779:26;;26815:71;26883:1;26872:9;26868:17;26859:6;26815:71;:::i;:::-;26896:72;26964:2;26953:9;26949:18;26940:6;26896:72;:::i;:::-;26978;27046:2;27035:9;27031:18;27022:6;26978:72;:::i;:::-;26615:442;;;;;;:::o;27063:807::-;27312:4;27350:3;27339:9;27335:19;27327:27;;27364:71;27432:1;27421:9;27417:17;27408:6;27364:71;:::i;:::-;27445:72;27513:2;27502:9;27498:18;27489:6;27445:72;:::i;:::-;27527:80;27603:2;27592:9;27588:18;27579:6;27527:80;:::i;:::-;27617;27693:2;27682:9;27678:18;27669:6;27617:80;:::i;:::-;27707:73;27775:3;27764:9;27760:19;27751:6;27707:73;:::i;:::-;27790;27858:3;27847:9;27843:19;27834:6;27790:73;:::i;:::-;27063:807;;;;;;;;;:::o;27876:143::-;27933:5;27964:6;27958:13;27949:22;;27980:33;28007:5;27980:33;:::i;:::-;27876:143;;;;:::o;28025:663::-;28113:6;28121;28129;28178:2;28166:9;28157:7;28153:23;28149:32;28146:119;;;28184:79;;:::i;:::-;28146:119;28304:1;28329:64;28385:7;28376:6;28365:9;28361:22;28329:64;:::i;:::-;28319:74;;28275:128;28442:2;28468:64;28524:7;28515:6;28504:9;28500:22;28468:64;:::i;:::-;28458:74;;28413:129;28581:2;28607:64;28663:7;28654:6;28643:9;28639:22;28607:64;:::i;:::-;28597:74;;28552:129;28025:663;;;;;:::o

Swarm Source

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