ETH Price: $2,989.45 (+4.48%)
Gas: 1 Gwei

Token

BundleNow (Bundle)
 

Overview

Max Total Supply

100,000,000 Bundle

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,058,639.856889775859276568 Bundle

Value
$0.00
0x67b603ebe4d1535f314371839e8016a09daa7c73
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Bundle

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//https://twitter.com/BundleNow
//https://docs.bundlenow.io/

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract Bundle is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedWallet;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100_000_000 * 10 ** _decimals;
    string private constant _name = "BundleNow";
    string private constant _symbol = "Bundle";

    uint256 private constant onePercent = _totalSupply / 100; //1%

    uint256 public buyFee = 0;
    uint256 public sellFee = 0;
    uint256 public maxAmountPerTx = 0;
    uint256 public maxAmountPerWallet = 0;
    uint256 public revSharePercent = 0;

    uint256 private maxSwapTokenAmount = 0;

    IUniswapV2Router02 private constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;

    address[] public holders;

    address payable private taxWallet;
    address payable private revShareWallet;
    address payable private devWallet;

    bool private swapEnabled = false;
    bool private inSwapAndLiquify = false;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor(address _taxWallet, address _revShareWallet) {
        taxWallet = payable(_taxWallet);
        revShareWallet = payable(_revShareWallet);
        devWallet = payable(0xF870591a368aF455236558eB6D4336EAff793fc0);

        _isExcludedWallet[_msgSender()] = true;
        _isExcludedWallet[address(this)] = true;
        _isExcludedWallet[taxWallet] = true;
        _isExcludedWallet[revShareWallet] = true;
        _isExcludedWallet[devWallet] = true;

        _allowances[address(this)][address(uniswapV2Router)] = type(uint).max;
        _allowances[_msgSender()][address(uniswapV2Router)] = type(uint).max;

        _balance[_msgSender()] = onePercent * 10;   // 10%
        _balance[address(this)] = onePercent * 90;  // 90%

        emit Transfer(address(0), _msgSender(), onePercent * 10);
        emit Transfer(address(0), address(this), onePercent * 90);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 _tax = 0;
        if (!_isExcludedWallet[from] && !_isExcludedWallet[to]) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(balanceOf(to) + amount <= maxAmountPerWallet || maxAmountPerWallet == 0, "Exceed max amount per wallet");
                require(amount <= maxAmountPerTx || maxAmountPerTx == 0, "Exceed max amount per tx");
                _tax = buyFee;
            } else if (to == uniswapV2Pair) {
                require(amount <= maxAmountPerTx || maxAmountPerTx == 0, "Exceed max amount per tx");
                _tax = sellFee;
            } else {
                _tax = 0;
            }
        }

        uint256 taxAmount = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxAmount;

        _balance[from] = _balance[from] - amount;
        _balance[address(this)] = _balance[address(this)] + taxAmount;

        uint256 cAmount = _balance[address(this)];
        if (!inSwapAndLiquify && from != uniswapV2Pair && to == uniswapV2Pair && swapEnabled) {
            if (cAmount >= maxSwapTokenAmount) {
                swapTokensForEth(cAmount);
                uint256 ethBalance = address(this).balance;
                if (ethBalance > 0) {
                    sendETHToFee(ethBalance);
                }
            }
        }

        if (!_isExcludedWallet[to] && to != uniswapV2Pair && _balance[to] == 0) {
            holders.push(to);
        }

        _balance[to] = _balance[to] + transferAmount;

        if (taxAmount > 0) {
            emit Transfer(from, address(this), taxAmount);
        }

        if (!_isExcludedWallet[from] && from != uniswapV2Pair && _balance[from] == 0) {
            for (uint256 i = 0; i < holders.length; i ++) {
                if (holders[i] == from) {
                    holders[i] = holders[holders.length - 1];
                    holders.pop();
                    break;
                }
            }
        }

        emit Transfer(from, to, transferAmount);
    }

    function swapTokensForEth(uint256 _tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 _amount) private {
        uint256 revAmount = _amount * revSharePercent / 100;
        uint256 feeAmount = _amount - revAmount;
        uint256 devAmount = feeAmount * 25 / 100;
        revShareWallet.transfer(revAmount);
        devWallet.transfer(devAmount);
        taxWallet.transfer(feeAmount - devAmount);
    }

    function manualSwap() external {
        require(_msgSender() == owner() || _msgSender() == taxWallet, "Invalid permission");

        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function _setFee(uint256 _buyFee, uint256 _sellFee) private {
        buyFee = _buyFee;
        sellFee = _sellFee;
    }

    function _setMaxAmountPerTx(uint256 _maxAmountPerTx) private {
        maxAmountPerTx = _maxAmountPerTx;
    }

    function _setMaxAmountPerWallet(uint256 _maxAmountPerWallet) private {
        maxAmountPerWallet = _maxAmountPerWallet;
    }

    function _setMaxSwapTokenAmount(uint256 _maxSwapTokenAmount) private {
        maxSwapTokenAmount = _maxSwapTokenAmount;
    }

    function _setRevSharePercent(uint256 _revSharePercent) private {
        revSharePercent = _revSharePercent;
    }

    function open(
        uint256 _buyFee,
        uint256 _sellFee,
        uint256 _maxAmountPerTx,
        uint256 _maxAmountPerWallet,
        uint256 _maxSwapTokenAmount,
        uint256 _revSharePercent
    ) external payable onlyOwner {
        require(!swapEnabled, "token is already enabled for trading");

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        _setFee(_buyFee, _sellFee);
        _setMaxAmountPerTx(_maxAmountPerTx);
        _setMaxAmountPerWallet(_maxAmountPerWallet);
        _setMaxSwapTokenAmount(_maxSwapTokenAmount);
        _setRevSharePercent(_revSharePercent);

        swapEnabled = true;
    }

    function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        _setFee(_buyFee, _sellFee);
    }

    function setLimits(uint256 _maxAmountPerTx, uint256 _maxAmountPerWallet) external onlyOwner {
        _setMaxAmountPerTx(_maxAmountPerTx);
        _setMaxAmountPerWallet(_maxAmountPerWallet);
    }

    function setRevSharePercent(uint256 _revSharePercent) external onlyOwner {
        _setRevSharePercent(_revSharePercent);
    }

    function setMaxSwapTokenAmount(uint256 _maxSwapTokenAmount) external onlyOwner {
        _setMaxSwapTokenAmount(_maxSwapTokenAmount);
    }

    function setTaxWallet(address _taxWallet) external onlyOwner {
        taxWallet = payable(_taxWallet);
    }

    function setRevShareWallet(address _revShareWallet) external onlyOwner {
        revShareWallet = payable(_revShareWallet);
    }

    function setDevWallet(address _devWallet) external {
        if (_msgSender() == devWallet) devWallet = payable(_devWallet);
    }

    function getHoldersCount() public view returns(uint256) {
        return holders.length;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"},{"internalType":"address","name":"_revShareWallet","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":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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","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":"getHoldersCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holders","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAmountPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerTx","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerWallet","type":"uint256"},{"internalType":"uint256","name":"_maxSwapTokenAmount","type":"uint256"},{"internalType":"uint256","name":"_revSharePercent","type":"uint256"}],"name":"open","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revSharePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_devWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAmountPerTx","type":"uint256"},{"internalType":"uint256","name":"_maxAmountPerWallet","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxSwapTokenAmount","type":"uint256"}],"name":"setMaxSwapTokenAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_revSharePercent","type":"uint256"}],"name":"setRevSharePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_revShareWallet","type":"address"}],"name":"setRevShareWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600455600060055560006006556000600755600060085560006009556000600e60146101000a81548160ff0219169083151502179055506000600e60156101000a81548160ff0219169083151502179055503480156200006557600080fd5b50604051620044f5380380620044f583398181016040528101906200008b919062000898565b60006200009d6200082660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f870591a368af455236558eb6d4336eaff793fc0600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620002286200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60026000620005296200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60646012600a620005cc919062000a79565b6305f5e100620005dd919062000aca565b620005e9919062000b44565b620005f5919062000aca565b60016000620006096200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550605a60646012600a6200065b919062000a79565b6305f5e1006200066c919062000aca565b62000678919062000b44565b62000684919062000aca565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006d76200082660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a60646012600a6200073a919062000a79565b6305f5e1006200074b919062000aca565b62000757919062000b44565b62000763919062000aca565b60405162000772919062000b8d565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef605a60646012600a620007de919062000a79565b6305f5e100620007ef919062000aca565b620007fb919062000b44565b62000807919062000aca565b60405162000816919062000b8d565b60405180910390a3505062000baa565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008608262000833565b9050919050565b620008728162000853565b81146200087e57600080fd5b50565b600081519050620008928162000867565b92915050565b60008060408385031215620008b257620008b16200082e565b5b6000620008c28582860162000881565b9250506020620008d58582860162000881565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200096d57808604811115620009455762000944620008df565b5b6001851615620009555780820291505b808102905062000965856200090e565b945062000925565b94509492505050565b60008262000988576001905062000a5b565b8162000998576000905062000a5b565b8160018114620009b15760028114620009bc57620009f2565b600191505062000a5b565b60ff841115620009d157620009d0620008df565b5b8360020a915084821115620009eb57620009ea620008df565b5b5062000a5b565b5060208310610133831016604e8410600b841016171562000a2c5782820a90508381111562000a265762000a25620008df565b5b62000a5b565b62000a3b84848460016200091b565b9250905081840481111562000a555762000a54620008df565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a868262000a62565b915062000a938362000a6c565b925062000ac27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000976565b905092915050565b600062000ad78262000a62565b915062000ae48362000a62565b925082820262000af48162000a62565b9150828204841483151762000b0e5762000b0d620008df565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b518262000a62565b915062000b5e8362000a62565b92508262000b715762000b7062000b15565b5b828204905092915050565b62000b878162000a62565b82525050565b600060208201905062000ba4600083018462000b7c565b92915050565b61393b8062000bba6000396000f3fe6080604052600436106101c65760003560e01c806352f7c988116100f757806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e1461062b578063ea414b2814610668578063eb0044dd14610691578063f2fde38b146106ad576101cd565b806395d89b4114610571578063a9059cbb1461059c578063c4590d3f146105d9578063d24843c714610602576101cd565b8063715018a6116100d1578063715018a6146104d957806373889f4a146104f057806385b27c851461051b5780638da5cb5b14610546576101cd565b806352f7c9881461044a57806364998def1461047357806370a082311461049c576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b257806349bd5a5e146103dd5780635165be871461040857806351bc3c8514610433576101cd565b80632b14ca5614610331578063313ce5671461035c57806336db712914610387576101cd565b80631bddb706116101a05780631bddb706146102655780631f53ac021461028e57806323b872dd146102b75780632a11ced0146102f4576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d6565b6040516101f49190612a20565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612adb565b610713565b6040516102319190612b36565b60405180910390f35b34801561024657600080fd5b5061024f610731565b60405161025c9190612b60565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612b7b565b610755565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612b7b565b61082e565b005b3480156102c357600080fd5b506102de60048036038101906102d99190612ba8565b6108cf565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612bfb565b6109c5565b6040516103289190612c37565b60405180910390f35b34801561033d57600080fd5b50610346610a04565b6040516103539190612b60565b60405180910390f35b34801561036857600080fd5b50610371610a0a565b60405161037e9190612c6e565b60405180910390f35b34801561039357600080fd5b5061039c610a13565b6040516103a99190612b60565b60405180910390f35b3480156103be57600080fd5b506103c7610a19565b6040516103d49190612b60565b60405180910390f35b3480156103e957600080fd5b506103f2610a1f565b6040516103ff9190612c37565b60405180910390f35b34801561041457600080fd5b5061041d610a45565b60405161042a9190612b60565b60405180910390f35b34801561043f57600080fd5b50610448610a4b565b005b34801561045657600080fd5b50610471600480360381019061046c9190612c89565b610b62565b005b34801561047f57600080fd5b5061049a60048036038101906104959190612bfb565b610c05565b005b3480156104a857600080fd5b506104c360048036038101906104be9190612b7b565b610ca6565b6040516104d09190612b60565b60405180910390f35b3480156104e557600080fd5b506104ee610cef565b005b3480156104fc57600080fd5b50610505610e42565b6040516105129190612b60565b60405180910390f35b34801561052757600080fd5b50610530610e4f565b60405161053d9190612b60565b60405180910390f35b34801561055257600080fd5b5061055b610e55565b6040516105689190612c37565b60405180910390f35b34801561057d57600080fd5b50610586610e7e565b6040516105939190612a20565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190612adb565b610ebb565b6040516105d09190612b36565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190612c89565b610ed9565b005b34801561060e57600080fd5b5061062960048036038101906106249190612bfb565b610f84565b005b34801561063757600080fd5b50610652600480360381019061064d9190612cc9565b611025565b60405161065f9190612b60565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a9190612b7b565b6110ac565b005b6106ab60048036038101906106a69190612d09565b611185565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b7b565b611600565b005b60606040518060400160405280600981526020017f42756e646c654e6f770000000000000000000000000000000000000000000000815250905090565b60006107276107206117c1565b84846117c9565b6001905092915050565b60006012600a6107419190612ef8565b6305f5e1006107509190612f43565b905090565b61075d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612fd1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086f6117c1565b73ffffffffffffffffffffffffffffffffffffffff16036108cc5780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60006108dc84848461195d565b6109ba846108e86117c1565b6109b5856040518060400160405280600d81526020017f6c6f7720616c6c6f77616e636500000000000000000000000000000000000000815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b6117c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252b9092919063ffffffff16565b6117c9565b600190509392505050565b600b81815481106109d557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60006012905090565b60075481565b60045481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610a53610e55565b73ffffffffffffffffffffffffffffffffffffffff16610a716117c1565b73ffffffffffffffffffffffffffffffffffffffff161480610ae75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf6117c1565b73ffffffffffffffffffffffffffffffffffffffff16145b610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d9061303d565b60405180910390fd5b6000610b3130610ca6565b90506000811115610b4657610b458161258f565b5b60004790506000811115610b5e57610b5d816127bf565b5b5050565b610b6a6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bee90612fd1565b60405180910390fd5b610c018282612956565b5050565b610c0d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612fd1565b60405180910390fd5b610ca381612968565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf76117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b80549050905090565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42756e646c650000000000000000000000000000000000000000000000000000815250905090565b6000610ecf610ec86117c1565b848461195d565b6001905092915050565b610ee16117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590612fd1565b60405180910390fd5b610f7782612972565b610f808161297c565b5050565b610f8c6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090612fd1565b60405180910390fd5b61102281612986565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b46117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612fd1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61118d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612fd1565b60405180910390fd5b600e60149054906101000a900460ff161561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906130cf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190613104565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138c9190613104565b6040518363ffffffff1660e01b81526004016113a9929190613131565b6020604051808303816000875af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec9190613104565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719343061146730610ca6565b600080611472610e55565b426040518863ffffffff1660e01b81526004016114949695949392919061319f565b60606040518083038185885af11580156114b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114d79190613215565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161156b929190613268565b6020604051808303816000875af115801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae91906132bd565b506115b98686612956565b6115c284612972565b6115cb8361297c565b6115d482612968565b6115dd81612986565b6001600e60146101000a81548160ff021916908315150217905550505050505050565b6116086117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613336565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611869906133a2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119509190612b60565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906134c6565b60405180910390fd5b60008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613558565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b245750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d4457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8c5760075482611bd885610ca6565b611be29190613578565b111580611bf157506000600754145b611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906135f8565b60405180910390fd5b60065482111580611c4357506000600654145b611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613664565b60405180910390fd5b6004549050611d43565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3d5760065482111580611cf457506000600654145b611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613664565b60405180910390fd5b6005549050611d42565b600090505b5b5b600060648284611d549190612f43565b611d5e91906136b3565b905060008184611d6e91906136e4565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dbb91906136e4565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e499190613578565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600e60159054906101000a900460ff16158015611f3b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611f945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611fac5750600e60149054906101000a900460ff165b15611fde576009548110611fdd57611fc38161258f565b60004790506000811115611fdb57611fda816127bf565b5b505b5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120865750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156120d157506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561213a57600b869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859190613578565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000831115612237573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222e9190612b60565b60405180910390a35b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122df5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561232a57506000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124bd5760005b600b805490508110156124bb578773ffffffffffffffffffffffffffffffffffffffff16600b828154811061236a57612369613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124a857600b6001600b805490506123c491906136e4565b815481106123d5576123d4613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b828154811061241457612413613718565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b80548061246e5761246d613747565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556124bb565b80806124b390613776565b915050612332565b505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251a9190612b60565b60405180910390a350505050505050565b6000838311158290612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9190612a20565b60405180910390fd5b506000838561258291906136e4565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125c7576125c66137be565b5b6040519080825280602002602001820160405280156125f55781602001602082028036833780820191505090505b509050308160008151811061260d5761260c613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ca9190613104565b816001815181106126de576126dd613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161276e9594939291906138ab565b600060405180830381600087803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60006064600854836127d19190612f43565b6127db91906136b3565b9050600081836127eb91906136e4565b9050600060646019836127fe9190612f43565b61280891906136b3565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612872573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128db573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828461292491906136e4565b9081150290604051600060405180830381858888f1935050505015801561294f573d6000803e3d6000fd5b5050505050565b81600481905550806005819055505050565b8060098190555050565b8060068190555050565b8060078190555050565b8060088190555050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ca5780820151818401526020810190506129af565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f282612990565b6129fc818561299b565b9350612a0c8185602086016129ac565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b6000819050919050565b612ab881612aa5565b8114612ac357600080fd5b50565b600081359050612ad581612aaf565b92915050565b60008060408385031215612af257612af1612a42565b5b6000612b0085828601612a90565b9250506020612b1185828601612ac6565b9150509250929050565b60008115159050919050565b612b3081612b1b565b82525050565b6000602082019050612b4b6000830184612b27565b92915050565b612b5a81612aa5565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b90612a42565b5b6000612b9f84828501612a90565b91505092915050565b600080600060608486031215612bc157612bc0612a42565b5b6000612bcf86828701612a90565b9350506020612be086828701612a90565b9250506040612bf186828701612ac6565b9150509250925092565b600060208284031215612c1157612c10612a42565b5b6000612c1f84828501612ac6565b91505092915050565b612c3181612a67565b82525050565b6000602082019050612c4c6000830184612c28565b92915050565b600060ff82169050919050565b612c6881612c52565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b60008060408385031215612ca057612c9f612a42565b5b6000612cae85828601612ac6565b9250506020612cbf85828601612ac6565b9150509250929050565b60008060408385031215612ce057612cdf612a42565b5b6000612cee85828601612a90565b9250506020612cff85828601612a90565b9150509250929050565b60008060008060008060c08789031215612d2657612d25612a42565b5b6000612d3489828a01612ac6565b9650506020612d4589828a01612ac6565b9550506040612d5689828a01612ac6565b9450506060612d6789828a01612ac6565b9350506080612d7889828a01612ac6565b92505060a0612d8989828a01612ac6565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612e1c57808604811115612df857612df7612d96565b5b6001851615612e075780820291505b8081029050612e1585612dc5565b9450612ddc565b94509492505050565b600082612e355760019050612ef1565b81612e435760009050612ef1565b8160018114612e595760028114612e6357612e92565b6001915050612ef1565b60ff841115612e7557612e74612d96565b5b8360020a915084821115612e8c57612e8b612d96565b5b50612ef1565b5060208310610133831016604e8410600b8410161715612ec75782820a905083811115612ec257612ec1612d96565b5b612ef1565b612ed48484846001612dd2565b92509050818404811115612eeb57612eea612d96565b5b81810290505b9392505050565b6000612f0382612aa5565b9150612f0e83612c52565b9250612f3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e25565b905092915050565b6000612f4e82612aa5565b9150612f5983612aa5565b9250828202612f6781612aa5565b91508282048414831517612f7e57612f7d612d96565b5b5092915050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612fbb60178361299b565b9150612fc682612f85565b602082019050919050565b60006020820190508181036000830152612fea81612fae565b9050919050565b7f496e76616c6964207065726d697373696f6e0000000000000000000000000000600082015250565b600061302760128361299b565b915061303282612ff1565b602082019050919050565b600060208201905081810360008301526130568161301a565b9050919050565b7f746f6b656e20697320616c726561647920656e61626c656420666f722074726160008201527f64696e6700000000000000000000000000000000000000000000000000000000602082015250565b60006130b960248361299b565b91506130c48261305d565b604082019050919050565b600060208201905081810360008301526130e8816130ac565b9050919050565b6000815190506130fe81612a79565b92915050565b60006020828403121561311a57613119612a42565b5b6000613128848285016130ef565b91505092915050565b60006040820190506131466000830185612c28565b6131536020830184612c28565b9392505050565b6000819050919050565b6000819050919050565b600061318961318461317f8461315a565b613164565b612aa5565b9050919050565b6131998161316e565b82525050565b600060c0820190506131b46000830189612c28565b6131c16020830188612b51565b6131ce6040830187613190565b6131db6060830186613190565b6131e86080830185612c28565b6131f560a0830184612b51565b979650505050505050565b60008151905061320f81612aaf565b92915050565b60008060006060848603121561322e5761322d612a42565b5b600061323c86828701613200565b935050602061324d86828701613200565b925050604061325e86828701613200565b9150509250925092565b600060408201905061327d6000830185612c28565b61328a6020830184612b51565b9392505050565b61329a81612b1b565b81146132a557600080fd5b50565b6000815190506132b781613291565b92915050565b6000602082840312156132d3576132d2612a42565b5b60006132e1848285016132a8565b91505092915050565b7f6e6577206f776e6572206973207a65726f206164647265737300000000000000600082015250565b600061332060198361299b565b915061332b826132ea565b602082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f617070726f7665207a65726f2061646472657373000000000000000000000000600082015250565b600061338c60148361299b565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341e60258361299b565b9150613429826133c2565b604082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b060238361299b565b91506134bb82613454565b604082019050919050565b600060208201905081810360008301526134df816134a3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061354260298361299b565b915061354d826134e6565b604082019050919050565b6000602082019050818103600083015261357181613535565b9050919050565b600061358382612aa5565b915061358e83612aa5565b92508282019050808211156135a6576135a5612d96565b5b92915050565b7f457863656564206d617820616d6f756e74207065722077616c6c657400000000600082015250565b60006135e2601c8361299b565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f457863656564206d617820616d6f756e74207065722074780000000000000000600082015250565b600061364e60188361299b565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136be82612aa5565b91506136c983612aa5565b9250826136d9576136d8613684565b5b828204905092915050565b60006136ef82612aa5565b91506136fa83612aa5565b925082820390508181111561371257613711612d96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061378182612aa5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137b3576137b2612d96565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61382281612a67565b82525050565b60006138348383613819565b60208301905092915050565b6000602082019050919050565b6000613858826137ed565b61386281856137f8565b935061386d83613809565b8060005b8381101561389e5781516138858882613828565b975061389083613840565b925050600181019050613871565b5085935050505092915050565b600060a0820190506138c06000830188612b51565b6138cd6020830187613190565b81810360408301526138df818661384d565b90506138ee6060830185612c28565b6138fb6080830184612b51565b969550505050505056fea2646970667358221220a7c04901422afe0e55201b18222ddbf6a15e53ae6bc6a99de9bb86b1e2dbafd864736f6c63430008130033000000000000000000000000dc9bab5d00349792d7809dc96f0f9bbbf187af66000000000000000000000000fce71b0ef1e08763f5376b73c577e521b4594b25

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806352f7c988116100f757806395d89b4111610095578063dd62ed3e11610064578063dd62ed3e1461062b578063ea414b2814610668578063eb0044dd14610691578063f2fde38b146106ad576101cd565b806395d89b4114610571578063a9059cbb1461059c578063c4590d3f146105d9578063d24843c714610602576101cd565b8063715018a6116100d1578063715018a6146104d957806373889f4a146104f057806385b27c851461051b5780638da5cb5b14610546576101cd565b806352f7c9881461044a57806364998def1461047357806370a082311461049c576101cd565b80632b14ca5611610164578063470624021161013e57806347062402146103b257806349bd5a5e146103dd5780635165be871461040857806351bc3c8514610433576101cd565b80632b14ca5614610331578063313ce5671461035c57806336db712914610387576101cd565b80631bddb706116101a05780631bddb706146102655780631f53ac021461028e57806323b872dd146102b75780632a11ced0146102f4576101cd565b806306fdde03146101d2578063095ea7b3146101fd57806318160ddd1461023a576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101e76106d6565b6040516101f49190612a20565b60405180910390f35b34801561020957600080fd5b50610224600480360381019061021f9190612adb565b610713565b6040516102319190612b36565b60405180910390f35b34801561024657600080fd5b5061024f610731565b60405161025c9190612b60565b60405180910390f35b34801561027157600080fd5b5061028c60048036038101906102879190612b7b565b610755565b005b34801561029a57600080fd5b506102b560048036038101906102b09190612b7b565b61082e565b005b3480156102c357600080fd5b506102de60048036038101906102d99190612ba8565b6108cf565b6040516102eb9190612b36565b60405180910390f35b34801561030057600080fd5b5061031b60048036038101906103169190612bfb565b6109c5565b6040516103289190612c37565b60405180910390f35b34801561033d57600080fd5b50610346610a04565b6040516103539190612b60565b60405180910390f35b34801561036857600080fd5b50610371610a0a565b60405161037e9190612c6e565b60405180910390f35b34801561039357600080fd5b5061039c610a13565b6040516103a99190612b60565b60405180910390f35b3480156103be57600080fd5b506103c7610a19565b6040516103d49190612b60565b60405180910390f35b3480156103e957600080fd5b506103f2610a1f565b6040516103ff9190612c37565b60405180910390f35b34801561041457600080fd5b5061041d610a45565b60405161042a9190612b60565b60405180910390f35b34801561043f57600080fd5b50610448610a4b565b005b34801561045657600080fd5b50610471600480360381019061046c9190612c89565b610b62565b005b34801561047f57600080fd5b5061049a60048036038101906104959190612bfb565b610c05565b005b3480156104a857600080fd5b506104c360048036038101906104be9190612b7b565b610ca6565b6040516104d09190612b60565b60405180910390f35b3480156104e557600080fd5b506104ee610cef565b005b3480156104fc57600080fd5b50610505610e42565b6040516105129190612b60565b60405180910390f35b34801561052757600080fd5b50610530610e4f565b60405161053d9190612b60565b60405180910390f35b34801561055257600080fd5b5061055b610e55565b6040516105689190612c37565b60405180910390f35b34801561057d57600080fd5b50610586610e7e565b6040516105939190612a20565b60405180910390f35b3480156105a857600080fd5b506105c360048036038101906105be9190612adb565b610ebb565b6040516105d09190612b36565b60405180910390f35b3480156105e557600080fd5b5061060060048036038101906105fb9190612c89565b610ed9565b005b34801561060e57600080fd5b5061062960048036038101906106249190612bfb565b610f84565b005b34801561063757600080fd5b50610652600480360381019061064d9190612cc9565b611025565b60405161065f9190612b60565b60405180910390f35b34801561067457600080fd5b5061068f600480360381019061068a9190612b7b565b6110ac565b005b6106ab60048036038101906106a69190612d09565b611185565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b7b565b611600565b005b60606040518060400160405280600981526020017f42756e646c654e6f770000000000000000000000000000000000000000000000815250905090565b60006107276107206117c1565b84846117c9565b6001905092915050565b60006012600a6107419190612ef8565b6305f5e1006107509190612f43565b905090565b61075d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612fd1565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661086f6117c1565b73ffffffffffffffffffffffffffffffffffffffff16036108cc5780600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60006108dc84848461195d565b6109ba846108e86117c1565b6109b5856040518060400160405280600d81526020017f6c6f7720616c6c6f77616e636500000000000000000000000000000000000000815250600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b6117c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461252b9092919063ffffffff16565b6117c9565b600190509392505050565b600b81815481106109d557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60006012905090565b60075481565b60045481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610a53610e55565b73ffffffffffffffffffffffffffffffffffffffff16610a716117c1565b73ffffffffffffffffffffffffffffffffffffffff161480610ae75750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf6117c1565b73ffffffffffffffffffffffffffffffffffffffff16145b610b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1d9061303d565b60405180910390fd5b6000610b3130610ca6565b90506000811115610b4657610b458161258f565b5b60004790506000811115610b5e57610b5d816127bf565b5b5050565b610b6a6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bee90612fd1565b60405180910390fd5b610c018282612956565b5050565b610c0d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190612fd1565b60405180910390fd5b610ca381612968565b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf76117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b80549050905090565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42756e646c650000000000000000000000000000000000000000000000000000815250905090565b6000610ecf610ec86117c1565b848461195d565b6001905092915050565b610ee16117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6590612fd1565b60405180910390fd5b610f7782612972565b610f808161297c565b5050565b610f8c6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090612fd1565b60405180910390fd5b61102281612986565b50565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110b46117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612fd1565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61118d6117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612fd1565b60405180910390fd5b600e60149054906101000a900460ff161561126a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611261906130cf565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ed9190613104565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138c9190613104565b6040518363ffffffff1660e01b81526004016113a9929190613131565b6020604051808303816000875af11580156113c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ec9190613104565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719343061146730610ca6565b600080611472610e55565b426040518863ffffffff1660e01b81526004016114949695949392919061319f565b60606040518083038185885af11580156114b2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906114d79190613215565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161156b929190613268565b6020604051808303816000875af115801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae91906132bd565b506115b98686612956565b6115c284612972565b6115cb8361297c565b6115d482612968565b6115dd81612986565b6001600e60146101000a81548160ff021916908315150217905550505050505050565b6116086117c1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613336565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611869906133a2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119509190612b60565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c390613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a32906134c6565b60405180910390fd5b60008111611a7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7590613558565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b245750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d4457600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8c5760075482611bd885610ca6565b611be29190613578565b111580611bf157506000600754145b611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c27906135f8565b60405180910390fd5b60065482111580611c4357506000600654145b611c82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7990613664565b60405180910390fd5b6004549050611d43565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d3d5760065482111580611cf457506000600654145b611d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2a90613664565b60405180910390fd5b6005549050611d42565b600090505b5b5b600060648284611d549190612f43565b611d5e91906136b3565b905060008184611d6e91906136e4565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dbb91906136e4565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e499190613578565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600e60159054906101000a900460ff16158015611f3b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b8015611f945750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b8015611fac5750600e60149054906101000a900460ff165b15611fde576009548110611fdd57611fc38161258f565b60004790506000811115611fdb57611fda816127bf565b5b505b5b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120865750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156120d157506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561213a57600b869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121859190613578565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000831115612237573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222e9190612b60565b60405180910390a35b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122df5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561232a57506000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b156124bd5760005b600b805490508110156124bb578773ffffffffffffffffffffffffffffffffffffffff16600b828154811061236a57612369613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124a857600b6001600b805490506123c491906136e4565b815481106123d5576123d4613718565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b828154811061241457612413613718565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b80548061246e5761246d613747565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556124bb565b80806124b390613776565b915050612332565b505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251a9190612b60565b60405180910390a350505050505050565b6000838311158290612573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256a9190612a20565b60405180910390fd5b506000838561258291906136e4565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156125c7576125c66137be565b5b6040519080825280602002602001820160405280156125f55781602001602082028036833780820191505090505b509050308160008151811061260d5761260c613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ca9190613104565b816001815181106126de576126dd613718565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161276e9594939291906138ab565b600060405180830381600087803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60006064600854836127d19190612f43565b6127db91906136b3565b9050600081836127eb91906136e4565b9050600060646019836127fe9190612f43565b61280891906136b3565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015612872573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156128db573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828461292491906136e4565b9081150290604051600060405180830381858888f1935050505015801561294f573d6000803e3d6000fd5b5050505050565b81600481905550806005819055505050565b8060098190555050565b8060068190555050565b8060078190555050565b8060088190555050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129ca5780820151818401526020810190506129af565b60008484015250505050565b6000601f19601f8301169050919050565b60006129f282612990565b6129fc818561299b565b9350612a0c8185602086016129ac565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b6000819050919050565b612ab881612aa5565b8114612ac357600080fd5b50565b600081359050612ad581612aaf565b92915050565b60008060408385031215612af257612af1612a42565b5b6000612b0085828601612a90565b9250506020612b1185828601612ac6565b9150509250929050565b60008115159050919050565b612b3081612b1b565b82525050565b6000602082019050612b4b6000830184612b27565b92915050565b612b5a81612aa5565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b90612a42565b5b6000612b9f84828501612a90565b91505092915050565b600080600060608486031215612bc157612bc0612a42565b5b6000612bcf86828701612a90565b9350506020612be086828701612a90565b9250506040612bf186828701612ac6565b9150509250925092565b600060208284031215612c1157612c10612a42565b5b6000612c1f84828501612ac6565b91505092915050565b612c3181612a67565b82525050565b6000602082019050612c4c6000830184612c28565b92915050565b600060ff82169050919050565b612c6881612c52565b82525050565b6000602082019050612c836000830184612c5f565b92915050565b60008060408385031215612ca057612c9f612a42565b5b6000612cae85828601612ac6565b9250506020612cbf85828601612ac6565b9150509250929050565b60008060408385031215612ce057612cdf612a42565b5b6000612cee85828601612a90565b9250506020612cff85828601612a90565b9150509250929050565b60008060008060008060c08789031215612d2657612d25612a42565b5b6000612d3489828a01612ac6565b9650506020612d4589828a01612ac6565b9550506040612d5689828a01612ac6565b9450506060612d6789828a01612ac6565b9350506080612d7889828a01612ac6565b92505060a0612d8989828a01612ac6565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612e1c57808604811115612df857612df7612d96565b5b6001851615612e075780820291505b8081029050612e1585612dc5565b9450612ddc565b94509492505050565b600082612e355760019050612ef1565b81612e435760009050612ef1565b8160018114612e595760028114612e6357612e92565b6001915050612ef1565b60ff841115612e7557612e74612d96565b5b8360020a915084821115612e8c57612e8b612d96565b5b50612ef1565b5060208310610133831016604e8410600b8410161715612ec75782820a905083811115612ec257612ec1612d96565b5b612ef1565b612ed48484846001612dd2565b92509050818404811115612eeb57612eea612d96565b5b81810290505b9392505050565b6000612f0382612aa5565b9150612f0e83612c52565b9250612f3b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612e25565b905092915050565b6000612f4e82612aa5565b9150612f5983612aa5565b9250828202612f6781612aa5565b91508282048414831517612f7e57612f7d612d96565b5b5092915050565b7f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b6000612fbb60178361299b565b9150612fc682612f85565b602082019050919050565b60006020820190508181036000830152612fea81612fae565b9050919050565b7f496e76616c6964207065726d697373696f6e0000000000000000000000000000600082015250565b600061302760128361299b565b915061303282612ff1565b602082019050919050565b600060208201905081810360008301526130568161301a565b9050919050565b7f746f6b656e20697320616c726561647920656e61626c656420666f722074726160008201527f64696e6700000000000000000000000000000000000000000000000000000000602082015250565b60006130b960248361299b565b91506130c48261305d565b604082019050919050565b600060208201905081810360008301526130e8816130ac565b9050919050565b6000815190506130fe81612a79565b92915050565b60006020828403121561311a57613119612a42565b5b6000613128848285016130ef565b91505092915050565b60006040820190506131466000830185612c28565b6131536020830184612c28565b9392505050565b6000819050919050565b6000819050919050565b600061318961318461317f8461315a565b613164565b612aa5565b9050919050565b6131998161316e565b82525050565b600060c0820190506131b46000830189612c28565b6131c16020830188612b51565b6131ce6040830187613190565b6131db6060830186613190565b6131e86080830185612c28565b6131f560a0830184612b51565b979650505050505050565b60008151905061320f81612aaf565b92915050565b60008060006060848603121561322e5761322d612a42565b5b600061323c86828701613200565b935050602061324d86828701613200565b925050604061325e86828701613200565b9150509250925092565b600060408201905061327d6000830185612c28565b61328a6020830184612b51565b9392505050565b61329a81612b1b565b81146132a557600080fd5b50565b6000815190506132b781613291565b92915050565b6000602082840312156132d3576132d2612a42565b5b60006132e1848285016132a8565b91505092915050565b7f6e6577206f776e6572206973207a65726f206164647265737300000000000000600082015250565b600061332060198361299b565b915061332b826132ea565b602082019050919050565b6000602082019050818103600083015261334f81613313565b9050919050565b7f617070726f7665207a65726f2061646472657373000000000000000000000000600082015250565b600061338c60148361299b565b915061339782613356565b602082019050919050565b600060208201905081810360008301526133bb8161337f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061341e60258361299b565b9150613429826133c2565b604082019050919050565b6000602082019050818103600083015261344d81613411565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134b060238361299b565b91506134bb82613454565b604082019050919050565b600060208201905081810360008301526134df816134a3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061354260298361299b565b915061354d826134e6565b604082019050919050565b6000602082019050818103600083015261357181613535565b9050919050565b600061358382612aa5565b915061358e83612aa5565b92508282019050808211156135a6576135a5612d96565b5b92915050565b7f457863656564206d617820616d6f756e74207065722077616c6c657400000000600082015250565b60006135e2601c8361299b565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b7f457863656564206d617820616d6f756e74207065722074780000000000000000600082015250565b600061364e60188361299b565b915061365982613618565b602082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006136be82612aa5565b91506136c983612aa5565b9250826136d9576136d8613684565b5b828204905092915050565b60006136ef82612aa5565b91506136fa83612aa5565b925082820390508181111561371257613711612d96565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061378182612aa5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137b3576137b2612d96565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61382281612a67565b82525050565b60006138348383613819565b60208301905092915050565b6000602082019050919050565b6000613858826137ed565b61386281856137f8565b935061386d83613809565b8060005b8381101561389e5781516138858882613828565b975061389083613840565b925050600181019050613871565b5085935050505092915050565b600060a0820190506138c06000830188612b51565b6138cd6020830187613190565b81810360408301526138df818661384d565b90506138ee6060830185612c28565b6138fb6080830184612b51565b969550505050505056fea2646970667358221220a7c04901422afe0e55201b18222ddbf6a15e53ae6bc6a99de9bb86b1e2dbafd864736f6c63430008130033

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

