ETH Price: $1,933.08 (-1.27%)

Token

ArbiBonk (ABONK)

Overview

Max Total Supply

100,000,000 ABONK

Holders

252

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
ArbiBonk

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-01-17
*/

// SPDX-License-Identifier: MIT

/*

-----------ArbiBonk-----------

The first Dog Coin on Arbitrum for the people and by the people 

Telegram: https://t.me/ArbiBonk

Twitter: https://twitter.com/ArbiBonk_

Medium: https://medium.com/@arbitrumbonk
*/


pragma solidity ^0.8.9;

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function 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);
}


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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract ArbiBonk is ERC20, Ownable {
    string private _name = "ArbiBonk";
    string private _symbol = "ABONK";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 100000000 * 10**_decimals;

    uint256 public _maxWalletSize = (_totalSupply * 20) / 1000; // 2% 

    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) _allowances;
    mapping(address => bool) isFeeExempt;
    mapping(address => bool) isWalletLimitExempt;

    // Fee receiver
    uint256 public DevFeeBuy = 20;
    uint256 public LiqFeeBuy = 20;
    uint256 public MarketingFeeBuy = 20;

    uint256 public DevFeeSell = 20;
    uint256 public LiqFeeSell = 20;
    uint256 public MarketingFeeSell = 20;


    uint256 public TotalBase =
        DevFeeBuy +
            DevFeeSell +
            LiqFeeBuy +
            LiqFeeSell +
            MarketingFeeBuy +
            MarketingFeeSell;

    address public BuyBackWallet;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;

    address public autoLiquidityReceiver;
    address public MarketingWallet;

    IUniswapV2Router02 public router;
    address public pair;

    bool public isTradingEnabled = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = (_totalSupply / 10000) * 3; // 0.3%

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

    constructor(address _MarketingWallet) Ownable(){
        router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); //sushiswap
        pair = IUniswapV2Factory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );
        _allowances[address(this)][address(router)] = type(uint256).max;

        MarketingWallet = _MarketingWallet;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[MarketingWallet] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[MarketingWallet] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[pair] = true;
        isWalletLimitExempt[0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506] = true; //sushiswap

        autoLiquidityReceiver = msg.sender;

       
        _balances[msg.sender] = _totalSupply * 100 / 100;

        emit Transfer(address(0), msg.sender, _totalSupply * 100 / 100);
    }
    
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external view override returns (string memory) { return _symbol; }
    function name() external view override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
    receive() external payable { }

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

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }
    function setMaxWallet(uint256 _maxWalletSize_) external onlyOwner {
        require(
            _maxWalletSize_ >= _totalSupply / 1000,
            "Can't set MaxWallet below 0.1%"
        );
        _maxWalletSize = _maxWalletSize_;
    }

    function setFeesWallet(address _MarketingWallet) external onlyOwner {
        MarketingWallet = _MarketingWallet;
        isFeeExempt[MarketingWallet] = true;

        isWalletLimitExempt[MarketingWallet] = true;        
    }

    function setIsWalletLimitExempt(address holder, bool exempt)
        external
        onlyOwner
    {
        isWalletLimitExempt[holder] = exempt; // Exempt from max wallet
    }

    function setSwapEnabled(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }


    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(
            isFeeExempt[sender] || isFeeExempt[recipient] || isTradingEnabled,
            "Not authorized to trade yet"
        );

        // Checks max transaction limit
        if (
            sender != owner() &&
            recipient != owner() &&
            recipient != DEAD &&
            recipient != pair
        ) {
            require(
                isWalletLimitExempt[recipient] ||
                    (_balances[recipient] + amount <= _maxWalletSize),
                "Transfer amount exceeds the MaxWallet size."
            );
        }
        //shouldSwapBack
        if (shouldSwapBack() && recipient == pair) {
            swapBack();
        }

        _balances[sender] = _balances[sender] - amount;

        //Check if should Take Fee
        uint256 amountReceived = (!shouldTakeFee(sender) ||
            !shouldTakeFee(recipient))
            ? amount
            : takeFee(sender, recipient, amount);
        _balances[recipient] = _balances[recipient] + (amountReceived);

        emit Transfer(sender, recipient, amountReceived);

        return true;
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[recipient] = _balances[recipient] + (amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeLiq = 0;
        uint256 feeDev = 0;
        uint256 feeMarketing = 0;
        uint256 feeAmount = 0;

        if (sender == pair && recipient != pair) {
            // <=> buy
            feeDev = amount * DevFeeBuy / 1000;
            feeMarketing = amount * MarketingFeeBuy / 1000;
            feeLiq = amount * LiqFeeBuy / 1000;
        }
        if (sender != pair && recipient == pair) {
            // <=> sell
            feeDev = amount * DevFeeSell / 1000;
            feeMarketing = amount * MarketingFeeSell / 1000;
            feeLiq = amount * LiqFeeSell / 1000;
        }

        feeAmount = feeLiq + feeDev + feeMarketing;

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

        return amount - (feeAmount);
    
    }

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

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

    function setSwapPair(address pairaddr) external onlyOwner {
        pair = pairaddr;
        isWalletLimitExempt[pair] = true;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        require(_amount >= 1, "Can't set SwapThreshold to ZERO");
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

     function setIsTradingEnabled(bool _isTradingEnabled) public onlyOwner{
        isTradingEnabled = _isTradingEnabled;
    }


    function setFees(
        uint256 _DevFeeBuy,
        uint256 _DevFeeSell,
        uint256 _LiqFeeBuy,
        uint256 _LiqFeeSell,
        uint256 _MarketingFeeBuy,
        uint256 _MarketingFeeSell
    ) external onlyOwner {
        require(
            _DevFeeBuy + _LiqFeeBuy + _MarketingFeeBuy <= 300 &&
                _DevFeeSell + _LiqFeeSell + _MarketingFeeSell <= 300,
            "Total fees must be equal to or less than 30%"
        );

        DevFeeBuy = _DevFeeBuy;
        LiqFeeBuy = _LiqFeeBuy;
        MarketingFeeBuy = _MarketingFeeBuy;

        DevFeeSell = _DevFeeSell;
        LiqFeeSell = _LiqFeeSell;
        MarketingFeeSell = _MarketingFeeSell;

    TotalBase =
        DevFeeBuy +
        DevFeeSell +
        LiqFeeBuy +
        LiqFeeSell +
        MarketingFeeBuy +
        MarketingFeeSell;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function swapBack() internal swapping {
        uint256 amountToLiq = (balanceOf(address(this)) *
            (LiqFeeBuy + LiqFeeSell)) / (2 * TotalBase);
        uint256 amountToSwap = balanceOf(address(this)) - amountToLiq;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp + 5 minutes
        );

        uint256 amountETH = address(this).balance;
        uint256 amountETHLiquidity = amountETH * (LiqFeeBuy + LiqFeeSell) / (2 * TotalBase);
        uint256 amountETHMarketing = amountETH - amountETHLiquidity;

        if(amountETHMarketing>0){
            bool tmpSuccess;
            (tmpSuccess,) = payable(MarketingWallet).call{value: amountETHMarketing, gas: 30000}("");
        }

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

Contract Security Audit

Contract ABI

API
[{"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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BuyBackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DevFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiqFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LiqFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TotalBase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_DevFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_DevFeeSell","type":"uint256"},{"internalType":"uint256","name":"_LiqFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_LiqFeeSell","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeBuy","type":"uint256"},{"internalType":"uint256","name":"_MarketingFeeSell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_MarketingWallet","type":"address"}],"name":"setFeesWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isTradingEnabled","type":"bool"}],"name":"setIsTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWalletSize_","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600881526020017f41726269426f6e6b000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000ab6565b506040518060400160405280600581526020017f41424f4e4b000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000ab6565b506009600a620000b0919062000d00565b6305f5e100620000c1919062000d51565b6003556103e86014600354620000d8919062000d51565b620000e4919062000de1565b60045560146009556014600a556014600b556014600c556014600d556014600e55600e54600b54600d54600a54600c5460095462000123919062000e19565b6200012f919062000e19565b6200013b919062000e19565b62000147919062000e19565b62000153919062000e19565b600f5560006014806101000a81548160ff0219169083151502179055506001601460156101000a81548160ff02191690831515021790555060036127106003546200019f919062000de1565b620001ab919062000d51565b601555348015620001bb57600080fd5b50604051620047b9380380620047b98339818101604052810190620001e1919062000ee0565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350731b02da8cb0d097eb8d57a175b88c7d8b47997506601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200034057600080fd5b505afa15801562000355573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037b919062000ee0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003ff57600080fd5b505afa15801562000414573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200043a919062000ee0565b306040518363ffffffff1660e01b81526004016200045a92919062000f23565b602060405180830381600087803b1580156200047557600080fd5b505af11580156200048a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b0919062000ee0565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000731b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606480600354620009db919062000d51565b620009e7919062000de1565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60648060035462000a8c919062000d51565b62000a98919062000de1565b60405162000aa7919062000f61565b60405180910390a35062000fe3565b82805462000ac49062000fad565b90600052602060002090601f01602090048101928262000ae8576000855562000b34565b82601f1062000b0357805160ff191683800117855562000b34565b8280016001018555821562000b34579182015b8281111562000b3357825182559160200191906001019062000b16565b5b50905062000b43919062000b47565b5090565b5b8082111562000b6257600081600090555060010162000b48565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bf45780860481111562000bcc5762000bcb62000b66565b5b600185161562000bdc5780820291505b808102905062000bec8562000b95565b945062000bac565b94509492505050565b60008262000c0f576001905062000ce2565b8162000c1f576000905062000ce2565b816001811462000c38576002811462000c435762000c79565b600191505062000ce2565b60ff84111562000c585762000c5762000b66565b5b8360020a91508482111562000c725762000c7162000b66565b5b5062000ce2565b5060208310610133831016604e8410600b841016171562000cb35782820a90508381111562000cad5762000cac62000b66565b5b62000ce2565b62000cc2848484600162000ba2565b9250905081840481111562000cdc5762000cdb62000b66565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d0d8262000ce9565b915062000d1a8362000cf3565b925062000d497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bfd565b905092915050565b600062000d5e8262000ce9565b915062000d6b8362000ce9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000da75762000da662000b66565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dee8262000ce9565b915062000dfb8362000ce9565b92508262000e0e5762000e0d62000db2565b5b828204905092915050565b600062000e268262000ce9565b915062000e338362000ce9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e6b5762000e6a62000b66565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ea88262000e7b565b9050919050565b62000eba8162000e9b565b811462000ec657600080fd5b50565b60008151905062000eda8162000eaf565b92915050565b60006020828403121562000ef95762000ef862000e76565b5b600062000f098482850162000ec9565b91505092915050565b62000f1d8162000e9b565b82525050565b600060408201905062000f3a600083018562000f12565b62000f49602083018462000f12565b9392505050565b62000f5b8162000ce9565b82525050565b600060208201905062000f78600083018462000f50565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000fc657607f821691505b6020821081141562000fdd5762000fdc62000f7e565b5b50919050565b6137c68062000ff36000396000f3fe6080604052600436106102295760003560e01c80636e94312d11610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e146107f8578063df20fd4914610835578063e01af92c1461085e578063f2fde38b14610887578063f887ea40146108b057610230565b8063a8aa1b311461070f578063a9059cbb1461073a578063b1be427114610777578063ca33e64c146107a2578063da235459146107cd57610230565b806373a432bb116100f257806373a432bb1461063c57806386f6c3c1146106655780638da5cb5b1461068e5780638f9a55c0146106b957806395d89b41146106e457610230565b80636e94312d146105925780636fc76935146105bd57806370a08231146105e8578063715018a61461062557610230565b806343d4f92b116101b15780635d0044ca116101755780635d0044ca146104bf5780636295c649146104e8578063658d4b7f14610513578063674907cc1461053c5780636ddd17131461056757610230565b806343d4f92b146103da5780634cea44b514610403578063559ef2251461042e578063571ac8b0146104575780635be0499b1461049457610230565b806318160ddd116101f857806318160ddd146102f35780632198cf6c1461031e57806323b872dd146103475780632598cdb214610384578063313ce567146103af57610230565b80630445b66714610235578063064a59d01461026057806306fdde031461028b578063095ea7b3146102b657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108db565b6040516102579190612a48565b60405180910390f35b34801561026c57600080fd5b506102756108e1565b6040516102829190612a7e565b60405180910390f35b34801561029757600080fd5b506102a06108f2565b6040516102ad9190612b32565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612be3565b610984565b6040516102ea9190612a7e565b60405180910390f35b3480156102ff57600080fd5b50610308610a76565b6040516103159190612a48565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190612c4f565b610a80565b005b34801561035357600080fd5b5061036e60048036038101906103699190612c8f565b610b69565b60405161037b9190612a7e565b60405180910390f35b34801561039057600080fd5b50610399610d2b565b6040516103a69190612cf1565b60405180910390f35b3480156103bb57600080fd5b506103c4610d51565b6040516103d19190612d28565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190612d43565b610d5a565b005b34801561040f57600080fd5b50610418610f20565b6040516104259190612a48565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612d70565b610f26565b005b34801561046357600080fd5b5061047e60048036038101906104799190612d43565b610fd0565b60405161048b9190612a7e565b60405180910390f35b3480156104a057600080fd5b506104a9611003565b6040516104b69190612a48565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190612d9d565b611009565b005b3480156104f457600080fd5b506104fd6110f3565b60405161050a9190612a48565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612c4f565b6110f9565b005b34801561054857600080fd5b506105516111e2565b60405161055e9190612a48565b60405180910390f35b34801561057357600080fd5b5061057c6111e8565b6040516105899190612a7e565b60405180910390f35b34801561059e57600080fd5b506105a76111fb565b6040516105b49190612cf1565b60405180910390f35b3480156105c957600080fd5b506105d2611221565b6040516105df9190612a48565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190612d43565b611227565b60405161061c9190612a48565b60405180910390f35b34801561063157600080fd5b5061063a611270565b005b34801561064857600080fd5b50610663600480360381019061065e9190612d43565b6113bc565b005b34801561067157600080fd5b5061068c60048036038101906106879190612dca565b611508565b005b34801561069a57600080fd5b506106a3611691565b6040516106b09190612cf1565b60405180910390f35b3480156106c557600080fd5b506106ce6116ba565b6040516106db9190612a48565b60405180910390f35b3480156106f057600080fd5b506106f96116c0565b6040516107069190612b32565b60405180910390f35b34801561071b57600080fd5b50610724611752565b6040516107319190612cf1565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612be3565b611778565b60405161076e9190612a7e565b60405180910390f35b34801561078357600080fd5b5061078c61178d565b6040516107999190612a48565b60405180910390f35b3480156107ae57600080fd5b506107b7611793565b6040516107c49190612cf1565b60405180910390f35b3480156107d957600080fd5b506107e26117b9565b6040516107ef9190612a48565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190612e57565b6117bf565b60405161082c9190612a48565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190612e97565b611846565b005b34801561086a57600080fd5b5061088560048036038101906108809190612d70565b61193d565b005b34801561089357600080fd5b506108ae60048036038101906108a99190612d43565b6119e8565b005b3480156108bc57600080fd5b506108c5611ba3565b6040516108d29190612f36565b60405180910390f35b60155481565b60148054906101000a900460ff1681565b60606001805461090190612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90612f80565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a649190612a48565b60405180910390a36001905092915050565b6000600354905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612ffe565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d175781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c96919061304d565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d22848484611bc9565b90509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf90612ffe565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90612ffe565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b6000610ffc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610984565b9050919050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612ffe565b60405180910390fd5b6103e86003546110a791906130b0565b8110156110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e09061312d565b60405180910390fd5b8060048190555050565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612ffe565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601460159054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190612ffe565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90612ffe565b60405180910390fd5b61012c8285886115a6919061314d565b6115b0919061314d565b111580156115d6575061012c8184876115c9919061314d565b6115d3919061314d565b11155b611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613215565b60405180910390fd5b8560098190555083600a8190555081600b8190555084600c8190555082600d8190555080600e81905550600e54600b54600d54600a54600c5460095461165b919061314d565b611665919061314d565b61166f919061314d565b611679919061314d565b611683919061314d565b600f81905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b6060600280546116cf90612f80565b80601f01602080910402602001604051908101604052809291908181526020018280546116fb90612f80565b80156117485780601f1061171d57610100808354040283529160200191611748565b820191906000526020600020905b81548152906001019060200180831161172b57829003601f168201915b5050505050905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611785338484611bc9565b905092915050565b600e5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612ffe565b60405180910390fd5b6001811015611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90613281565b60405180910390fd5b81601460156101000a81548160ff021916908315150217905550806015819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c290612ffe565b60405180910390fd5b80601460156101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906132ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c81575060148054906101000a900460ff165b611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613359565b60405180910390fd5b611cc8611691565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d365750611d06611691565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d70575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e73575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e70919061314d565b11155b611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea9906133eb565b60405180910390fd5b5b611ebb6120e4565b8015611f145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f2257611f216121bb565b5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6d919061304d565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611fbb8561268d565b1580611fcd5750611fcb8461268d565b155b611fe157611fdc8585856126e4565b611fe3565b825b905080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612030919061314d565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120d09190612a48565b60405180910390a360019150509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121515750601660009054906101000a900460ff16155b80156121695750601460159054906101000a900460ff165b80156121b65750601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000600f5460026121e7919061340b565b600d54600a546121f7919061314d565b61220030611227565b61220a919061340b565b61221491906130b0565b905060008161222230611227565b61222c919061304d565b90506000600267ffffffffffffffff81111561224b5761224a613465565b5b6040519080825280602002602001820160405280156122795781602001602082028036833780820191505090505b509050308160008151811061229157612290613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561233357600080fd5b505afa158015612347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236b91906134d8565b8160018151811061237f5761237e613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000843061012c4261240a919061314d565b6040518663ffffffff1660e01b815260040161242a9594939291906135fe565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b5050505060004790506000600f546002612472919061340b565b600d54600a54612482919061314d565b8361248d919061340b565b61249791906130b0565b9050600081836124a7919061304d565b90506000811115612549576000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516124fe90613689565b600060405180830381858888f193505050503d806000811461253c576040519150601f19603f3d011682016040523d82523d6000602084013e612541565b606091505b505080915050505b600086111561266a57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833089600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125db9695949392919061369e565b6060604051808303818588803b1580156125f457600080fd5b505af1158015612608573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061262d9190613714565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068287604051612661929190613767565b60405180910390a15b5050505050506000601660006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600090506000806000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614801561279b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156127f8576103e8600954876127b1919061340b565b6127bb91906130b0565b92506103e8600b54876127ce919061340b565b6127d891906130b0565b91506103e8600a54876127eb919061340b565b6127f591906130b0565b93505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156128a35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15612900576103e8600c54876128b9919061340b565b6128c391906130b0565b92506103e8600e54876128d6919061340b565b6128e091906130b0565b91506103e8600d54876128f3919061340b565b6128fd91906130b0565b93505b81838561290d919061314d565b612917919061314d565b90506000841115612a165780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d919061314d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a0d9190612a48565b60405180910390a35b8086612a22919061304d565b9450505050509392505050565b6000819050919050565b612a4281612a2f565b82525050565b6000602082019050612a5d6000830184612a39565b92915050565b60008115159050919050565b612a7881612a63565b82525050565b6000602082019050612a936000830184612a6f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ad3578082015181840152602081019050612ab8565b83811115612ae2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b0482612a99565b612b0e8185612aa4565b9350612b1e818560208601612ab5565b612b2781612ae8565b840191505092915050565b60006020820190508181036000830152612b4c8184612af9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8482612b59565b9050919050565b612b9481612b79565b8114612b9f57600080fd5b50565b600081359050612bb181612b8b565b92915050565b612bc081612a2f565b8114612bcb57600080fd5b50565b600081359050612bdd81612bb7565b92915050565b60008060408385031215612bfa57612bf9612b54565b5b6000612c0885828601612ba2565b9250506020612c1985828601612bce565b9150509250929050565b612c2c81612a63565b8114612c3757600080fd5b50565b600081359050612c4981612c23565b92915050565b60008060408385031215612c6657612c65612b54565b5b6000612c7485828601612ba2565b9250506020612c8585828601612c3a565b9150509250929050565b600080600060608486031215612ca857612ca7612b54565b5b6000612cb686828701612ba2565b9350506020612cc786828701612ba2565b9250506040612cd886828701612bce565b9150509250925092565b612ceb81612b79565b82525050565b6000602082019050612d066000830184612ce2565b92915050565b600060ff82169050919050565b612d2281612d0c565b82525050565b6000602082019050612d3d6000830184612d19565b92915050565b600060208284031215612d5957612d58612b54565b5b6000612d6784828501612ba2565b91505092915050565b600060208284031215612d8657612d85612b54565b5b6000612d9484828501612c3a565b91505092915050565b600060208284031215612db357612db2612b54565b5b6000612dc184828501612bce565b91505092915050565b60008060008060008060c08789031215612de757612de6612b54565b5b6000612df589828a01612bce565b9650506020612e0689828a01612bce565b9550506040612e1789828a01612bce565b9450506060612e2889828a01612bce565b9350506080612e3989828a01612bce565b92505060a0612e4a89828a01612bce565b9150509295509295509295565b60008060408385031215612e6e57612e6d612b54565b5b6000612e7c85828601612ba2565b9250506020612e8d85828601612ba2565b9150509250929050565b60008060408385031215612eae57612ead612b54565b5b6000612ebc85828601612c3a565b9250506020612ecd85828601612bce565b9150509250929050565b6000819050919050565b6000612efc612ef7612ef284612b59565b612ed7565b612b59565b9050919050565b6000612f0e82612ee1565b9050919050565b6000612f2082612f03565b9050919050565b612f3081612f15565b82525050565b6000602082019050612f4b6000830184612f27565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f9857607f821691505b60208210811415612fac57612fab612f51565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612fe8600683612aa4565b9150612ff382612fb2565b602082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305882612a2f565b915061306383612a2f565b9250828210156130765761307561301e565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130bb82612a2f565b91506130c683612a2f565b9250826130d6576130d5613081565b5b828204905092915050565b7f43616e277420736574204d617857616c6c65742062656c6f7720302e31250000600082015250565b6000613117601e83612aa4565b9150613122826130e1565b602082019050919050565b600060208201905081810360008301526131468161310a565b9050919050565b600061315882612a2f565b915061316383612a2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131985761319761301e565b5b828201905092915050565b7f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60008201527f657373207468616e203330250000000000000000000000000000000000000000602082015250565b60006131ff602c83612aa4565b915061320a826131a3565b604082019050919050565b6000602082019050818103600083015261322e816131f2565b9050919050565b7f43616e27742073657420537761705468726573686f6c6420746f205a45524f00600082015250565b600061326b601f83612aa4565b915061327682613235565b602082019050919050565b6000602082019050818103600083015261329a8161325e565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006132d7600883612aa4565b91506132e2826132a1565b602082019050919050565b60006020820190508181036000830152613306816132ca565b9050919050565b7f4e6f7420617574686f72697a656420746f207472616465207965740000000000600082015250565b6000613343601b83612aa4565b915061334e8261330d565b602082019050919050565b6000602082019050818103600083015261337281613336565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d61785760008201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b60006133d5602b83612aa4565b91506133e082613379565b604082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b600061341682612a2f565b915061342183612a2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561345a5761345961301e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506134d281612b8b565b92915050565b6000602082840312156134ee576134ed612b54565b5b60006134fc848285016134c3565b91505092915050565b6000819050919050565b600061352a61352561352084613505565b612ed7565b612a2f565b9050919050565b61353a8161350f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61357581612b79565b82525050565b6000613587838361356c565b60208301905092915050565b6000602082019050919050565b60006135ab82613540565b6135b5818561354b565b93506135c08361355c565b8060005b838110156135f15781516135d8888261357b565b97506135e383613593565b9250506001810190506135c4565b5085935050505092915050565b600060a0820190506136136000830188612a39565b6136206020830187613531565b818103604083015261363281866135a0565b90506136416060830185612ce2565b61364e6080830184612a39565b9695505050505050565b600081905092915050565b50565b6000613673600083613658565b915061367e82613663565b600082019050919050565b600061369482613666565b9150819050919050565b600060c0820190506136b36000830189612ce2565b6136c06020830188612a39565b6136cd6040830187613531565b6136da6060830186613531565b6136e76080830185612ce2565b6136f460a0830184612a39565b979650505050505050565b60008151905061370e81612bb7565b92915050565b60008060006060848603121561372d5761372c612b54565b5b600061373b868287016136ff565b935050602061374c868287016136ff565b925050604061375d868287016136ff565b9150509250925092565b600060408201905061377c6000830185612a39565b6137896020830184612a39565b939250505056fea264697066735822122034b024f007da6c3c98696ef6b7b8e757622a7d55b22a82b16516d116f64b363364736f6c63430008090033000000000000000000000000f5d06f7cfc539b8ef4252fe87bb524d0c8897cb3