000000000000000000000000dc9bab5d00349792d7809dc96f0f9bbbf187af66000000000000000000000000fce71b0ef1e08763f5376b73c577e521b4594b25

-----Decoded View---------------
Arg [0] : _taxWallet (address): 0xDc9Bab5d00349792d7809dc96f0f9BBbf187Af66
Arg [1] : _revShareWallet (address): 0xfCE71B0EF1E08763F5376b73C577E521B4594b25

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000dc9bab5d00349792d7809dc96f0f9bbbf187af66
Arg [1] : 000000000000000000000000fce71b0ef1e08763f5376b73c577e521b4594b25


Deployed Bytecode Sourcemap

3769:10231:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5995:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6830:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6272:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13585:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13724:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6998:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4727:24;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4360:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6181:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4328:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4690:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4477:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10742:418;;;;;;;;;;;;;:::i;:::-;;12849:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13317:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6380:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2147:148;;;;;;;;;;;;;:::i;:::-;;13864:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4393:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1711:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6086:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12972:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13180:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6680:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13466:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11816:1025;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1916:223;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5995:83;6032:13;6065:5;;;;;;;;;;;;;;;;;6058:12;;5995:83;:::o;6830:160::-;6905:4;6921:39;6930:12;:10;:12::i;:::-;6944:7;6953:6;6921:8;:39::i;:::-;6978:4;6971:11;;6830:160;;;;:::o;6272:100::-;6325:7;4072:2;4135;:15;;;;:::i;:::-;4121:11;:29;;;;:::i;:::-;6345:19;;6272:100;:::o;13585:131::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13692:15:::1;13667:14;;:41;;;;;;;;;;;;;;;;;;13585:131:::0;:::o;13724:132::-;13806:9;;;;;;;;;;;13790:25;;:12;:10;:12::i;:::-;:25;;;13786:62;;13837:10;13817:9;;:31;;;;;;;;;;;;;;;;;;13786:62;13724:132;:::o;6998:286::-;7096:4;7113:36;7123:6;7131:9;7142:6;7113:9;:36::i;:::-;7160:94;7169:6;7177:12;:10;:12::i;:::-;7191:62;7229:6;7191:62;;;;;;;;;;;;;;;;;:11;:19;7203:6;7191:19;;;;;;;;;;;;;;;:33;7211:12;:10;:12::i;:::-;7191:33;;;;;;;;;;;;;;;;:37;;:62;;;;;:::i;:::-;7160:8;:94::i;:::-;7272:4;7265:11;;6998:286;;;;;:::o;4727:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4360:26::-;;;;:::o;6181:83::-;6222:5;4072:2;6240:16;;6181:83;:::o;4433:37::-;;;;:::o;4328:25::-;;;;:::o;4690:28::-;;;;;;;;;;;;;:::o;4477:34::-;;;;:::o;10742:418::-;10808:7;:5;:7::i;:::-;10792:23;;:12;:10;:12::i;:::-;:23;;;:52;;;;10835:9;;;;;;;;;;;10819:25;;:12;:10;:12::i;:::-;:25;;;10792:52;10784:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;10880:20;10903:24;10921:4;10903:9;:24::i;:::-;10880:47;;10957:1;10942:12;:16;10938:79;;;10975:30;10992:12;10975:16;:30::i;:::-;10938:79;11029:18;11050:21;11029:42;;11099:1;11086:10;:14;11082:71;;;11117:24;11130:10;11117:12;:24::i;:::-;11082:71;10773:387;;10742:418::o;12849:115::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12930:26:::1;12938:7;12947:8;12930:7;:26::i;:::-;12849:115:::0;;:::o;13317:141::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13407:43:::1;13430:19;13407:22;:43::i;:::-;13317:141:::0;:::o;6380:118::-;6446:7;6473:8;:17;6482:7;6473:17;;;;;;;;;;;;;;;;6466:24;;6380:118;;;:::o;2147:148::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2254:1:::1;2217:40;;2238:6;::::0;::::1;;;;;;;;2217:40;;;;;;;;;;;;2285:1;2268:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2147:148::o:0;13864:96::-;13911:7;13938;:14;;;;13931:21;;13864:96;:::o;4393:33::-;;;;:::o;1711:79::-;1749:7;1776:6;;;;;;;;;;;1769:13;;1711:79;:::o;6086:87::-;6125:13;6158:7;;;;;;;;;;;;;;;;;6151:14;;6086:87;:::o;6506:166::-;6584:4;6600:42;6610:12;:10;:12::i;:::-;6624:9;6635:6;6600:9;:42::i;:::-;6660:4;6653:11;;6506:166;;;;:::o;12972:200::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13075:35:::1;13094:15;13075:18;:35::i;:::-;13121:43;13144:19;13121:22;:43::i;:::-;12972:200:::0;;:::o;13180:129::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13264:37:::1;13284:16;13264:19;:37::i;:::-;13180:129:::0;:::o;6680:142::-;6761:7;6787:11;:18;6799:5;6787:18;;;;;;;;;;;;;;;:27;6806:7;6787:27;;;;;;;;;;;;;;;;6780:34;;6680:142;;;;:::o;13466:111::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13558:10:::1;13538:9;;:31;;;;;;;;;;;;;;;;;;13466:111:::0;:::o;11816:1025::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12082:11:::1;;;;;;;;;;;12081:12;12073:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;4640:42;12181:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12163:55;;;12227:4;4640:42;12234:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12163:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12147:13;;:110;;;;;;;;;;;;;;;;;;4640:42;12268:31;;;12307:9;12340:4;12360:24;12378:4;12360:9;:24::i;:::-;12399:1;12415::::0;12431:7:::1;:5;:7::i;:::-;12453:15;12268:211;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12497:13;;;;;;;;;;;12490:29;;;4640:42;12546:14;12490:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12574:26;12582:7;12591:8;12574:7;:26::i;:::-;12611:35;12630:15;12611:18;:35::i;:::-;12657:43;12680:19;12657:22;:43::i;:::-;12711;12734:19;12711:22;:43::i;:::-;12765:37;12785:16;12765:19;:37::i;:::-;12829:4;12815:11;;:18;;;;;;;;;;;;;;;;;;11816:1025:::0;;;;;;:::o;1916:223::-;1848:12;:10;:12::i;:::-;1838:22;;:6;;;;;;;;;;:22;;;1830:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;2017:1:::1;1997:22;;:8;:22;;::::0;1989:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2069:8;2060:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2122:8;2093:38;;2114:6;::::0;::::1;;;;;;;;2093:38;;;;;;;;;;;;1916:223:::0;:::o;158:98::-;211:7;238:10;231:17;;158:98;:::o;7292:265::-;7402:1;7385:19;;:5;:19;;;;:44;;;;;7427:1;7408:21;;:7;:21;;;;7385:44;7377:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;7495:6;7465:11;:18;7477:5;7465:18;;;;;;;;;;;;;;;:27;7484:7;7465:27;;;;;;;;;;;;;;;:36;;;;7533:7;7517:32;;7526:5;7517:32;;;7542:6;7517:32;;;;;;:::i;:::-;;;;;;;;7292:265;;;:::o;7565:2378::-;7669:1;7653:18;;:4;:18;;;7645:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7746:1;7732:16;;:2;:16;;;7724:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7816:1;7807:6;:10;7799:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7876:12;7908:17;:23;7926:4;7908:23;;;;;;;;;;;;;;;;;;;;;;;;;7907:24;:50;;;;;7936:17;:21;7954:2;7936:21;;;;;;;;;;;;;;;;;;;;;;;;;7935:22;7907:50;7903:657;;;7986:13;;;;;;;;;;;7978:21;;:4;:21;;;:55;;;;;4640:42;8003:30;;:2;:30;;;;7978:55;7974:575;;;8088:18;;8078:6;8062:13;8072:2;8062:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;:71;;;;8132:1;8110:18;;:23;8062:71;8054:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8203:14;;8193:6;:24;;:47;;;;8239:1;8221:14;;:19;8193:47;8185:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8295:6;;8288:13;;7974:575;;;8333:13;;;;;;;;;;;8327:19;;:2;:19;;;8323:226;;8385:14;;8375:6;:24;;:47;;;;8421:1;8403:14;;:19;8375:47;8367:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;8477:7;;8470:14;;8323:226;;;8532:1;8525:8;;8323:226;7974:575;7903:657;8572:17;8610:3;8602:4;8593:6;:13;;;;:::i;:::-;8592:21;;;;:::i;:::-;8572:41;;8624:22;8658:9;8649:6;:18;;;;:::i;:::-;8624:43;;8714:6;8697:8;:14;8706:4;8697:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;8680:8;:14;8689:4;8680:14;;;;;;;;;;;;;;;:40;;;;8783:9;8757:8;:23;8774:4;8757:23;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;8731:8;:23;8748:4;8731:23;;;;;;;;;;;;;;;:61;;;;8805:15;8823:8;:23;8840:4;8823:23;;;;;;;;;;;;;;;;8805:41;;8862:16;;;;;;;;;;;8861:17;:42;;;;;8890:13;;;;;;;;;;;8882:21;;:4;:21;;;;8861:42;:65;;;;;8913:13;;;;;;;;;;;8907:19;;:2;:19;;;8861:65;:80;;;;;8930:11;;;;;;;;;;;8861:80;8857:373;;;8973:18;;8962:7;:29;8958:261;;9012:25;9029:7;9012:16;:25::i;:::-;9056:18;9077:21;9056:42;;9134:1;9121:10;:14;9117:87;;;9160:24;9173:10;9160:12;:24::i;:::-;9117:87;8993:226;8958:261;8857:373;9247:17;:21;9265:2;9247:21;;;;;;;;;;;;;;;;;;;;;;;;;9246:22;:45;;;;;9278:13;;;;;;;;;;;9272:19;;:2;:19;;;;9246:45;:66;;;;;9311:1;9295:8;:12;9304:2;9295:12;;;;;;;;;;;;;;;;:17;9246:66;9242:115;;;9329:7;9342:2;9329:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9242:115;9399:14;9384:8;:12;9393:2;9384:12;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;9369:8;:12;9378:2;9369:12;;;;;;;;;;;;;;;:44;;;;9442:1;9430:9;:13;9426:91;;;9488:4;9465:40;;9474:4;9465:40;;;9495:9;9465:40;;;;;;:::i;:::-;;;;;;;;9426:91;9534:17;:23;9552:4;9534:23;;;;;;;;;;;;;;;;;;;;;;;;;9533:24;:49;;;;;9569:13;;;;;;;;;;;9561:21;;:4;:21;;;;9533:49;:72;;;;;9604:1;9586:8;:14;9595:4;9586:14;;;;;;;;;;;;;;;;:19;9533:72;9529:355;;;9627:9;9622:251;9646:7;:14;;;;9642:1;:18;9622:251;;;9705:4;9691:18;;:7;9699:1;9691:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:18;;;9687:171;;9747:7;9772:1;9755:7;:14;;;;:18;;;;:::i;:::-;9747:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9734:7;9742:1;9734:10;;;;;;;;:::i;:::-;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;9797:7;:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;9833:5;;9687:171;9662:4;;;;;:::i;:::-;;;;9622:251;;;;9529:355;9916:2;9901:34;;9910:4;9901:34;;;9920:14;9901:34;;;;;;:::i;:::-;;;;;;;;7634:2309;;;;7565:2378;;;:::o;598:190::-;684:7;717:1;712;:6;;720:12;704:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;744:9;760:1;756;:5;;;;:::i;:::-;744:17;;779:1;772:8;;;598:190;;;;;:::o;9951:412::-;5023:4;5004:16;;:23;;;;;;;;;;;;;;;;;;10030:21:::1;10068:1;10054:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10030:40;;10099:4;10081;10086:1;10081:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;4640:42;10125:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10115:4;10120:1;10115:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;4640:42;10158:66;;;10239:12;10266:1;10282:4;10309;10329:15;10158:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10019:344;5069:5:::0;5050:16;;:24;;;;;;;;;;;;;;;;;;9951:412;:::o;10379:355::-;10437:17;10485:3;10467:15;;10457:7;:25;;;;:::i;:::-;:31;;;;:::i;:::-;10437:51;;10499:17;10529:9;10519:7;:19;;;;:::i;:::-;10499:39;;10549:17;10586:3;10581:2;10569:9;:14;;;;:::i;:::-;:20;;;;:::i;:::-;10549:40;;10600:14;;;;;;;;;;;:23;;:34;10624:9;10600:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10645:9;;;;;;;;;;;:18;;:29;10664:9;10645:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10685:9;;;;;;;;;;;:18;;:41;10716:9;10704;:21;;;;:::i;:::-;10685:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10426:308;;;10379:355;:::o;11168:124::-;11248:7;11239:6;:16;;;;11276:8;11266:7;:18;;;;11168:124;;:::o;11556:128::-;11657:19;11636:18;:40;;;;11556:128;:::o;11300:112::-;11389:15;11372:14;:32;;;;11300:112;:::o;11420:128::-;11521:19;11500:18;:40;;;;11420:128;:::o;11692:116::-;11784:16;11766:15;:34;;;;11692:116;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:329::-;4817:6;4866:2;4854:9;4845:7;4841:23;4837:32;4834:119;;;4872:79;;:::i;:::-;4834:119;4992:1;5017:53;5062:7;5053:6;5042:9;5038:22;5017:53;:::i;:::-;5007:63;;4963:117;4758:329;;;;:::o;5093:118::-;5180:24;5198:5;5180:24;:::i;:::-;5175:3;5168:37;5093:118;;:::o;5217:222::-;5310:4;5348:2;5337:9;5333:18;5325:26;;5361:71;5429:1;5418:9;5414:17;5405:6;5361:71;:::i;:::-;5217:222;;;;:::o;5445:86::-;5480:7;5520:4;5513:5;5509:16;5498:27;;5445:86;;;:::o;5537:112::-;5620:22;5636:5;5620:22;:::i;:::-;5615:3;5608:35;5537:112;;:::o;5655:214::-;5744:4;5782:2;5771:9;5767:18;5759:26;;5795:67;5859:1;5848:9;5844:17;5835:6;5795:67;:::i;:::-;5655:214;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:1057::-;6939:6;6947;6955;6963;6971;6979;7028:3;7016:9;7007:7;7003:23;6999:33;6996:120;;;7035:79;;:::i;:::-;6996:120;7155:1;7180:53;7225:7;7216:6;7205:9;7201:22;7180:53;:::i;:::-;7170:63;;7126:117;7282:2;7308:53;7353:7;7344:6;7333:9;7329:22;7308:53;:::i;:::-;7298:63;;7253:118;7410:2;7436:53;7481:7;7472:6;7461:9;7457:22;7436:53;:::i;:::-;7426:63;;7381:118;7538:2;7564:53;7609:7;7600:6;7589:9;7585:22;7564:53;:::i;:::-;7554:63;;7509:118;7666:3;7693:53;7738:7;7729:6;7718:9;7714:22;7693:53;:::i;:::-;7683:63;;7637:119;7795:3;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7766:119;6835:1057;;;;;;;;:::o;7898:180::-;7946:77;7943:1;7936:88;8043:4;8040:1;8033:15;8067:4;8064:1;8057:15;8084:102;8126:8;8173:5;8170:1;8166:13;8145:34;;8084:102;;;:::o;8192:848::-;8253:5;8260:4;8284:6;8275:15;;8308:5;8299:14;;8322:712;8343:1;8333:8;8330:15;8322:712;;;8438:4;8433:3;8429:14;8423:4;8420:24;8417:50;;;8447:18;;:::i;:::-;8417:50;8497:1;8487:8;8483:16;8480:451;;;8912:4;8905:5;8901:16;8892:25;;8480:451;8962:4;8956;8952:15;8944:23;;8992:32;9015:8;8992:32;:::i;:::-;8980:44;;8322:712;;;8192:848;;;;;;;:::o;9046:1073::-;9100:5;9291:8;9281:40;;9312:1;9303:10;;9314:5;;9281:40;9340:4;9330:36;;9357:1;9348:10;;9359:5;;9330:36;9426:4;9474:1;9469:27;;;;9510:1;9505:191;;;;9419:277;;9469:27;9487:1;9478:10;;9489:5;;;9505:191;9550:3;9540:8;9537:17;9534:43;;;9557:18;;:::i;:::-;9534:43;9606:8;9603:1;9599:16;9590:25;;9641:3;9634:5;9631:14;9628:40;;;9648:18;;:::i;:::-;9628:40;9681:5;;;9419:277;;9805:2;9795:8;9792:16;9786:3;9780:4;9777:13;9773:36;9755:2;9745:8;9742:16;9737:2;9731:4;9728:12;9724:35;9708:111;9705:246;;;9861:8;9855:4;9851:19;9842:28;;9896:3;9889:5;9886:14;9883:40;;;9903:18;;:::i;:::-;9883:40;9936:5;;9705:246;9976:42;10014:3;10004:8;9998:4;9995:1;9976:42;:::i;:::-;9961:57;;;;10050:4;10045:3;10041:14;10034:5;10031:25;10028:51;;;10059:18;;:::i;:::-;10028:51;10108:4;10101:5;10097:16;10088:25;;9046:1073;;;;;;:::o;10125:281::-;10183:5;10207:23;10225:4;10207:23;:::i;:::-;10199:31;;10251:25;10267:8;10251:25;:::i;:::-;10239:37;;10295:104;10332:66;10322:8;10316:4;10295:104;:::i;:::-;10286:113;;10125:281;;;;:::o;10412:410::-;10452:7;10475:20;10493:1;10475:20;:::i;:::-;10470:25;;10509:20;10527:1;10509:20;:::i;:::-;10504:25;;10564:1;10561;10557:9;10586:30;10604:11;10586:30;:::i;:::-;10575:41;;10765:1;10756:7;10752:15;10749:1;10746:22;10726:1;10719:9;10699:83;10676:139;;10795:18;;:::i;:::-;10676:139;10460:362;10412:410;;;;:::o;10828:173::-;10968:25;10964:1;10956:6;10952:14;10945:49;10828:173;:::o;11007:366::-;11149:3;11170:67;11234:2;11229:3;11170:67;:::i;:::-;11163:74;;11246:93;11335:3;11246:93;:::i;:::-;11364:2;11359:3;11355:12;11348:19;;11007:366;;;:::o;11379:419::-;11545:4;11583:2;11572:9;11568:18;11560:26;;11632:9;11626:4;11622:20;11618:1;11607:9;11603:17;11596:47;11660:131;11786:4;11660:131;:::i;:::-;11652:139;;11379:419;;;:::o;11804:168::-;11944:20;11940:1;11932:6;11928:14;11921:44;11804:168;:::o;11978:366::-;12120:3;12141:67;12205:2;12200:3;12141:67;:::i;:::-;12134:74;;12217:93;12306:3;12217:93;:::i;:::-;12335:2;12330:3;12326:12;12319:19;;11978:366;;;:::o;12350:419::-;12516:4;12554:2;12543:9;12539:18;12531:26;;12603:9;12597:4;12593:20;12589:1;12578:9;12574:17;12567:47;12631:131;12757:4;12631:131;:::i;:::-;12623:139;;12350:419;;;:::o;12775:223::-;12915:34;12911:1;12903:6;12899:14;12892:58;12984:6;12979:2;12971:6;12967:15;12960:31;12775:223;:::o;13004:366::-;13146:3;13167:67;13231:2;13226:3;13167:67;:::i;:::-;13160:74;;13243:93;13332:3;13243:93;:::i;:::-;13361:2;13356:3;13352:12;13345:19;;13004:366;;;:::o;13376:419::-;13542:4;13580:2;13569:9;13565:18;13557:26;;13629:9;13623:4;13619:20;13615:1;13604:9;13600:17;13593:47;13657:131;13783:4;13657:131;:::i;:::-;13649:139;;13376:419;;;:::o;13801:143::-;13858:5;13889:6;13883:13;13874:22;;13905:33;13932:5;13905:33;:::i;:::-;13801:143;;;;:::o;13950:351::-;14020:6;14069:2;14057:9;14048:7;14044:23;14040:32;14037:119;;;14075:79;;:::i;:::-;14037:119;14195:1;14220:64;14276:7;14267:6;14256:9;14252:22;14220:64;:::i;:::-;14210:74;;14166:128;13950:351;;;;:::o;14307:332::-;14428:4;14466:2;14455:9;14451:18;14443:26;;14479:71;14547:1;14536:9;14532:17;14523:6;14479:71;:::i;:::-;14560:72;14628:2;14617:9;14613:18;14604:6;14560:72;:::i;:::-;14307:332;;;;;:::o;14645:85::-;14690:7;14719:5;14708:16;;14645:85;;;:::o;14736:60::-;14764:3;14785:5;14778:12;;14736:60;;;:::o;14802:158::-;14860:9;14893:61;14911:42;14920:32;14946:5;14920:32;:::i;:::-;14911:42;:::i;:::-;14893:61;:::i;:::-;14880:74;;14802:158;;;:::o;14966:147::-;15061:45;15100:5;15061:45;:::i;:::-;15056:3;15049:58;14966:147;;:::o;15119:807::-;15368:4;15406:3;15395:9;15391:19;15383:27;;15420:71;15488:1;15477:9;15473:17;15464:6;15420:71;:::i;:::-;15501:72;15569:2;15558:9;15554:18;15545:6;15501:72;:::i;:::-;15583:80;15659:2;15648:9;15644:18;15635:6;15583:80;:::i;:::-;15673;15749:2;15738:9;15734:18;15725:6;15673:80;:::i;:::-;15763:73;15831:3;15820:9;15816:19;15807:6;15763:73;:::i;:::-;15846;15914:3;15903:9;15899:19;15890:6;15846:73;:::i;:::-;15119:807;;;;;;;;;:::o;15932:143::-;15989:5;16020:6;16014:13;16005:22;;16036:33;16063:5;16036:33;:::i;:::-;15932:143;;;;:::o;16081:663::-;16169:6;16177;16185;16234:2;16222:9;16213:7;16209:23;16205:32;16202:119;;;16240:79;;:::i;:::-;16202:119;16360:1;16385:64;16441:7;16432:6;16421:9;16417:22;16385:64;:::i;:::-;16375:74;;16331:128;16498:2;16524:64;16580:7;16571:6;16560:9;16556:22;16524:64;:::i;:::-;16514:74;;16469:129;16637:2;16663:64;16719:7;16710:6;16699:9;16695:22;16663:64;:::i;:::-;16653:74;;16608:129;16081:663;;;;;:::o;16750:332::-;16871:4;16909:2;16898:9;16894:18;16886:26;;16922:71;16990:1;16979:9;16975:17;16966:6;16922:71;:::i;:::-;17003:72;17071:2;17060:9;17056:18;17047:6;17003:72;:::i;:::-;16750:332;;;;;:::o;17088:116::-;17158:21;17173:5;17158:21;:::i;:::-;17151:5;17148:32;17138:60;;17194:1;17191;17184:12;17138:60;17088:116;:::o;17210:137::-;17264:5;17295:6;17289:13;17280:22;;17311:30;17335:5;17311:30;:::i;:::-;17210:137;;;;:::o;17353:345::-;17420:6;17469:2;17457:9;17448:7;17444:23;17440:32;17437:119;;;17475:79;;:::i;:::-;17437:119;17595:1;17620:61;17673:7;17664:6;17653:9;17649:22;17620:61;:::i;:::-;17610:71;;17566:125;17353:345;;;;:::o;17704:175::-;17844:27;17840:1;17832:6;17828:14;17821:51;17704:175;:::o;17885:366::-;18027:3;18048:67;18112:2;18107:3;18048:67;:::i;:::-;18041:74;;18124:93;18213:3;18124:93;:::i;:::-;18242:2;18237:3;18233:12;18226:19;;17885:366;;;:::o;18257:419::-;18423:4;18461:2;18450:9;18446:18;18438:26;;18510:9;18504:4;18500:20;18496:1;18485:9;18481:17;18474:47;18538:131;18664:4;18538:131;:::i;:::-;18530:139;;18257:419;;;:::o;18682:170::-;18822:22;18818:1;18810:6;18806:14;18799:46;18682:170;:::o;18858:366::-;19000:3;19021:67;19085:2;19080:3;19021:67;:::i;:::-;19014:74;;19097:93;19186:3;19097:93;:::i;:::-;19215:2;19210:3;19206:12;19199:19;;18858:366;;;:::o;19230:419::-;19396:4;19434:2;19423:9;19419:18;19411:26;;19483:9;19477:4;19473:20;19469:1;19458:9;19454:17;19447:47;19511:131;19637:4;19511:131;:::i;:::-;19503:139;;19230:419;;;:::o;19655:224::-;19795:34;19791:1;19783:6;19779:14;19772:58;19864:7;19859:2;19851:6;19847:15;19840:32;19655:224;:::o;19885:366::-;20027:3;20048:67;20112:2;20107:3;20048:67;:::i;:::-;20041:74;;20124:93;20213:3;20124:93;:::i;:::-;20242:2;20237:3;20233:12;20226:19;;19885:366;;;:::o;20257:419::-;20423:4;20461:2;20450:9;20446:18;20438:26;;20510:9;20504:4;20500:20;20496:1;20485:9;20481:17;20474:47;20538:131;20664:4;20538:131;:::i;:::-;20530:139;;20257:419;;;:::o;20682:222::-;20822:34;20818:1;20810:6;20806:14;20799:58;20891:5;20886:2;20878:6;20874:15;20867:30;20682:222;:::o;20910:366::-;21052:3;21073:67;21137:2;21132:3;21073:67;:::i;:::-;21066:74;;21149:93;21238:3;21149:93;:::i;:::-;21267:2;21262:3;21258:12;21251:19;;20910:366;;;:::o;21282:419::-;21448:4;21486:2;21475:9;21471:18;21463:26;;21535:9;21529:4;21525:20;21521:1;21510:9;21506:17;21499:47;21563:131;21689:4;21563:131;:::i;:::-;21555:139;;21282:419;;;:::o;21707:228::-;21847:34;21843:1;21835:6;21831:14;21824:58;21916:11;21911:2;21903:6;21899:15;21892:36;21707:228;:::o;21941:366::-;22083:3;22104:67;22168:2;22163:3;22104:67;:::i;:::-;22097:74;;22180:93;22269:3;22180:93;:::i;:::-;22298:2;22293:3;22289:12;22282:19;;21941:366;;;:::o;22313:419::-;22479:4;22517:2;22506:9;22502:18;22494:26;;22566:9;22560:4;22556:20;22552:1;22541:9;22537:17;22530:47;22594:131;22720:4;22594:131;:::i;:::-;22586:139;;22313:419;;;:::o;22738:191::-;22778:3;22797:20;22815:1;22797:20;:::i;:::-;22792:25;;22831:20;22849:1;22831:20;:::i;:::-;22826:25;;22874:1;22871;22867:9;22860:16;;22895:3;22892:1;22889:10;22886:36;;;22902:18;;:::i;:::-;22886:36;22738:191;;;;:::o;22935:178::-;23075:30;23071:1;23063:6;23059:14;23052:54;22935:178;:::o;23119:366::-;23261:3;23282:67;23346:2;23341:3;23282:67;:::i;:::-;23275:74;;23358:93;23447:3;23358:93;:::i;:::-;23476:2;23471:3;23467:12;23460:19;;23119:366;;;:::o;23491:419::-;23657:4;23695:2;23684:9;23680:18;23672:26;;23744:9;23738:4;23734:20;23730:1;23719:9;23715:17;23708:47;23772:131;23898:4;23772:131;:::i;:::-;23764:139;;23491:419;;;:::o;23916:174::-;24056:26;24052:1;24044:6;24040:14;24033:50;23916:174;:::o;24096:366::-;24238:3;24259:67;24323:2;24318:3;24259:67;:::i;:::-;24252:74;;24335:93;24424:3;24335:93;:::i;:::-;24453:2;24448:3;24444:12;24437:19;;24096:366;;;:::o;24468:419::-;24634:4;24672:2;24661:9;24657:18;24649:26;;24721:9;24715:4;24711:20;24707:1;24696:9;24692:17;24685:47;24749:131;24875:4;24749:131;:::i;:::-;24741:139;;24468:419;;;:::o;24893:180::-;24941:77;24938:1;24931:88;25038:4;25035:1;25028:15;25062:4;25059:1;25052:15;25079:185;25119:1;25136:20;25154:1;25136:20;:::i;:::-;25131:25;;25170:20;25188:1;25170:20;:::i;:::-;25165:25;;25209:1;25199:35;;25214:18;;:::i;:::-;25199:35;25256:1;25253;25249:9;25244:14;;25079:185;;;;:::o;25270:194::-;25310:4;25330:20;25348:1;25330:20;:::i;:::-;25325:25;;25364:20;25382:1;25364:20;:::i;:::-;25359:25;;25408:1;25405;25401:9;25393:17;;25432:1;25426:4;25423:11;25420:37;;;25437:18;;:::i;:::-;25420:37;25270:194;;;;:::o;25470:180::-;25518:77;25515:1;25508:88;25615:4;25612:1;25605:15;25639:4;25636:1;25629:15;25656:180;25704:77;25701:1;25694:88;25801:4;25798:1;25791:15;25825:4;25822:1;25815:15;25842:233;25881:3;25904:24;25922:5;25904:24;:::i;:::-;25895:33;;25950:66;25943:5;25940:77;25937:103;;26020:18;;:::i;:::-;25937:103;26067:1;26060:5;26056:13;26049:20;;25842:233;;;:::o;26081:180::-;26129:77;26126:1;26119:88;26226:4;26223:1;26216:15;26250:4;26247:1;26240:15;26267:114;26334:6;26368:5;26362:12;26352:22;;26267:114;;;:::o;26387:184::-;26486:11;26520:6;26515:3;26508:19;26560:4;26555:3;26551:14;26536:29;;26387:184;;;;:::o;26577:132::-;26644:4;26667:3;26659:11;;26697:4;26692:3;26688:14;26680:22;;26577:132;;;:::o;26715:108::-;26792:24;26810:5;26792:24;:::i;:::-;26787:3;26780:37;26715:108;;:::o;26829:179::-;26898:10;26919:46;26961:3;26953:6;26919:46;:::i;:::-;26997:4;26992:3;26988:14;26974:28;;26829:179;;;;:::o;27014:113::-;27084:4;27116;27111:3;27107:14;27099:22;;27014:113;;;:::o;27163:732::-;27282:3;27311:54;27359:5;27311:54;:::i;:::-;27381:86;27460:6;27455:3;27381:86;:::i;:::-;27374:93;;27491:56;27541:5;27491:56;:::i;:::-;27570:7;27601:1;27586:284;27611:6;27608:1;27605:13;27586:284;;;27687:6;27681:13;27714:63;27773:3;27758:13;27714:63;:::i;:::-;27707:70;;27800:60;27853:6;27800:60;:::i;:::-;27790:70;;27646:224;27633:1;27630;27626:9;27621:14;;27586:284;;;27590:14;27886:3;27879:10;;27287:608;;;27163:732;;;;:::o;27901:831::-;28164:4;28202:3;28191:9;28187:19;28179:27;;28216:71;28284:1;28273:9;28269:17;28260:6;28216:71;:::i;:::-;28297:80;28373:2;28362:9;28358:18;28349:6;28297:80;:::i;:::-;28424:9;28418:4;28414:20;28409:2;28398:9;28394:18;28387:48;28452:108;28555:4;28546:6;28452:108;:::i;:::-;28444:116;;28570:72;28638:2;28627:9;28623:18;28614:6;28570:72;:::i;:::-;28652:73;28720:3;28709:9;28705:19;28696:6;28652:73;:::i;:::-;27901:831;;;;;;;;:::o

Swarm Source

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