Deployed Bytecode

0x6080604052600436106102295760003560e01c80636e94312d11610123578063a8aa1b31116100ab578063dd62ed3e1161006f578063dd62ed3e146107f8578063df20fd4914610835578063e01af92c1461085e578063f2fde38b14610887578063f887ea40146108b057610230565b8063a8aa1b311461070f578063a9059cbb1461073a578063b1be427114610777578063ca33e64c146107a2578063da235459146107cd57610230565b806373a432bb116100f257806373a432bb1461063c57806386f6c3c1146106655780638da5cb5b1461068e5780638f9a55c0146106b957806395d89b41146106e457610230565b80636e94312d146105925780636fc76935146105bd57806370a08231146105e8578063715018a61461062557610230565b806343d4f92b116101b15780635d0044ca116101755780635d0044ca146104bf5780636295c649146104e8578063658d4b7f14610513578063674907cc1461053c5780636ddd17131461056757610230565b806343d4f92b146103da5780634cea44b514610403578063559ef2251461042e578063571ac8b0146104575780635be0499b1461049457610230565b806318160ddd116101f857806318160ddd146102f35780632198cf6c1461031e57806323b872dd146103475780632598cdb214610384578063313ce567146103af57610230565b80630445b66714610235578063064a59d01461026057806306fdde031461028b578063095ea7b3146102b657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108db565b6040516102579190612a48565b60405180910390f35b34801561026c57600080fd5b506102756108e1565b6040516102829190612a7e565b60405180910390f35b34801561029757600080fd5b506102a06108f2565b6040516102ad9190612b32565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612be3565b610984565b6040516102ea9190612a7e565b60405180910390f35b3480156102ff57600080fd5b50610308610a76565b6040516103159190612a48565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190612c4f565b610a80565b005b34801561035357600080fd5b5061036e60048036038101906103699190612c8f565b610b69565b60405161037b9190612a7e565b60405180910390f35b34801561039057600080fd5b50610399610d2b565b6040516103a69190612cf1565b60405180910390f35b3480156103bb57600080fd5b506103c4610d51565b6040516103d19190612d28565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190612d43565b610d5a565b005b34801561040f57600080fd5b50610418610f20565b6040516104259190612a48565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612d70565b610f26565b005b34801561046357600080fd5b5061047e60048036038101906104799190612d43565b610fd0565b60405161048b9190612a7e565b60405180910390f35b3480156104a057600080fd5b506104a9611003565b6040516104b69190612a48565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190612d9d565b611009565b005b3480156104f457600080fd5b506104fd6110f3565b60405161050a9190612a48565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190612c4f565b6110f9565b005b34801561054857600080fd5b506105516111e2565b60405161055e9190612a48565b60405180910390f35b34801561057357600080fd5b5061057c6111e8565b6040516105899190612a7e565b60405180910390f35b34801561059e57600080fd5b506105a76111fb565b6040516105b49190612cf1565b60405180910390f35b3480156105c957600080fd5b506105d2611221565b6040516105df9190612a48565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190612d43565b611227565b60405161061c9190612a48565b60405180910390f35b34801561063157600080fd5b5061063a611270565b005b34801561064857600080fd5b50610663600480360381019061065e9190612d43565b6113bc565b005b34801561067157600080fd5b5061068c60048036038101906106879190612dca565b611508565b005b34801561069a57600080fd5b506106a3611691565b6040516106b09190612cf1565b60405180910390f35b3480156106c557600080fd5b506106ce6116ba565b6040516106db9190612a48565b60405180910390f35b3480156106f057600080fd5b506106f96116c0565b6040516107069190612b32565b60405180910390f35b34801561071b57600080fd5b50610724611752565b6040516107319190612cf1565b60405180910390f35b34801561074657600080fd5b50610761600480360381019061075c9190612be3565b611778565b60405161076e9190612a7e565b60405180910390f35b34801561078357600080fd5b5061078c61178d565b6040516107999190612a48565b60405180910390f35b3480156107ae57600080fd5b506107b7611793565b6040516107c49190612cf1565b60405180910390f35b3480156107d957600080fd5b506107e26117b9565b6040516107ef9190612a48565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a9190612e57565b6117bf565b60405161082c9190612a48565b60405180910390f35b34801561084157600080fd5b5061085c60048036038101906108579190612e97565b611846565b005b34801561086a57600080fd5b5061088560048036038101906108809190612d70565b61193d565b005b34801561089357600080fd5b506108ae60048036038101906108a99190612d43565b6119e8565b005b3480156108bc57600080fd5b506108c5611ba3565b6040516108d29190612f36565b60405180910390f35b60155481565b60148054906101000a900460ff1681565b60606001805461090190612f80565b80601f016020809104026020016040519081016040528092919081815260200182805461092d90612f80565b801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a649190612a48565b60405180910390a36001905092915050565b6000600354905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612ffe565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d175781600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c96919061304d565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d22848484611bc9565b90509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf90612ffe565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fab90612ffe565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b6000610ffc827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610984565b9050919050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e90612ffe565b60405180910390fd5b6103e86003546110a791906130b0565b8110156110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e09061312d565b60405180910390fd5b8060048190555050565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117e90612ffe565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601460159054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f590612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190612ffe565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158d90612ffe565b60405180910390fd5b61012c8285886115a6919061314d565b6115b0919061314d565b111580156115d6575061012c8184876115c9919061314d565b6115d3919061314d565b11155b611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613215565b60405180910390fd5b8560098190555083600a8190555081600b8190555084600c8190555082600d8190555080600e81905550600e54600b54600d54600a54600c5460095461165b919061314d565b611665919061314d565b61166f919061314d565b611679919061314d565b611683919061314d565b600f81905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60045481565b6060600280546116cf90612f80565b80601f01602080910402602001604051908101604052809291908181526020018280546116fb90612f80565b80156117485780601f1061171d57610100808354040283529160200191611748565b820191906000526020600020905b81548152906001019060200180831161172b57829003601f168201915b5050505050905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611785338484611bc9565b905092915050565b600e5481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612ffe565b60405180910390fd5b6001811015611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90613281565b60405180910390fd5b81601460156101000a81548160ff021916908315150217905550806015819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c290612ffe565b60405180910390fd5b80601460156101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90612ffe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906132ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c6c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611c81575060148054906101000a900460ff165b611cc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb790613359565b60405180910390fd5b611cc8611691565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d365750611d06611691565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d70575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e73575060045482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e70919061314d565b11155b611eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea9906133eb565b60405180910390fd5b5b611ebb6120e4565b8015611f145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611f2257611f216121bb565b5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f6d919061304d565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611fbb8561268d565b1580611fcd5750611fcb8461268d565b155b611fe157611fdc8585856126e4565b611fe3565b825b905080600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612030919061314d565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120d09190612a48565b60405180910390a360019150509392505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156121515750601660009054906101000a900460ff16155b80156121695750601460159054906101000a900460ff165b80156121b65750601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601660006101000a81548160ff0219169083151502179055506000600f5460026121e7919061340b565b600d54600a546121f7919061314d565b61220030611227565b61220a919061340b565b61221491906130b0565b905060008161222230611227565b61222c919061304d565b90506000600267ffffffffffffffff81111561224b5761224a613465565b5b6040519080825280602002602001820160405280156122795781602001602082028036833780820191505090505b509050308160008151811061229157612290613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561233357600080fd5b505afa158015612347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236b91906134d8565b8160018151811061237f5761237e613494565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947836000843061012c4261240a919061314d565b6040518663ffffffff1660e01b815260040161242a9594939291906135fe565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b5050505060004790506000600f546002612472919061340b565b600d54600a54612482919061314d565b8361248d919061340b565b61249791906130b0565b9050600081836124a7919061304d565b90506000811115612549576000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516124fe90613689565b600060405180830381858888f193505050503d806000811461253c576040519150601f19603f3d011682016040523d82523d6000602084013e612541565b606091505b505080915050505b600086111561266a57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833089600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016125db9695949392919061369e565b6060604051808303818588803b1580156125f457600080fd5b505af1158015612608573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061262d9190613714565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b45068287604051612661929190613767565b60405180910390a15b5050505050506000601660006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080600090506000806000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614801561279b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156127f8576103e8600954876127b1919061340b565b6127bb91906130b0565b92506103e8600b54876127ce919061340b565b6127d891906130b0565b91506103e8600a54876127eb919061340b565b6127f591906130b0565b93505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141580156128a35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b15612900576103e8600c54876128b9919061340b565b6128c391906130b0565b92506103e8600e54876128d6919061340b565b6128e091906130b0565b91506103e8600d54876128f3919061340b565b6128fd91906130b0565b93505b81838561290d919061314d565b612917919061314d565b90506000841115612a165780600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461296d919061314d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612a0d9190612a48565b60405180910390a35b8086612a22919061304d565b9450505050509392505050565b6000819050919050565b612a4281612a2f565b82525050565b6000602082019050612a5d6000830184612a39565b92915050565b60008115159050919050565b612a7881612a63565b82525050565b6000602082019050612a936000830184612a6f565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ad3578082015181840152602081019050612ab8565b83811115612ae2576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b0482612a99565b612b0e8185612aa4565b9350612b1e818560208601612ab5565b612b2781612ae8565b840191505092915050565b60006020820190508181036000830152612b4c8184612af9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b8482612b59565b9050919050565b612b9481612b79565b8114612b9f57600080fd5b50565b600081359050612bb181612b8b565b92915050565b612bc081612a2f565b8114612bcb57600080fd5b50565b600081359050612bdd81612bb7565b92915050565b60008060408385031215612bfa57612bf9612b54565b5b6000612c0885828601612ba2565b9250506020612c1985828601612bce565b9150509250929050565b612c2c81612a63565b8114612c3757600080fd5b50565b600081359050612c4981612c23565b92915050565b60008060408385031215612c6657612c65612b54565b5b6000612c7485828601612ba2565b9250506020612c8585828601612c3a565b9150509250929050565b600080600060608486031215612ca857612ca7612b54565b5b6000612cb686828701612ba2565b9350506020612cc786828701612ba2565b9250506040612cd886828701612bce565b9150509250925092565b612ceb81612b79565b82525050565b6000602082019050612d066000830184612ce2565b92915050565b600060ff82169050919050565b612d2281612d0c565b82525050565b6000602082019050612d3d6000830184612d19565b92915050565b600060208284031215612d5957612d58612b54565b5b6000612d6784828501612ba2565b91505092915050565b600060208284031215612d8657612d85612b54565b5b6000612d9484828501612c3a565b91505092915050565b600060208284031215612db357612db2612b54565b5b6000612dc184828501612bce565b91505092915050565b60008060008060008060c08789031215612de757612de6612b54565b5b6000612df589828a01612bce565b9650506020612e0689828a01612bce565b9550506040612e1789828a01612bce565b9450506060612e2889828a01612bce565b9350506080612e3989828a01612bce565b92505060a0612e4a89828a01612bce565b9150509295509295509295565b60008060408385031215612e6e57612e6d612b54565b5b6000612e7c85828601612ba2565b9250506020612e8d85828601612ba2565b9150509250929050565b60008060408385031215612eae57612ead612b54565b5b6000612ebc85828601612c3a565b9250506020612ecd85828601612bce565b9150509250929050565b6000819050919050565b6000612efc612ef7612ef284612b59565b612ed7565b612b59565b9050919050565b6000612f0e82612ee1565b9050919050565b6000612f2082612f03565b9050919050565b612f3081612f15565b82525050565b6000602082019050612f4b6000830184612f27565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f9857607f821691505b60208210811415612fac57612fab612f51565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612fe8600683612aa4565b9150612ff382612fb2565b602082019050919050565b6000602082019050818103600083015261301781612fdb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061305882612a2f565b915061306383612a2f565b9250828210156130765761307561301e565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130bb82612a2f565b91506130c683612a2f565b9250826130d6576130d5613081565b5b828204905092915050565b7f43616e277420736574204d617857616c6c65742062656c6f7720302e31250000600082015250565b6000613117601e83612aa4565b9150613122826130e1565b602082019050919050565b600060208201905081810360008301526131468161310a565b9050919050565b600061315882612a2f565b915061316383612a2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131985761319761301e565b5b828201905092915050565b7f546f74616c2066656573206d75737420626520657175616c20746f206f72206c60008201527f657373207468616e203330250000000000000000000000000000000000000000602082015250565b60006131ff602c83612aa4565b915061320a826131a3565b604082019050919050565b6000602082019050818103600083015261322e816131f2565b9050919050565b7f43616e27742073657420537761705468726573686f6c6420746f205a45524f00600082015250565b600061326b601f83612aa4565b915061327682613235565b602082019050919050565b6000602082019050818103600083015261329a8161325e565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006132d7600883612aa4565b91506132e2826132a1565b602082019050919050565b60006020820190508181036000830152613306816132ca565b9050919050565b7f4e6f7420617574686f72697a656420746f207472616465207965740000000000600082015250565b6000613343601b83612aa4565b915061334e8261330d565b602082019050919050565b6000602082019050818103600083015261337281613336565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865204d61785760008201527f616c6c65742073697a652e000000000000000000000000000000000000000000602082015250565b60006133d5602b83612aa4565b91506133e082613379565b604082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b600061341682612a2f565b915061342183612a2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561345a5761345961301e565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506134d281612b8b565b92915050565b6000602082840312156134ee576134ed612b54565b5b60006134fc848285016134c3565b91505092915050565b6000819050919050565b600061352a61352561352084613505565b612ed7565b612a2f565b9050919050565b61353a8161350f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61357581612b79565b82525050565b6000613587838361356c565b60208301905092915050565b6000602082019050919050565b60006135ab82613540565b6135b5818561354b565b93506135c08361355c565b8060005b838110156135f15781516135d8888261357b565b97506135e383613593565b9250506001810190506135c4565b5085935050505092915050565b600060a0820190506136136000830188612a39565b6136206020830187613531565b818103604083015261363281866135a0565b90506136416060830185612ce2565b61364e6080830184612a39565b9695505050505050565b600081905092915050565b50565b6000613673600083613658565b915061367e82613663565b600082019050919050565b600061369482613666565b9150819050919050565b600060c0820190506136b36000830189612ce2565b6136c06020830188612a39565b6136cd6040830187613531565b6136da6060830186613531565b6136e76080830185612ce2565b6136f460a0830184612a39565b979650505050505050565b60008151905061370e81612bb7565b92915050565b60008060006060848603121561372d5761372c612b54565b5b600061373b868287016136ff565b935050602061374c868287016136ff565b925050604061375d868287016136ff565b9150509250925092565b600060408201905061377c6000830185612a39565b6137896020830184612a39565b939250505056fea264697066735822122034b024f007da6c3c98696ef6b7b8e757622a7d55b22a82b16516d116f64b363364736f6c63430008090033

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

000000000000000000000000f5d06f7cfc539b8ef4252fe87bb524d0c8897cb3

-----Decoded View---------------
Arg [0] : _MarketingWallet (address): 0xF5D06F7cFC539B8EF4252Fe87bb524d0C8897Cb3

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


Deployed Bytecode Sourcemap

3757:10748:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4970:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6597:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7033:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6327:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8042:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8347:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4864:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6421:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7803:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4344:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12045:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7257:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4509:185;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7549:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4388:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13045:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4308:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5015:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4703:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4425:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6683:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;800:148;;;;;;;;;;;;;:::i;:::-;;11671:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12179:858;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;614:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3971:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6507:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4942:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7387:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4462:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4821;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4272:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6794:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11814:222;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8234:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;956:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4903:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5052:57;;;;:::o;4970:36::-;;;;;;;;;;;;:::o;6597:80::-;6645:13;6669:5;6662:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6597:80;:::o;7033:216::-;7108:4;7160:6;7125:11;:23;7137:10;7125:23;;;;;;;;;;;;;;;:32;7149:7;7125:32;;;;;;;;;;;;;;;:41;;;;7203:7;7182:37;;7191:10;7182:37;;;7212:6;7182:37;;;;;;:::i;:::-;;;;;;;;7237:4;7230:11;;7033:216;;;;:::o;6327:88::-;6382:7;6400:12;;6393:19;;6327:88;:::o;8042:184::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8186:6:::1;8156:19;:27;8176:6;8156:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8042:184:::0;;:::o;8347:339::-;8447:4;8502:17;8467:11;:19;8479:6;8467:19;;;;;;;;;;;;;;;:31;8487:10;8467:31;;;;;;;;;;;;;;;;:52;8464:157;;8603:6;8569:11;:19;8581:6;8569:19;;;;;;;;;;;;;;;:31;8589:10;8569:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;8535:11;:19;8547:6;8535:19;;;;;;;;;;;;;;;:31;8555:10;8535:31;;;;;;;;;;;;;;;:74;;;;8464:157;8638:40;8652:6;8660:9;8671:6;8638:13;:40::i;:::-;8631:47;;8347:339;;;;;:::o;4864:30::-;;;;;;;;;;;;;:::o;6421:80::-;6473:5;3906:1;6482:16;;6421:80;:::o;7803:231::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7900:16:::1;7882:15;;:34;;;;;;;;;;;;;;;;;;7958:4;7927:11;:28;7939:15;;;;;;;;;;;7927:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8014:4;7975:19;:36;7995:15;;;;;;;;;;;7975:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;7803:231:::0;:::o;4344:35::-;;;;:::o;12045:124::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12144:17:::1;12125:16;::::0;:36:::1;;;;;;;;;;;;;;;;;;12045:124:::0;:::o;7257:122::-;7312:4;7336:35;7344:7;7353:17;7336:7;:35::i;:::-;7329:42;;7257:122;;;:::o;4509:185::-;;;;:::o;7549:246::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7682:4:::1;7667:12;;:19;;;;:::i;:::-;7648:15;:38;;7626:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;7772:15;7755:14;:32;;;;7549:246:::0;:::o;4388:30::-;;;;:::o;13045:119::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;13150:6:::1;13128:11;:19;13140:6;13128:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13045:119:::0;;:::o;4308:29::-;;;;:::o;5015:30::-;;;;;;;;;;;;;:::o;4703:28::-;;;;;;;;;;;;;:::o;4425:30::-;;;;:::o;6683:105::-;6749:7;6767:9;:18;6777:7;6767:18;;;;;;;;;;;;;;;;6760:25;;6683:105;;;:::o;800:148::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;907:1:::1;870:40;;891:6;::::0;::::1;;;;;;;;870:40;;;;;;;;;;;;938:1;921:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;800:148::o:0;11671:135::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11747:8:::1;11740:4;;:15;;;;;;;;;;;;;;;;;;11794:4;11766:19;:25;11786:4;;;;;;;;;;;11766:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11671:135:::0;:::o;12179:858::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12490:3:::1;12470:16;12457:10;12444;:23;;;;:::i;:::-;:42;;;;:::i;:::-;:49;;:122;;;;;12563:3;12542:17;12528:11;12514;:25;;;;:::i;:::-;:45;;;;:::i;:::-;:52;;12444:122;12422:216;;;;;;;;;;;;:::i;:::-;;;;;;;;;12663:10;12651:9;:22;;;;12696:10;12684:9;:22;;;;12735:16;12717:15;:34;;;;12777:11;12764:10;:24;;;;12812:11;12799:10;:24;;;;12853:17;12834:16;:36;;;;13013:16;;12986:15;;12964:10;;12943:9;;12921:10;;12900:9;;:31;;;;:::i;:::-;:52;;;;:::i;:::-;:74;;;;:::i;:::-;:101;;;;:::i;:::-;:129;;;;:::i;:::-;12879:9;:150;;;;12179:858:::0;;;;;;:::o;614:79::-;652:7;679:6;;;;;;;;;;;672:13;;614:79;:::o;3971:58::-;;;;:::o;6507:84::-;6557:13;6581:7;6574:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6507:84;:::o;4942:19::-;;;;;;;;;;;;;:::o;7387:156::-;7467:4;7491:44;7505:10;7517:9;7528:6;7491:13;:44::i;:::-;7484:51;;7387:156;;;;:::o;4462:36::-;;;;:::o;4821:::-;;;;;;;;;;;;;:::o;4272:29::-;;;;:::o;6794:133::-;6878:7;6896:11;:19;6908:6;6896:19;;;;;;;;;;;;;;;:28;6916:7;6896:28;;;;;;;;;;;;;;;;6889:35;;6794:133;;;;:::o;11814:222::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11924:1:::1;11913:7;:12;;11905:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11986:8;11972:11;;:22;;;;;;;;;;;;;;;;;;12021:7;12005:13;:23;;;;11814:222:::0;;:::o;8234:105::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8319:12:::1;8305:11;;:26;;;;;;;;;;;;;;;;;;8234:105:::0;:::o;956:214::-;751:10;741:20;;:6;;;;;;;;;;:20;;;733:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;1065:1:::1;1045:22;;:8;:22;;;;1037:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;1125:8;1096:38;;1117:6;::::0;::::1;;;;;;;;1096:38;;;;;;;;;;;;1154:8;1145:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;956:214:::0;:::o;4903:32::-;;;;;;;;;;;;;:::o;8696:1279::-;8822:4;8861:11;:19;8873:6;8861:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;8884:11;:22;8896:9;8884:22;;;;;;;;;;;;;;;;;;;;;;;;;8861:45;:65;;;;8910:16;;;;;;;;;;8861:65;8839:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;9063:7;:5;:7::i;:::-;9053:17;;:6;:17;;;;:54;;;;;9100:7;:5;:7::i;:::-;9087:20;;:9;:20;;;;9053:54;:88;;;;;4770:42;9124:17;;:9;:17;;;;9053:88;:122;;;;;9171:4;;;;;;;;;;;9158:17;;:9;:17;;;;9053:122;9035:388;;;9228:19;:30;9248:9;9228:30;;;;;;;;;;;;;;;;;;;;;;;;;:104;;;;9317:14;;9307:6;9284:9;:20;9294:9;9284:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9228:104;9202:209;;;;;;;;;;;;:::i;:::-;;;;;;;;;9035:388;9463:16;:14;:16::i;:::-;:37;;;;;9496:4;;;;;;;;;;;9483:17;;:9;:17;;;9463:37;9459:80;;;9517:10;:8;:10::i;:::-;9459:80;9591:6;9571:9;:17;9581:6;9571:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;9551:9;:17;9561:6;9551:17;;;;;;;;;;;;;;;:46;;;;9646:22;9673:21;9687:6;9673:13;:21::i;:::-;9672:22;:64;;;;9712:24;9726:9;9712:13;:24::i;:::-;9711:25;9672:64;9671:138;;9775:34;9783:6;9791:9;9802:6;9775:7;:34::i;:::-;9671:138;;;9753:6;9671:138;9646:163;;9867:14;9843:9;:20;9853:9;9843:20;;;;;;;;;;;;;;;;:39;;;;:::i;:::-;9820:9;:20;9830:9;9820:20;;;;;;;;;;;;;;;:62;;;;9917:9;9900:43;;9909:6;9900:43;;;9928:14;9900:43;;;;;;:::i;:::-;;;;;;;;9963:4;9956:11;;;8696:1279;;;;;:::o;11441:222::-;11490:4;11541;;;;;;;;;;;11527:18;;:10;:18;;;;:42;;;;;11563:6;;;;;;;;;;;11562:7;11527:42;:70;;;;;11586:11;;;;;;;;;;;11527:70;:128;;;;;11642:13;;11614:9;:24;11632:4;11614:24;;;;;;;;;;;;;;;;:41;;11527:128;11507:148;;11441:222;:::o;13172:1330::-;5184:4;5175:6;;:13;;;;;;;;;;;;;;;;;;13221:19:::1;13317:9;;13313:1;:13;;;;:::i;:::-;13297:10;;13285:9;;:22;;;;:::i;:::-;13244:24;13262:4;13244:9;:24::i;:::-;:64;;;;:::i;:::-;13243:84;;;;:::i;:::-;13221:106;;13338:20;13388:11;13361:24;13379:4;13361:9;:24::i;:::-;:38;;;;:::i;:::-;13338:61;;13412:21;13450:1;13436:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13412:40;;13481:4;13463;13468:1;13463:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13507:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13497:4;13502:1;13497:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13531:6;;;;;;;;;;;:57;;;13603:12;13630:1;13646:4;13673;13711:9;13693:15;:27;;;;:::i;:::-;13531:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13744:17;13764:21;13744:41;;13796:26;13869:9;;13865:1;:13;;;;:::i;:::-;13850:10;;13838:9;;:22;;;;:::i;:::-;13825:9;:36;;;;:::i;:::-;:54;;;;:::i;:::-;13796:83;;13890:26;13931:18;13919:9;:30;;;;:::i;:::-;13890:59;;13984:1;13965:18;:20;13962:169;;;14001:15;14055;;;;;;;;;;;14047:29;;14084:18;14109:5;14047:72;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14031:88;;;;;13986:145;13962:169;14161:1;14147:11;:15;14143:352;;;14179:6;;;;;;;;;;;:22;;;14209:18;14255:4;14279:11;14309:1;14329::::0;14349:21:::1;;;;;;;;;;;14389:15;14179:240;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14439:44;14451:18;14471:11;14439:44;;;;;;;:::i;:::-;;;;;;;;14143:352;13210:1292;;;;;;5220:5:::0;5211:6;;:14;;;;;;;;;;;;;;;;;;13172:1330::o;11319:114::-;11381:4;11406:11;:19;11418:6;11406:19;;;;;;;;;;;;;;;;;;;;;;;;;11405:20;11398:27;;11319:114;;;:::o;10270:1041::-;10390:7;10410:14;10427:1;10410:18;;10439:14;10468:20;10503:17;10551:4;;;;;;;;;;;10541:14;;:6;:14;;;:35;;;;;10572:4;;;;;;;;;;;10559:17;;:9;:17;;;;10541:35;10537:236;;;10647:4;10635:9;;10626:6;:18;;;;:::i;:::-;:25;;;;:::i;:::-;10617:34;;10708:4;10690:15;;10681:6;:24;;;;:::i;:::-;:31;;;;:::i;:::-;10666:46;;10757:4;10745:9;;10736:6;:18;;;;:::i;:::-;:25;;;;:::i;:::-;10727:34;;10537:236;10797:4;;;;;;;;;;;10787:14;;:6;:14;;;;:35;;;;;10818:4;;;;;;;;;;;10805:17;;:9;:17;;;10787:35;10783:240;;;10895:4;10882:10;;10873:6;:19;;;;:::i;:::-;:26;;;;:::i;:::-;10864:35;;10957:4;10938:16;;10929:6;:25;;;;:::i;:::-;:32;;;;:::i;:::-;10914:47;;11007:4;10994:10;;10985:6;:19;;;;:::i;:::-;:26;;;;:::i;:::-;10976:35;;10783:240;11065:12;11056:6;11047;:15;;;;:::i;:::-;:30;;;;:::i;:::-;11035:42;;11103:1;11094:6;:10;11090:168;;;11175:9;11148;:24;11166:4;11148:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;11121:9;:24;11139:4;11121:24;;;;;;;;;;;;;;;:63;;;;11229:4;11204:42;;11213:6;11204:42;;;11236:9;11204:42;;;;;;:::i;:::-;;;;;;;;11090:168;11287:9;11277:6;:20;;;;:::i;:::-;11270:27;;;;;;10270:1041;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:90::-;476:7;519:5;512:13;505:21;494:32;;442:90;;;:::o;538:109::-;619:21;634:5;619:21;:::i;:::-;614:3;607:34;538:109;;:::o;653:210::-;740:4;778:2;767:9;763:18;755:26;;791:65;853:1;842:9;838:17;829:6;791:65;:::i;:::-;653:210;;;;:::o;869:99::-;921:6;955:5;949:12;939:22;;869:99;;;:::o;974:169::-;1058:11;1092:6;1087:3;1080:19;1132:4;1127:3;1123:14;1108:29;;974:169;;;;:::o;1149:307::-;1217:1;1227:113;1241:6;1238:1;1235:13;1227:113;;;1326:1;1321:3;1317:11;1311:18;1307:1;1302:3;1298:11;1291:39;1263:2;1260:1;1256:10;1251:15;;1227:113;;;1358:6;1355:1;1352:13;1349:101;;;1438:1;1429:6;1424:3;1420:16;1413:27;1349:101;1198:258;1149:307;;;:::o;1462:102::-;1503:6;1554:2;1550:7;1545:2;1538:5;1534:14;1530:28;1520:38;;1462:102;;;:::o;1570:364::-;1658:3;1686:39;1719:5;1686:39;:::i;:::-;1741:71;1805:6;1800:3;1741:71;:::i;:::-;1734:78;;1821:52;1866:6;1861:3;1854:4;1847:5;1843:16;1821:52;:::i;:::-;1898:29;1920:6;1898:29;:::i;:::-;1893:3;1889:39;1882:46;;1662:272;1570:364;;;;:::o;1940:313::-;2053:4;2091:2;2080:9;2076:18;2068:26;;2140:9;2134:4;2130:20;2126:1;2115:9;2111:17;2104:47;2168:78;2241:4;2232:6;2168:78;:::i;:::-;2160:86;;1940:313;;;;:::o;2340:117::-;2449:1;2446;2439:12;2586:126;2623:7;2663:42;2656:5;2652:54;2641:65;;2586:126;;;:::o;2718:96::-;2755:7;2784:24;2802:5;2784:24;:::i;:::-;2773:35;;2718:96;;;:::o;2820:122::-;2893:24;2911:5;2893:24;:::i;:::-;2886:5;2883:35;2873:63;;2932:1;2929;2922:12;2873:63;2820:122;:::o;2948:139::-;2994:5;3032:6;3019:20;3010:29;;3048:33;3075:5;3048:33;:::i;:::-;2948:139;;;;:::o;3093:122::-;3166:24;3184:5;3166:24;:::i;:::-;3159:5;3156:35;3146:63;;3205:1;3202;3195:12;3146:63;3093:122;:::o;3221:139::-;3267:5;3305:6;3292:20;3283:29;;3321:33;3348:5;3321:33;:::i;:::-;3221:139;;;;:::o;3366:474::-;3434:6;3442;3491:2;3479:9;3470:7;3466:23;3462:32;3459:119;;;3497:79;;:::i;:::-;3459:119;3617:1;3642:53;3687:7;3678:6;3667:9;3663:22;3642:53;:::i;:::-;3632:63;;3588:117;3744:2;3770:53;3815:7;3806:6;3795:9;3791:22;3770:53;:::i;:::-;3760:63;;3715:118;3366:474;;;;;:::o;3846:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;:::i;:::-;4370:63;;4326:117;4482:2;4508:50;4550:7;4541:6;4530:9;4526:22;4508:50;:::i;:::-;4498:60;;4453:115;4107:468;;;;;:::o;4581:619::-;4658:6;4666;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;5104:2;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5075:118;4581:619;;;;;:::o;5206:118::-;5293:24;5311:5;5293:24;:::i;:::-;5288:3;5281:37;5206:118;;:::o;5330:222::-;5423:4;5461:2;5450:9;5446:18;5438:26;;5474:71;5542:1;5531:9;5527:17;5518:6;5474:71;:::i;:::-;5330:222;;;;:::o;5558:86::-;5593:7;5633:4;5626:5;5622:16;5611:27;;5558:86;;;:::o;5650:112::-;5733:22;5749:5;5733:22;:::i;:::-;5728:3;5721:35;5650:112;;:::o;5768:214::-;5857:4;5895:2;5884:9;5880:18;5872:26;;5908:67;5972:1;5961:9;5957:17;5948:6;5908:67;:::i;:::-;5768:214;;;;:::o;5988:329::-;6047:6;6096:2;6084:9;6075:7;6071:23;6067:32;6064:119;;;6102:79;;:::i;:::-;6064:119;6222:1;6247:53;6292:7;6283:6;6272:9;6268:22;6247:53;:::i;:::-;6237:63;;6193:117;5988:329;;;;:::o;6323:323::-;6379:6;6428:2;6416:9;6407:7;6403:23;6399:32;6396:119;;;6434:79;;:::i;:::-;6396:119;6554:1;6579:50;6621:7;6612:6;6601:9;6597:22;6579:50;:::i;:::-;6569:60;;6525:114;6323:323;;;;:::o;6652:329::-;6711:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:119;;;6766:79;;:::i;:::-;6728:119;6886:1;6911:53;6956:7;6947:6;6936:9;6932:22;6911:53;:::i;:::-;6901:63;;6857:117;6652:329;;;;:::o;6987:1057::-;7091:6;7099;7107;7115;7123;7131;7180:3;7168:9;7159:7;7155:23;7151:33;7148:120;;;7187:79;;:::i;:::-;7148:120;7307:1;7332:53;7377:7;7368:6;7357:9;7353:22;7332:53;:::i;:::-;7322:63;;7278:117;7434:2;7460:53;7505:7;7496:6;7485:9;7481:22;7460:53;:::i;:::-;7450:63;;7405:118;7562:2;7588:53;7633:7;7624:6;7613:9;7609:22;7588:53;:::i;:::-;7578:63;;7533:118;7690:2;7716:53;7761:7;7752:6;7741:9;7737:22;7716:53;:::i;:::-;7706:63;;7661:118;7818:3;7845:53;7890:7;7881:6;7870:9;7866:22;7845:53;:::i;:::-;7835:63;;7789:119;7947:3;7974:53;8019:7;8010:6;7999:9;7995:22;7974:53;:::i;:::-;7964:63;;7918:119;6987:1057;;;;;;;;:::o;8050:474::-;8118:6;8126;8175:2;8163:9;8154:7;8150:23;8146:32;8143:119;;;8181:79;;:::i;:::-;8143:119;8301:1;8326:53;8371:7;8362:6;8351:9;8347:22;8326:53;:::i;:::-;8316:63;;8272:117;8428:2;8454:53;8499:7;8490:6;8479:9;8475:22;8454:53;:::i;:::-;8444:63;;8399:118;8050:474;;;;;:::o;8530:468::-;8595:6;8603;8652:2;8640:9;8631:7;8627:23;8623:32;8620:119;;;8658:79;;:::i;:::-;8620:119;8778:1;8803:50;8845:7;8836:6;8825:9;8821:22;8803:50;:::i;:::-;8793:60;;8749:114;8902:2;8928:53;8973:7;8964:6;8953:9;8949:22;8928:53;:::i;:::-;8918:63;;8873:118;8530:468;;;;;:::o;9004:60::-;9032:3;9053:5;9046:12;;9004:60;;;:::o;9070:142::-;9120:9;9153:53;9171:34;9180:24;9198:5;9180:24;:::i;:::-;9171:34;:::i;:::-;9153:53;:::i;:::-;9140:66;;9070:142;;;:::o;9218:126::-;9268:9;9301:37;9332:5;9301:37;:::i;:::-;9288:50;;9218:126;;;:::o;9350:152::-;9426:9;9459:37;9490:5;9459:37;:::i;:::-;9446:50;;9350:152;;;:::o;9508:183::-;9621:63;9678:5;9621:63;:::i;:::-;9616:3;9609:76;9508:183;;:::o;9697:274::-;9816:4;9854:2;9843:9;9839:18;9831:26;;9867:97;9961:1;9950:9;9946:17;9937:6;9867:97;:::i;:::-;9697:274;;;;:::o;9977:180::-;10025:77;10022:1;10015:88;10122:4;10119:1;10112:15;10146:4;10143:1;10136:15;10163:320;10207:6;10244:1;10238:4;10234:12;10224:22;;10291:1;10285:4;10281:12;10312:18;10302:81;;10368:4;10360:6;10356:17;10346:27;;10302:81;10430:2;10422:6;10419:14;10399:18;10396:38;10393:84;;;10449:18;;:::i;:::-;10393:84;10214:269;10163:320;;;:::o;10489:156::-;10629:8;10625:1;10617:6;10613:14;10606:32;10489:156;:::o;10651:365::-;10793:3;10814:66;10878:1;10873:3;10814:66;:::i;:::-;10807:73;;10889:93;10978:3;10889:93;:::i;:::-;11007:2;11002:3;10998:12;10991:19;;10651:365;;;:::o;11022:419::-;11188:4;11226:2;11215:9;11211:18;11203:26;;11275:9;11269:4;11265:20;11261:1;11250:9;11246:17;11239:47;11303:131;11429:4;11303:131;:::i;:::-;11295:139;;11022:419;;;:::o;11447:180::-;11495:77;11492:1;11485:88;11592:4;11589:1;11582:15;11616:4;11613:1;11606:15;11633:191;11673:4;11693:20;11711:1;11693:20;:::i;:::-;11688:25;;11727:20;11745:1;11727:20;:::i;:::-;11722:25;;11766:1;11763;11760:8;11757:34;;;11771:18;;:::i;:::-;11757:34;11816:1;11813;11809:9;11801:17;;11633:191;;;;:::o;11830:180::-;11878:77;11875:1;11868:88;11975:4;11972:1;11965:15;11999:4;11996:1;11989:15;12016:185;12056:1;12073:20;12091:1;12073:20;:::i;:::-;12068:25;;12107:20;12125:1;12107:20;:::i;:::-;12102:25;;12146:1;12136:35;;12151:18;;:::i;:::-;12136:35;12193:1;12190;12186:9;12181:14;;12016:185;;;;:::o;12207:180::-;12347:32;12343:1;12335:6;12331:14;12324:56;12207:180;:::o;12393:366::-;12535:3;12556:67;12620:2;12615:3;12556:67;:::i;:::-;12549:74;;12632:93;12721:3;12632:93;:::i;:::-;12750:2;12745:3;12741:12;12734:19;;12393:366;;;:::o;12765:419::-;12931:4;12969:2;12958:9;12954:18;12946:26;;13018:9;13012:4;13008:20;13004:1;12993:9;12989:17;12982:47;13046:131;13172:4;13046:131;:::i;:::-;13038:139;;12765:419;;;:::o;13190:305::-;13230:3;13249:20;13267:1;13249:20;:::i;:::-;13244:25;;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13437:1;13369:66;13365:74;13362:1;13359:81;13356:107;;;13443:18;;:::i;:::-;13356:107;13487:1;13484;13480:9;13473:16;;13190:305;;;;:::o;13501:231::-;13641:34;13637:1;13629:6;13625:14;13618:58;13710:14;13705:2;13697:6;13693:15;13686:39;13501:231;:::o;13738:366::-;13880:3;13901:67;13965:2;13960:3;13901:67;:::i;:::-;13894:74;;13977:93;14066:3;13977:93;:::i;:::-;14095:2;14090:3;14086:12;14079:19;;13738:366;;;:::o;14110:419::-;14276:4;14314:2;14303:9;14299:18;14291:26;;14363:9;14357:4;14353:20;14349:1;14338:9;14334:17;14327:47;14391:131;14517:4;14391:131;:::i;:::-;14383:139;;14110:419;;;:::o;14535:181::-;14675:33;14671:1;14663:6;14659:14;14652:57;14535:181;:::o;14722:366::-;14864:3;14885:67;14949:2;14944:3;14885:67;:::i;:::-;14878:74;;14961:93;15050:3;14961:93;:::i;:::-;15079:2;15074:3;15070:12;15063:19;;14722:366;;;:::o;15094:419::-;15260:4;15298:2;15287:9;15283:18;15275:26;;15347:9;15341:4;15337:20;15333:1;15322:9;15318:17;15311:47;15375:131;15501:4;15375:131;:::i;:::-;15367:139;;15094:419;;;:::o;15519:158::-;15659:10;15655:1;15647:6;15643:14;15636:34;15519:158;:::o;15683:365::-;15825:3;15846:66;15910:1;15905:3;15846:66;:::i;:::-;15839:73;;15921:93;16010:3;15921:93;:::i;:::-;16039:2;16034:3;16030:12;16023:19;;15683:365;;;:::o;16054:419::-;16220:4;16258:2;16247:9;16243:18;16235:26;;16307:9;16301:4;16297:20;16293:1;16282:9;16278:17;16271:47;16335:131;16461:4;16335:131;:::i;:::-;16327:139;;16054:419;;;:::o;16479:177::-;16619:29;16615:1;16607:6;16603:14;16596:53;16479:177;:::o;16662:366::-;16804:3;16825:67;16889:2;16884:3;16825:67;:::i;:::-;16818:74;;16901:93;16990:3;16901:93;:::i;:::-;17019:2;17014:3;17010:12;17003:19;;16662:366;;;:::o;17034:419::-;17200:4;17238:2;17227:9;17223:18;17215:26;;17287:9;17281:4;17277:20;17273:1;17262:9;17258:17;17251:47;17315:131;17441:4;17315:131;:::i;:::-;17307:139;;17034:419;;;:::o;17459:230::-;17599:34;17595:1;17587:6;17583:14;17576:58;17668:13;17663:2;17655:6;17651:15;17644:38;17459:230;:::o;17695:366::-;17837:3;17858:67;17922:2;17917:3;17858:67;:::i;:::-;17851:74;;17934:93;18023:3;17934:93;:::i;:::-;18052:2;18047:3;18043:12;18036:19;;17695:366;;;:::o;18067:419::-;18233:4;18271:2;18260:9;18256:18;18248:26;;18320:9;18314:4;18310:20;18306:1;18295:9;18291:17;18284:47;18348:131;18474:4;18348:131;:::i;:::-;18340:139;;18067:419;;;:::o;18492:348::-;18532:7;18555:20;18573:1;18555:20;:::i;:::-;18550:25;;18589:20;18607:1;18589:20;:::i;:::-;18584:25;;18777:1;18709:66;18705:74;18702:1;18699:81;18694:1;18687:9;18680:17;18676:105;18673:131;;;18784:18;;:::i;:::-;18673:131;18832:1;18829;18825:9;18814:20;;18492:348;;;;:::o;18846:180::-;18894:77;18891:1;18884:88;18991:4;18988:1;18981:15;19015:4;19012:1;19005:15;19032:180;19080:77;19077:1;19070:88;19177:4;19174:1;19167:15;19201:4;19198:1;19191:15;19218:143;19275:5;19306:6;19300:13;19291:22;;19322:33;19349:5;19322:33;:::i;:::-;19218:143;;;;:::o;19367:351::-;19437:6;19486:2;19474:9;19465:7;19461:23;19457:32;19454:119;;;19492:79;;:::i;:::-;19454:119;19612:1;19637:64;19693:7;19684:6;19673:9;19669:22;19637:64;:::i;:::-;19627:74;;19583:128;19367:351;;;;:::o;19724:85::-;19769:7;19798:5;19787:16;;19724:85;;;:::o;19815:158::-;19873:9;19906:61;19924:42;19933:32;19959:5;19933:32;:::i;:::-;19924:42;:::i;:::-;19906:61;:::i;:::-;19893:74;;19815:158;;;:::o;19979:147::-;20074:45;20113:5;20074:45;:::i;:::-;20069:3;20062:58;19979:147;;:::o;20132:114::-;20199:6;20233:5;20227:12;20217:22;;20132:114;;;:::o;20252:184::-;20351:11;20385:6;20380:3;20373:19;20425:4;20420:3;20416:14;20401:29;;20252:184;;;;:::o;20442:132::-;20509:4;20532:3;20524:11;;20562:4;20557:3;20553:14;20545:22;;20442:132;;;:::o;20580:108::-;20657:24;20675:5;20657:24;:::i;:::-;20652:3;20645:37;20580:108;;:::o;20694:179::-;20763:10;20784:46;20826:3;20818:6;20784:46;:::i;:::-;20862:4;20857:3;20853:14;20839:28;;20694:179;;;;:::o;20879:113::-;20949:4;20981;20976:3;20972:14;20964:22;;20879:113;;;:::o;21028:732::-;21147:3;21176:54;21224:5;21176:54;:::i;:::-;21246:86;21325:6;21320:3;21246:86;:::i;:::-;21239:93;;21356:56;21406:5;21356:56;:::i;:::-;21435:7;21466:1;21451:284;21476:6;21473:1;21470:13;21451:284;;;21552:6;21546:13;21579:63;21638:3;21623:13;21579:63;:::i;:::-;21572:70;;21665:60;21718:6;21665:60;:::i;:::-;21655:70;;21511:224;21498:1;21495;21491:9;21486:14;;21451:284;;;21455:14;21751:3;21744:10;;21152:608;;;21028:732;;;;:::o;21766:831::-;22029:4;22067:3;22056:9;22052:19;22044:27;;22081:71;22149:1;22138:9;22134:17;22125:6;22081:71;:::i;:::-;22162:80;22238:2;22227:9;22223:18;22214:6;22162:80;:::i;:::-;22289:9;22283:4;22279:20;22274:2;22263:9;22259:18;22252:48;22317:108;22420:4;22411:6;22317:108;:::i;:::-;22309:116;;22435:72;22503:2;22492:9;22488:18;22479:6;22435:72;:::i;:::-;22517:73;22585:3;22574:9;22570:19;22561:6;22517:73;:::i;:::-;21766:831;;;;;;;;:::o;22603:147::-;22704:11;22741:3;22726:18;;22603:147;;;;:::o;22756:114::-;;:::o;22876:398::-;23035:3;23056:83;23137:1;23132:3;23056:83;:::i;:::-;23049:90;;23148:93;23237:3;23148:93;:::i;:::-;23266:1;23261:3;23257:11;23250:18;;22876:398;;;:::o;23280:379::-;23464:3;23486:147;23629:3;23486:147;:::i;:::-;23479:154;;23650:3;23643:10;;23280:379;;;:::o;23665:807::-;23914:4;23952:3;23941:9;23937:19;23929:27;;23966:71;24034:1;24023:9;24019:17;24010:6;23966:71;:::i;:::-;24047:72;24115:2;24104:9;24100:18;24091:6;24047:72;:::i;:::-;24129:80;24205:2;24194:9;24190:18;24181:6;24129:80;:::i;:::-;24219;24295:2;24284:9;24280:18;24271:6;24219:80;:::i;:::-;24309:73;24377:3;24366:9;24362:19;24353:6;24309:73;:::i;:::-;24392;24460:3;24449:9;24445:19;24436:6;24392:73;:::i;:::-;23665:807;;;;;;;;;:::o;24478:143::-;24535:5;24566:6;24560:13;24551:22;;24582:33;24609:5;24582:33;:::i;:::-;24478:143;;;;:::o;24627:663::-;24715:6;24723;24731;24780:2;24768:9;24759:7;24755:23;24751:32;24748:119;;;24786:79;;:::i;:::-;24748:119;24906:1;24931:64;24987:7;24978:6;24967:9;24963:22;24931:64;:::i;:::-;24921:74;;24877:128;25044:2;25070:64;25126:7;25117:6;25106:9;25102:22;25070:64;:::i;:::-;25060:74;;25015:129;25183:2;25209:64;25265:7;25256:6;25245:9;25241:22;25209:64;:::i;:::-;25199:74;;25154:129;24627:663;;;;;:::o;25296:332::-;25417:4;25455:2;25444:9;25440:18;25432:26;;25468:71;25536:1;25525:9;25521:17;25512:6;25468:71;:::i;:::-;25549:72;25617:2;25606:9;25602:18;25593:6;25549:72;:::i;:::-;25296:332;;;;;:::o

Swarm Source

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