ETH Price: $3,374.21 (-1.22%)
Gas: 11 Gwei

Token

Takoyaki | t.me/takoyakitoken (TAKOYAKI🐙)
 

Overview

Max Total Supply

1,000,000,000,000 TAKOYAKI🐙

Holders

370

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
525960.eth
Balance
47,939.559705164 TAKOYAKI🐙

Value
$0.00
0x97013995b4866f7279e2bf6dbd7677529b21a762
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:
TAKOYAKI

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-21
*/

/**
 * 🐙 Takoyaki Token 🐙
 * Telegram: https://t.me/takoyakitoken
 * 
 * TOKENOMICS:
 * 1,000,000,000,000 token supply
 * 15-second cooldown to sell after a buy, in order to limit bot behavior.
 * 0.6% buy limit / 45-second buy cooldown on launch, automatically lifted after 2 minutes
 * No buy or sell token limits
 * 10% total tax on buy
 * DYNAMIC FEE ON SELLS, relative to price impact, minimum of 10% fee and maximum of 40% fee, with NO SELL LIMIT.
 * After your first sell, 20 minute cooldown between your succeeding sells
 * No team tokens, no presale
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/
pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 TAKOYAKI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = unicode"Takoyaki | t.me/takoyakitoken";
    string private constant _symbol = unicode"TAKOYAKI🐙";
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 6;
    uint256 private _teamFee = 4;
    uint256 private _feeRate = 5;
    uint256 private _feeMultiplier = 1000;
    uint256 private _launchTime;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    uint256 private _maxBuyAmount;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private _cooldownEnabled = true;
    bool private inSwap = false;
    bool private _useImpactFeeSetter = true;
    uint256 private buyLimitEnd;
    struct User {
        uint256 buy;
        uint256 sell;
        uint256 rapid;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    function setFee(uint256 impactFee) private {
        uint256 _impactFee = 10;
        if(impactFee < 10) {
            _impactFee = 10;
        } else if(impactFee > 40) {
            _impactFee = 40;
        } else {
            _impactFee = impactFee;
        }
        if(_impactFee.mod(2) != 0) {
            _impactFee++;
        }
        _taxFee = (_impactFee.mul(6)).div(10);
        _teamFee = (_impactFee.mul(4)).div(10);
    }

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

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

        if(from != owner() && to != owner()) {
            if(_cooldownEnabled) {
                if(!cooldown[msg.sender].exists) {
                    cooldown[msg.sender] = User(0,0,0,true);
                }
            }

            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                _taxFee = 6;
                _teamFee = 4;
                if(_cooldownEnabled) {
                    if(buyLimitEnd > block.timestamp) {
                        require(amount <= _maxBuyAmount);
                        require(cooldown[to].buy < block.timestamp, "Your buy cooldown has not expired.");
                        cooldown[to].buy = block.timestamp + (45 seconds);
                    }
                }
                if(_cooldownEnabled) {
                    cooldown[to].sell = block.timestamp + (15 seconds);
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            // sell
            if(!inSwap && from != uniswapV2Pair && tradingOpen) {

                if(_cooldownEnabled) {
                    require(cooldown[from].sell < block.timestamp, "Your sell cooldown has not expired.");
                    require(cooldown[from].rapid < block.timestamp, "Your sell cooldown has not expired");
                }

                if(_useImpactFeeSetter) {
                    uint256 feeBasis = amount.mul(_feeMultiplier);
                    feeBasis = feeBasis.div(balanceOf(uniswapV2Pair).add(amount));
                    setFee(feeBasis);
                }

                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100);
                    }
                    cooldown[from].rapid = block.timestamp + (20 minutes);
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function addLiquidity() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        _maxBuyAmount = 6000000000 * 10**9;
        _launchTime = block.timestamp;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
        buyLimitEnd = block.timestamp + (120 seconds);
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    // fallback in case contract is not releasing tokens fast enough
    function setFeeRate(uint256 rate) external {
        require(_msgSender() == _FeeAddress);
        require(rate < 51, "Rate can't exceed 50%");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        _cooldownEnabled = onoff;
        emit CooldownEnabledUpdated(_cooldownEnabled);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function cooldownEnabled() public view returns (bool) {
        return _cooldownEnabled;
    }

    function timeToBuy(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].buy;
    }

    function timeToSell(address buyer) public view returns (uint) {
        return block.timestamp - cooldown[buyer].sell;
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","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":"cooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"buyer","type":"address"}],"name":"timeToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000588565b6000196200002c91906200050f565b60075560066009556004600a556005600b556103e8600c55600954600e55600a54600f556001601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506001601460176101000a81548160ff021916908315150217905550348015620000ae57600080fd5b506040516200424d3803806200424d8339818101604052810190620000d491906200049a565b6000620000e66200045260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600754600260006200021d6200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002716200045a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003da6200045260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004429190620004f2565b60405180910390a350506200063d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004948162000623565b92915050565b60008060408385031215620004b457620004b36200061e565b5b6000620004c48582860162000483565b9250506020620004d78582860162000483565b9150509250929050565b620004ec816200057e565b82525050565b6000602082019050620005096000830184620004e1565b92915050565b60006200051c826200057e565b915062000529836200057e565b9250828210156200053f576200053e620005c0565b5b828203905092915050565b600062000557826200055e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000595826200057e565b9150620005a2836200057e565b925082620005b557620005b4620005ef565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200062e816200054a565b81146200063a57600080fd5b50565b613c00806200064d6000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063a9fc35a91161006f578063a9fc35a914610423578063c3c8cd8014610460578063c9567bf914610477578063db92dbb61461048e578063dd62ed3e146104b9578063e8078d94146104f657610140565b8063715018a61461034e5780638da5cb5b1461036557806395d89b4114610390578063a9059cbb146103bb578063a985ceef146103f857610140565b8063313ce567116100fd578063313ce5671461024057806345596e2e1461026b5780635932ead11461029457806368a3a6a5146102bd5780636fc3eaec146102fa57806370a082311461031157610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d857806327f3a72a1461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050d565b6040516101679190613198565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612c7f565b61054a565b6040516101a4919061317d565b60405180910390f35b3480156101b957600080fd5b506101c2610568565b6040516101cf919061339a565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612c2c565b610579565b60405161020c919061317d565b60405180910390f35b34801561022157600080fd5b5061022a610652565b604051610237919061339a565b60405180910390f35b34801561024c57600080fd5b50610255610662565b604051610262919061340f565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d19565b61066b565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612cbf565b610752565b005b3480156102c957600080fd5b506102e460048036038101906102df9190612b92565b61084a565b6040516102f1919061339a565b60405180910390f35b34801561030657600080fd5b5061030f6108a1565b005b34801561031d57600080fd5b5061033860048036038101906103339190612b92565b610913565b604051610345919061339a565b60405180910390f35b34801561035a57600080fd5b50610363610964565b005b34801561037157600080fd5b5061037a610ab7565b60405161038791906130af565b60405180910390f35b34801561039c57600080fd5b506103a5610ae0565b6040516103b29190613198565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612c7f565b610b1d565b6040516103ef919061317d565b60405180910390f35b34801561040457600080fd5b5061040d610b3b565b60405161041a919061317d565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190612b92565b610b52565b604051610457919061339a565b60405180910390f35b34801561046c57600080fd5b50610475610ba9565b005b34801561048357600080fd5b5061048c610c23565b005b34801561049a57600080fd5b506104a3610ce7565b6040516104b0919061339a565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190612bec565b610d19565b6040516104ed919061339a565b60405180910390f35b34801561050257600080fd5b5061050b610da0565b005b60606040518060400160405280601d81526020017f54616b6f79616b69207c20742e6d652f74616b6f79616b69746f6b656e000000815250905090565b600061055e6105576112b0565b84846112b8565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610586848484611483565b610647846105926112b0565b61064285604051806060016040528060288152602001613ba360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f86112b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e369092919063ffffffff16565b6112b8565b600190509392505050565b600061065d30610913565b905090565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ac6112b0565b73ffffffffffffffffffffffffffffffffffffffff16146106cc57600080fd5b6033811061070f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107069061327a565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b54604051610747919061339a565b60405180910390a150565b61075a6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de906132da565b60405180910390fd5b80601460156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601460159054906101000a900460ff1660405161083f919061317d565b60405180910390a150565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544261089a9190613560565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e26112b0565b73ffffffffffffffffffffffffffffffffffffffff161461090257600080fd5b600047905061091081611e9a565b50565b600061095d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f95565b9050919050565b61096c6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f0906132da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f54414b4f59414b49f09f90990000000000000000000000000000000000000000815250905090565b6000610b31610b2a6112b0565b8484611483565b6001905092915050565b6000601460159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610ba29190613560565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bea6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a57600080fd5b6000610c1530610913565b9050610c2081612003565b50565b610c2b6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906132da565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550607842610cdf919061347f565b601581905550565b6000610d14601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610da86112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906132da565b60405180910390fd5b60148054906101000a900460ff1615610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a9061335a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f1330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006112b8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5957600080fd5b505afa158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f919190612bbf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff357600080fd5b505afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b9190612bbf565b6040518363ffffffff1660e01b81526004016110489291906130ca565b602060405180830381600087803b15801561106257600080fd5b505af1158015611076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109a9190612bbf565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061112330610913565b60008061112e610ab7565b426040518863ffffffff1660e01b81526004016111509695949392919061311c565b6060604051808303818588803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111a29190612d46565b5050506753444835ec58000060108190555042600d81905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125a9291906130f3565b602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612cec565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f9061333a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906131fa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611476919061339a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea9061331a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906131ba565b60405180910390fd5b600081116115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d906132fa565b60405180910390fd5b6115ae610ab7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610ab7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7357601460159054906101000a900460ff161561173357600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1661173257604051806080016040528060008152602001600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117de5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118345750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a075760148054906101000a900460ff16611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d9061337a565b60405180910390fd5b60066009819055506004600a81905550601460159054906101000a900460ff161561199d5742601554111561199c576010548111156118c457600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f9061323a565b60405180910390fd5b602d42611955919061347f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601460159054906101000a900460ff1615611a0657600f426119bf919061347f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611a1230610913565b9050601460169054906101000a900460ff16158015611a7f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a95575060148054906101000a900460ff165b15611d7157601460159054906101000a900460ff1615611bb85742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061329a565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae9061321a565b60405180910390fd5b5b601460179054906101000a900460ff1615611c42576000611be4600c548461228b90919063ffffffff16565b9050611c35611c2684611c18601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61230690919063ffffffff16565b8261236490919063ffffffff16565b9050611c40816123ae565b505b6000811115611d5757611c9d6064611c8f600b54611c81601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61228b90919063ffffffff16565b61236490919063ffffffff16565b811115611cf957611cf66064611ce8600b54611cda601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61228b90919063ffffffff16565b61236490919063ffffffff16565b90505b6104b042611d07919061347f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611d5681612003565b5b60004790506000811115611d6f57611d6e47611e9a565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e1a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e2457600090505b611e3084848484612465565b50505050565b6000838311158290611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e759190613198565b60405180910390fd5b5060008385611e8d9190613560565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eea60028461236490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f15573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f6660028461236490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f91573d6000803e3d6000fd5b5050565b6000600754821115611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd3906131da565b60405180910390fd5b6000611fe6612492565b9050611ffb818461236490919063ffffffff16565b915050919050565b6001601460166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203b5761203a613735565b5b6040519080825280602002602001820160405280156120695781602001602082028036833780820191505090505b509050308160008151811061208157612080613706565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561212357600080fd5b505afa158015612137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215b9190612bbf565b8160018151811061216f5761216e613706565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121d630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b8565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161223a9594939291906133b5565b600060405180830381600087803b15801561225457600080fd5b505af1158015612268573d6000803e3d6000fd5b50505050506000601460166101000a81548160ff02191690831515021790555050565b60008083141561229e5760009050612300565b600082846122ac9190613506565b90508284826122bb91906134d5565b146122fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f2906132ba565b60405180910390fd5b809150505b92915050565b6000808284612315919061347f565b90508381101561235a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123519061325a565b60405180910390fd5b8091505092915050565b60006123a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124bd565b905092915050565b6000600a9050600a8210156123c657600a90506123dd565b60288211156123d857602890506123dc565b8190505b5b60006123f360028361252090919063ffffffff16565b146124075780806124039061362e565b9150505b61242e600a61242060068461228b90919063ffffffff16565b61236490919063ffffffff16565b60098190555061245b600a61244d60048461228b90919063ffffffff16565b61236490919063ffffffff16565b600a819055505050565b806124735761247261256a565b5b61247e8484846125ad565b8061248c5761248b612778565b5b50505050565b600080600061249f61278c565b915091506124b6818361236490919063ffffffff16565b9250505090565b60008083118290612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb9190613198565b60405180910390fd5b506000838561251391906134d5565b9050809150509392505050565b600061256283836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506127ee565b905092915050565b600060095414801561257e57506000600a54145b15612588576125ab565b600954600e81905550600a54600f8190555060006009819055506000600a819055505b565b6000806000806000806125bf8761284c565b95509550955095509550955061261d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fe816128fe565b61270884836129bb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612765919061339a565b60405180910390a3505050505050505050565b600e54600981905550600f54600a81905550565b600080600060075490506000683635c9adc5dea0000090506127c2683635c9adc5dea0000060075461236490919063ffffffff16565b8210156127e157600754683635c9adc5dea000009350935050506127ea565b81819350935050505b9091565b6000808314158290612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282d9190613198565b60405180910390fd5b5082846128439190613677565b90509392505050565b60008060008060008060008060006128698a600954600a546129f5565b9250925092506000612879612492565b9050600080600061288c8e878787612a8b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e36565b905092915050565b6000612908612492565b9050600061291f828461228b90919063ffffffff16565b905061297381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129d0826007546128b490919063ffffffff16565b6007819055506129eb8160085461230690919063ffffffff16565b6008819055505050565b600080600080612a216064612a13888a61228b90919063ffffffff16565b61236490919063ffffffff16565b90506000612a4b6064612a3d888b61228b90919063ffffffff16565b61236490919063ffffffff16565b90506000612a7482612a66858c6128b490919063ffffffff16565b6128b490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa4858961228b90919063ffffffff16565b90506000612abb868961228b90919063ffffffff16565b90506000612ad2878961228b90919063ffffffff16565b90506000612afb82612aed85876128b490919063ffffffff16565b6128b490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612b2381613b5d565b92915050565b600081519050612b3881613b5d565b92915050565b600081359050612b4d81613b74565b92915050565b600081519050612b6281613b74565b92915050565b600081359050612b7781613b8b565b92915050565b600081519050612b8c81613b8b565b92915050565b600060208284031215612ba857612ba7613764565b5b6000612bb684828501612b14565b91505092915050565b600060208284031215612bd557612bd4613764565b5b6000612be384828501612b29565b91505092915050565b60008060408385031215612c0357612c02613764565b5b6000612c1185828601612b14565b9250506020612c2285828601612b14565b9150509250929050565b600080600060608486031215612c4557612c44613764565b5b6000612c5386828701612b14565b9350506020612c6486828701612b14565b9250506040612c7586828701612b68565b9150509250925092565b60008060408385031215612c9657612c95613764565b5b6000612ca485828601612b14565b9250506020612cb585828601612b68565b9150509250929050565b600060208284031215612cd557612cd4613764565b5b6000612ce384828501612b3e565b91505092915050565b600060208284031215612d0257612d01613764565b5b6000612d1084828501612b53565b91505092915050565b600060208284031215612d2f57612d2e613764565b5b6000612d3d84828501612b68565b91505092915050565b600080600060608486031215612d5f57612d5e613764565b5b6000612d6d86828701612b7d565b9350506020612d7e86828701612b7d565b9250506040612d8f86828701612b7d565b9150509250925092565b6000612da58383612db1565b60208301905092915050565b612dba81613594565b82525050565b612dc981613594565b82525050565b6000612dda8261343a565b612de4818561345d565b9350612def8361342a565b8060005b83811015612e20578151612e078882612d99565b9750612e1283613450565b925050600181019050612df3565b5085935050505092915050565b612e36816135a6565b82525050565b612e45816135e9565b82525050565b6000612e5682613445565b612e60818561346e565b9350612e708185602086016135fb565b612e7981613769565b840191505092915050565b6000612e9160238361346e565b9150612e9c8261377a565b604082019050919050565b6000612eb4602a8361346e565b9150612ebf826137c9565b604082019050919050565b6000612ed760228361346e565b9150612ee282613818565b604082019050919050565b6000612efa60228361346e565b9150612f0582613867565b604082019050919050565b6000612f1d60228361346e565b9150612f28826138b6565b604082019050919050565b6000612f40601b8361346e565b9150612f4b82613905565b602082019050919050565b6000612f6360158361346e565b9150612f6e8261392e565b602082019050919050565b6000612f8660238361346e565b9150612f9182613957565b604082019050919050565b6000612fa960218361346e565b9150612fb4826139a6565b604082019050919050565b6000612fcc60208361346e565b9150612fd7826139f5565b602082019050919050565b6000612fef60298361346e565b9150612ffa82613a1e565b604082019050919050565b600061301260258361346e565b915061301d82613a6d565b604082019050919050565b600061303560248361346e565b915061304082613abc565b604082019050919050565b600061305860178361346e565b915061306382613b0b565b602082019050919050565b600061307b60188361346e565b915061308682613b34565b602082019050919050565b61309a816135d2565b82525050565b6130a9816135dc565b82525050565b60006020820190506130c46000830184612dc0565b92915050565b60006040820190506130df6000830185612dc0565b6130ec6020830184612dc0565b9392505050565b60006040820190506131086000830185612dc0565b6131156020830184613091565b9392505050565b600060c0820190506131316000830189612dc0565b61313e6020830188613091565b61314b6040830187612e3c565b6131586060830186612e3c565b6131656080830185612dc0565b61317260a0830184613091565b979650505050505050565b60006020820190506131926000830184612e2d565b92915050565b600060208201905081810360008301526131b28184612e4b565b905092915050565b600060208201905081810360008301526131d381612e84565b9050919050565b600060208201905081810360008301526131f381612ea7565b9050919050565b6000602082019050818103600083015261321381612eca565b9050919050565b6000602082019050818103600083015261323381612eed565b9050919050565b6000602082019050818103600083015261325381612f10565b9050919050565b6000602082019050818103600083015261327381612f33565b9050919050565b6000602082019050818103600083015261329381612f56565b9050919050565b600060208201905081810360008301526132b381612f79565b9050919050565b600060208201905081810360008301526132d381612f9c565b9050919050565b600060208201905081810360008301526132f381612fbf565b9050919050565b6000602082019050818103600083015261331381612fe2565b9050919050565b6000602082019050818103600083015261333381613005565b9050919050565b6000602082019050818103600083015261335381613028565b9050919050565b600060208201905081810360008301526133738161304b565b9050919050565b600060208201905081810360008301526133938161306e565b9050919050565b60006020820190506133af6000830184613091565b92915050565b600060a0820190506133ca6000830188613091565b6133d76020830187612e3c565b81810360408301526133e98186612dcf565b90506133f86060830185612dc0565b6134056080830184613091565b9695505050505050565b600060208201905061342460008301846130a0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061348a826135d2565b9150613495836135d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134ca576134c96136a8565b5b828201905092915050565b60006134e0826135d2565b91506134eb836135d2565b9250826134fb576134fa6136d7565b5b828204905092915050565b6000613511826135d2565b915061351c836135d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613555576135546136a8565b5b828202905092915050565b600061356b826135d2565b9150613576836135d2565b925082821015613589576135886136a8565b5b828203905092915050565b600061359f826135b2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006135f4826135d2565b9050919050565b60005b838110156136195780820151818401526020810190506135fe565b83811115613628576000848401525b50505050565b6000613639826135d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561366c5761366b6136a8565b5b600182019050919050565b6000613682826135d2565b915061368d836135d2565b92508261369d5761369c6136d7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b6681613594565b8114613b7157600080fd5b50565b613b7d816135a6565b8114613b8857600080fd5b50565b613b94816135d2565b8114613b9f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ba38bcbe5a9d11db6390b01adc63acc54f4e94c7f4204b0e44e69dc3aad241e964736f6c634300080500330000000000000000000000008412441e27ae0d27de3a1eb553bfada7da20d4cf0000000000000000000000000e9d1a071cee3b708bf85b813ae430a3c1abd713

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063a9fc35a91161006f578063a9fc35a914610423578063c3c8cd8014610460578063c9567bf914610477578063db92dbb61461048e578063dd62ed3e146104b9578063e8078d94146104f657610140565b8063715018a61461034e5780638da5cb5b1461036557806395d89b4114610390578063a9059cbb146103bb578063a985ceef146103f857610140565b8063313ce567116100fd578063313ce5671461024057806345596e2e1461026b5780635932ead11461029457806368a3a6a5146102bd5780636fc3eaec146102fa57806370a082311461031157610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad57806323b872dd146101d857806327f3a72a1461021557610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050d565b6040516101679190613198565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612c7f565b61054a565b6040516101a4919061317d565b60405180910390f35b3480156101b957600080fd5b506101c2610568565b6040516101cf919061339a565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa9190612c2c565b610579565b60405161020c919061317d565b60405180910390f35b34801561022157600080fd5b5061022a610652565b604051610237919061339a565b60405180910390f35b34801561024c57600080fd5b50610255610662565b604051610262919061340f565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612d19565b61066b565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612cbf565b610752565b005b3480156102c957600080fd5b506102e460048036038101906102df9190612b92565b61084a565b6040516102f1919061339a565b60405180910390f35b34801561030657600080fd5b5061030f6108a1565b005b34801561031d57600080fd5b5061033860048036038101906103339190612b92565b610913565b604051610345919061339a565b60405180910390f35b34801561035a57600080fd5b50610363610964565b005b34801561037157600080fd5b5061037a610ab7565b60405161038791906130af565b60405180910390f35b34801561039c57600080fd5b506103a5610ae0565b6040516103b29190613198565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612c7f565b610b1d565b6040516103ef919061317d565b60405180910390f35b34801561040457600080fd5b5061040d610b3b565b60405161041a919061317d565b60405180910390f35b34801561042f57600080fd5b5061044a60048036038101906104459190612b92565b610b52565b604051610457919061339a565b60405180910390f35b34801561046c57600080fd5b50610475610ba9565b005b34801561048357600080fd5b5061048c610c23565b005b34801561049a57600080fd5b506104a3610ce7565b6040516104b0919061339a565b60405180910390f35b3480156104c557600080fd5b506104e060048036038101906104db9190612bec565b610d19565b6040516104ed919061339a565b60405180910390f35b34801561050257600080fd5b5061050b610da0565b005b60606040518060400160405280601d81526020017f54616b6f79616b69207c20742e6d652f74616b6f79616b69746f6b656e000000815250905090565b600061055e6105576112b0565b84846112b8565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610586848484611483565b610647846105926112b0565b61064285604051806060016040528060288152602001613ba360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f86112b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e369092919063ffffffff16565b6112b8565b600190509392505050565b600061065d30610913565b905090565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ac6112b0565b73ffffffffffffffffffffffffffffffffffffffff16146106cc57600080fd5b6033811061070f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107069061327a565b60405180910390fd5b80600b819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600b54604051610747919061339a565b60405180910390a150565b61075a6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107de906132da565b60405180910390fd5b80601460156101000a81548160ff0219169083151502179055507f0d63187a8abb5b4d1bb562e1163897386b0a88ee72e0799dd105bd0fd6f28706601460159054906101000a900460ff1660405161083f919061317d565b60405180910390a150565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001544261089a9190613560565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e26112b0565b73ffffffffffffffffffffffffffffffffffffffff161461090257600080fd5b600047905061091081611e9a565b50565b600061095d600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f95565b9050919050565b61096c6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f0906132da565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f54414b4f59414b49f09f90990000000000000000000000000000000000000000815250905090565b6000610b31610b2a6112b0565b8484611483565b6001905092915050565b6000601460159054906101000a900460ff16905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015442610ba29190613560565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bea6112b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c0a57600080fd5b6000610c1530610913565b9050610c2081612003565b50565b610c2b6112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caf906132da565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550607842610cdf919061347f565b601581905550565b6000610d14601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610da86112b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c906132da565b60405180910390fd5b60148054906101000a900460ff1615610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a9061335a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f1330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006112b8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f5957600080fd5b505afa158015610f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f919190612bbf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff357600080fd5b505afa158015611007573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102b9190612bbf565b6040518363ffffffff1660e01b81526004016110489291906130ca565b602060405180830381600087803b15801561106257600080fd5b505af1158015611076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109a9190612bbf565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061112330610913565b60008061112e610ab7565b426040518863ffffffff1660e01b81526004016111509695949392919061311c565b6060604051808303818588803b15801561116957600080fd5b505af115801561117d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111a29190612d46565b5050506753444835ec58000060108190555042600d81905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161125a9291906130f3565b602060405180830381600087803b15801561127457600080fd5b505af1158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612cec565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f9061333a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f906131fa565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611476919061339a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea9061331a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611563576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155a906131ba565b60405180910390fd5b600081116115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d906132fa565b60405180910390fd5b6115ae610ab7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610ab7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d7357601460159054906101000a900460ff161561173357600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff1661173257604051806080016040528060008152602001600081526020016000815260200160011515815250600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117de5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118345750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a075760148054906101000a900460ff16611886576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187d9061337a565b60405180910390fd5b60066009819055506004600a81905550601460159054906101000a900460ff161561199d5742601554111561199c576010548111156118c457600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611948576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193f9061323a565b60405180910390fd5b602d42611955919061347f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b5b601460159054906101000a900460ff1615611a0657600f426119bf919061347f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b5b6000611a1230610913565b9050601460169054906101000a900460ff16158015611a7f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a95575060148054906101000a900460ff165b15611d7157601460159054906101000a900460ff1615611bb85742600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a9061329a565b60405180910390fd5b42600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015410611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae9061321a565b60405180910390fd5b5b601460179054906101000a900460ff1615611c42576000611be4600c548461228b90919063ffffffff16565b9050611c35611c2684611c18601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61230690919063ffffffff16565b8261236490919063ffffffff16565b9050611c40816123ae565b505b6000811115611d5757611c9d6064611c8f600b54611c81601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61228b90919063ffffffff16565b61236490919063ffffffff16565b811115611cf957611cf66064611ce8600b54611cda601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610913565b61228b90919063ffffffff16565b61236490919063ffffffff16565b90505b6104b042611d07919061347f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550611d5681612003565b5b60004790506000811115611d6f57611d6e47611e9a565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e1a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611e2457600090505b611e3084848484612465565b50505050565b6000838311158290611e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e759190613198565b60405180910390fd5b5060008385611e8d9190613560565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eea60028461236490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f15573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f6660028461236490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f91573d6000803e3d6000fd5b5050565b6000600754821115611fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd3906131da565b60405180910390fd5b6000611fe6612492565b9050611ffb818461236490919063ffffffff16565b915050919050565b6001601460166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203b5761203a613735565b5b6040519080825280602002602001820160405280156120695781602001602082028036833780820191505090505b509050308160008151811061208157612080613706565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561212357600080fd5b505afa158015612137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215b9190612bbf565b8160018151811061216f5761216e613706565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121d630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b8565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161223a9594939291906133b5565b600060405180830381600087803b15801561225457600080fd5b505af1158015612268573d6000803e3d6000fd5b50505050506000601460166101000a81548160ff02191690831515021790555050565b60008083141561229e5760009050612300565b600082846122ac9190613506565b90508284826122bb91906134d5565b146122fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f2906132ba565b60405180910390fd5b809150505b92915050565b6000808284612315919061347f565b90508381101561235a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123519061325a565b60405180910390fd5b8091505092915050565b60006123a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124bd565b905092915050565b6000600a9050600a8210156123c657600a90506123dd565b60288211156123d857602890506123dc565b8190505b5b60006123f360028361252090919063ffffffff16565b146124075780806124039061362e565b9150505b61242e600a61242060068461228b90919063ffffffff16565b61236490919063ffffffff16565b60098190555061245b600a61244d60048461228b90919063ffffffff16565b61236490919063ffffffff16565b600a819055505050565b806124735761247261256a565b5b61247e8484846125ad565b8061248c5761248b612778565b5b50505050565b600080600061249f61278c565b915091506124b6818361236490919063ffffffff16565b9250505090565b60008083118290612504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fb9190613198565b60405180910390fd5b506000838561251391906134d5565b9050809150509392505050565b600061256283836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f00000000000000008152506127ee565b905092915050565b600060095414801561257e57506000600a54145b15612588576125ab565b600954600e81905550600a54600f8190555060006009819055506000600a819055505b565b6000806000806000806125bf8761284c565b95509550955095509550955061261d86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b285600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230690919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126fe816128fe565b61270884836129bb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612765919061339a565b60405180910390a3505050505050505050565b600e54600981905550600f54600a81905550565b600080600060075490506000683635c9adc5dea0000090506127c2683635c9adc5dea0000060075461236490919063ffffffff16565b8210156127e157600754683635c9adc5dea000009350935050506127ea565b81819350935050505b9091565b6000808314158290612836576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282d9190613198565b60405180910390fd5b5082846128439190613677565b90509392505050565b60008060008060008060008060006128698a600954600a546129f5565b9250925092506000612879612492565b9050600080600061288c8e878787612a8b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e36565b905092915050565b6000612908612492565b9050600061291f828461228b90919063ffffffff16565b905061297381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461230690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129d0826007546128b490919063ffffffff16565b6007819055506129eb8160085461230690919063ffffffff16565b6008819055505050565b600080600080612a216064612a13888a61228b90919063ffffffff16565b61236490919063ffffffff16565b90506000612a4b6064612a3d888b61228b90919063ffffffff16565b61236490919063ffffffff16565b90506000612a7482612a66858c6128b490919063ffffffff16565b6128b490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa4858961228b90919063ffffffff16565b90506000612abb868961228b90919063ffffffff16565b90506000612ad2878961228b90919063ffffffff16565b90506000612afb82612aed85876128b490919063ffffffff16565b6128b490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081359050612b2381613b5d565b92915050565b600081519050612b3881613b5d565b92915050565b600081359050612b4d81613b74565b92915050565b600081519050612b6281613b74565b92915050565b600081359050612b7781613b8b565b92915050565b600081519050612b8c81613b8b565b92915050565b600060208284031215612ba857612ba7613764565b5b6000612bb684828501612b14565b91505092915050565b600060208284031215612bd557612bd4613764565b5b6000612be384828501612b29565b91505092915050565b60008060408385031215612c0357612c02613764565b5b6000612c1185828601612b14565b9250506020612c2285828601612b14565b9150509250929050565b600080600060608486031215612c4557612c44613764565b5b6000612c5386828701612b14565b9350506020612c6486828701612b14565b9250506040612c7586828701612b68565b9150509250925092565b60008060408385031215612c9657612c95613764565b5b6000612ca485828601612b14565b9250506020612cb585828601612b68565b9150509250929050565b600060208284031215612cd557612cd4613764565b5b6000612ce384828501612b3e565b91505092915050565b600060208284031215612d0257612d01613764565b5b6000612d1084828501612b53565b91505092915050565b600060208284031215612d2f57612d2e613764565b5b6000612d3d84828501612b68565b91505092915050565b600080600060608486031215612d5f57612d5e613764565b5b6000612d6d86828701612b7d565b9350506020612d7e86828701612b7d565b9250506040612d8f86828701612b7d565b9150509250925092565b6000612da58383612db1565b60208301905092915050565b612dba81613594565b82525050565b612dc981613594565b82525050565b6000612dda8261343a565b612de4818561345d565b9350612def8361342a565b8060005b83811015612e20578151612e078882612d99565b9750612e1283613450565b925050600181019050612df3565b5085935050505092915050565b612e36816135a6565b82525050565b612e45816135e9565b82525050565b6000612e5682613445565b612e60818561346e565b9350612e708185602086016135fb565b612e7981613769565b840191505092915050565b6000612e9160238361346e565b9150612e9c8261377a565b604082019050919050565b6000612eb4602a8361346e565b9150612ebf826137c9565b604082019050919050565b6000612ed760228361346e565b9150612ee282613818565b604082019050919050565b6000612efa60228361346e565b9150612f0582613867565b604082019050919050565b6000612f1d60228361346e565b9150612f28826138b6565b604082019050919050565b6000612f40601b8361346e565b9150612f4b82613905565b602082019050919050565b6000612f6360158361346e565b9150612f6e8261392e565b602082019050919050565b6000612f8660238361346e565b9150612f9182613957565b604082019050919050565b6000612fa960218361346e565b9150612fb4826139a6565b604082019050919050565b6000612fcc60208361346e565b9150612fd7826139f5565b602082019050919050565b6000612fef60298361346e565b9150612ffa82613a1e565b604082019050919050565b600061301260258361346e565b915061301d82613a6d565b604082019050919050565b600061303560248361346e565b915061304082613abc565b604082019050919050565b600061305860178361346e565b915061306382613b0b565b602082019050919050565b600061307b60188361346e565b915061308682613b34565b602082019050919050565b61309a816135d2565b82525050565b6130a9816135dc565b82525050565b60006020820190506130c46000830184612dc0565b92915050565b60006040820190506130df6000830185612dc0565b6130ec6020830184612dc0565b9392505050565b60006040820190506131086000830185612dc0565b6131156020830184613091565b9392505050565b600060c0820190506131316000830189612dc0565b61313e6020830188613091565b61314b6040830187612e3c565b6131586060830186612e3c565b6131656080830185612dc0565b61317260a0830184613091565b979650505050505050565b60006020820190506131926000830184612e2d565b92915050565b600060208201905081810360008301526131b28184612e4b565b905092915050565b600060208201905081810360008301526131d381612e84565b9050919050565b600060208201905081810360008301526131f381612ea7565b9050919050565b6000602082019050818103600083015261321381612eca565b9050919050565b6000602082019050818103600083015261323381612eed565b9050919050565b6000602082019050818103600083015261325381612f10565b9050919050565b6000602082019050818103600083015261327381612f33565b9050919050565b6000602082019050818103600083015261329381612f56565b9050919050565b600060208201905081810360008301526132b381612f79565b9050919050565b600060208201905081810360008301526132d381612f9c565b9050919050565b600060208201905081810360008301526132f381612fbf565b9050919050565b6000602082019050818103600083015261331381612fe2565b9050919050565b6000602082019050818103600083015261333381613005565b9050919050565b6000602082019050818103600083015261335381613028565b9050919050565b600060208201905081810360008301526133738161304b565b9050919050565b600060208201905081810360008301526133938161306e565b9050919050565b60006020820190506133af6000830184613091565b92915050565b600060a0820190506133ca6000830188613091565b6133d76020830187612e3c565b81810360408301526133e98186612dcf565b90506133f86060830185612dc0565b6134056080830184613091565b9695505050505050565b600060208201905061342460008301846130a0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061348a826135d2565b9150613495836135d2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134ca576134c96136a8565b5b828201905092915050565b60006134e0826135d2565b91506134eb836135d2565b9250826134fb576134fa6136d7565b5b828204905092915050565b6000613511826135d2565b915061351c836135d2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613555576135546136a8565b5b828202905092915050565b600061356b826135d2565b9150613576836135d2565b925082821015613589576135886136a8565b5b828203905092915050565b600061359f826135b2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006135f4826135d2565b9050919050565b60005b838110156136195780820151818401526020810190506135fe565b83811115613628576000848401525b50505050565b6000613639826135d2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561366c5761366b6136a8565b5b600182019050919050565b6000613682826135d2565b915061368d836135d2565b92508261369d5761369c6136d7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f6564000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f526174652063616e277420657863656564203530250000000000000000000000600082015250565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613b6681613594565b8114613b7157600080fd5b50565b613b7d816135a6565b8114613b8857600080fd5b50565b613b94816135d2565b8114613b9f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ba38bcbe5a9d11db6390b01adc63acc54f4e94c7f4204b0e44e69dc3aad241e964736f6c63430008050033

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

0000000000000000000000008412441e27ae0d27de3a1eb553bfada7da20d4cf0000000000000000000000000e9d1a071cee3b708bf85b813ae430a3c1abd713

-----Decoded View---------------
Arg [0] : FeeAddress (address): 0x8412441E27ae0D27de3a1eb553bFaDa7dA20d4CF
Arg [1] : marketingWalletAddress (address): 0x0e9d1a071CEe3B708bF85b813aE430A3C1Abd713

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008412441e27ae0d27de3a1eb553bfada7da20d4cf
Arg [1] : 0000000000000000000000000e9d1a071cee3b708bf85b813ae430a3c1abd713


Deployed Bytecode Sourcemap

4417:13852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6754:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7606:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17687:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6940:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17293:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17519:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17899:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17025:190;;;;;;;;;;;;;:::i;:::-;;7134:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:148;;;;;;;;;;;;;:::i;:::-;;3284:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6845:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7280:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17795:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18031:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16822:191;;;;;;;;;;;;;:::i;:::-;;16681:133;;;;;;;;;;;;;:::i;:::-;;18165:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15907:766;;;;;;;;;;;;;:::i;:::-;;6754:83;6791:13;6824:5;;;;;;;;;;;;;;;;;6817:12;;6754:83;:::o;7606:161::-;7681:4;7698:39;7707:12;:10;:12::i;:::-;7721:7;7730:6;7698:8;:39::i;:::-;7755:4;7748:11;;7606:161;;;;:::o;7031:95::-;7084:7;4873:12;7104:14;;7031:95;:::o;7775:313::-;7873:4;7890:36;7900:6;7908:9;7919:6;7890:9;:36::i;:::-;7937:121;7946:6;7954:12;:10;:12::i;:::-;7968:89;8006:6;7968:89;;;;;;;;;;;;;;;;;:11;:19;7980:6;7968:19;;;;;;;;;;;;;;;:33;7988:12;:10;:12::i;:::-;7968:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7937:8;:121::i;:::-;8076:4;8069:11;;7775:313;;;;;:::o;17687:100::-;17731:4;17755:24;17773:4;17755:9;:24::i;:::-;17748:31;;17687:100;:::o;6940:83::-;6981:5;5155:1;6999:16;;6940:83;:::o;17293:218::-;17371:11;;;;;;;;;;;17355:27;;:12;:10;:12::i;:::-;:27;;;17347:36;;;;;;17409:2;17402:4;:9;17394:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;17459:4;17448:8;:15;;;;17479:24;17494:8;;17479:24;;;;;;:::i;:::-;;;;;;;;17293:218;:::o;17519:160::-;3421:12;:10;:12::i;:::-;3411:22;;:6;;;;;;;;;;:22;;;3403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17610:5:::1;17591:16;;:24;;;;;;;;;;;;;;;;;;17631:40;17654:16;;;;;;;;;;;17631:40;;;;;;:::i;:::-;;;;;;;;17519:160:::0;:::o;17899:124::-;17954:4;17996:8;:15;18005:5;17996:15;;;;;;;;;;;;;;;:19;;;17978:15;:37;;;;:::i;:::-;17971:44;;17899:124;;;:::o;17025:190::-;17091:11;;;;;;;;;;;17075:27;;:12;:10;:12::i;:::-;:27;;;17067:36;;;;;;17114:26;17143:21;17114:50;;17175:32;17188:18;17175:12;:32::i;:::-;17056:159;17025:190::o;7134:138::-;7200:7;7227:37;7247:7;:16;7255:7;7247:16;;;;;;;;;;;;;;;;7227:19;:37::i;:::-;7220:44;;7134:138;;;:::o;3498:148::-;3421:12;:10;:12::i;:::-;3411:22;;:6;;;;;;;;;;:22;;;3403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3605:1:::1;3568:40;;3589:6;::::0;::::1;;;;;;;;3568:40;;;;;;;;;;;;3636:1;3619:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3498:148::o:0;3284:79::-;3322:7;3349:6;;;;;;;;;;;3342:13;;3284:79;:::o;6845:87::-;6884:13;6917:7;;;;;;;;;;;;;;;;;6910:14;;6845:87;:::o;7280:167::-;7358:4;7375:42;7385:12;:10;:12::i;:::-;7399:9;7410:6;7375:9;:42::i;:::-;7435:4;7428:11;;7280:167;;;;:::o;17795:96::-;17843:4;17867:16;;;;;;;;;;;17860:23;;17795:96;:::o;18031:126::-;18087:4;18129:8;:15;18138:5;18129:15;;;;;;;;;;;;;;;:20;;;18111:15;:38;;;;:::i;:::-;18104:45;;18031:126;;;:::o;16822:191::-;16888:11;;;;;;;;;;;16872:27;;:12;:10;:12::i;:::-;:27;;;16864:36;;;;;;16911:23;16937:24;16955:4;16937:9;:24::i;:::-;16911:50;;16972:33;16989:15;16972:16;:33::i;:::-;16853:160;16822:191::o;16681:133::-;3421:12;:10;:12::i;:::-;3411:22;;:6;;;;;;;;;;:22;;;3403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16746:4:::1;16732:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;16794:11;16775:15;:31;;;;:::i;:::-;16761:11;:45;;;;16681:133::o:0;18165:101::-;18210:4;18234:24;18244:13;;;;;;;;;;;18234:9;:24::i;:::-;18227:31;;18165:101;:::o;7455:143::-;7536:7;7563:11;:18;7575:5;7563:18;;;;;;;;;;;;;;;:27;7582:7;7563:27;;;;;;;;;;;;;;;;7556:34;;7455:143;;;;:::o;15907:766::-;3421:12;:10;:12::i;:::-;3411:22;;:6;;;;;;;;;;:22;;;3403:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:11:::1;::::0;::::1;;;;;;;;15971:12;15963:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;16021:35;16078:42;16021:100;;16150:16;16132:15;;:34;;;;;;;;;;;;;;;;;;16177:58;16194:4;16209:15;;;;;;;;;;;4873:12;16177:8;:58::i;:::-;16280:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16262:56;;;16327:4;16334:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16262:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16246:13;;:112;;;;;;;;;;;;;;;;;;16369:15;;;;;;;;;;;:31;;;16408:21;16439:4;16445:24;16463:4;16445:9;:24::i;:::-;16470:1;16472::::0;16474:7:::1;:5;:7::i;:::-;16482:15;16369:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16525:18;16509:13;:34;;;;16568:15;16554:11;:29;;;;16601:13;;;;;;;;;;;16594:29;;;16632:15;;;;;;;;;;;16650:14;16594:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15952:721;15907:766::o:0;693:98::-;746:7;773:10;766:17;;693:98;:::o;9162:335::-;9272:1;9255:19;;:5;:19;;;;9247:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:1;9334:21;;:7;:21;;;;9326:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9435:6;9405:11;:18;9417:5;9405:18;;;;;;;;;;;;;;;:27;9424:7;9405:27;;;;;;;;;;;;;;;:36;;;;9473:7;9457:32;;9466:5;9457:32;;;9482:6;9457:32;;;;;;:::i;:::-;;;;;;;;9162:335;;;:::o;9505:2852::-;9609:1;9593:18;;:4;:18;;;;9585:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9686:1;9672:16;;:2;:16;;;;9664:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9756:1;9747:6;:10;9739:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9827:7;:5;:7::i;:::-;9819:15;;:4;:15;;;;:32;;;;;9844:7;:5;:7::i;:::-;9838:13;;:2;:13;;;;9819:32;9816:2337;;;9871:16;;;;;;;;;;;9868:170;;;9912:8;:20;9921:10;9912:20;;;;;;;;;;;;;;;:27;;;;;;;;;;;;9908:115;;9987:16;;;;;;;;9992:1;9987:16;;;;9994:1;9987:16;;;;9996:1;9987:16;;;;9998:4;9987:16;;;;;9964:8;:20;9973:10;9964:20;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:115;9868:170;10085:13;;;;;;;;;;;10077:21;;:4;:21;;;:55;;;;;10116:15;;;;;;;;;;;10102:30;;:2;:30;;;;10077:55;:82;;;;;10137:18;:22;10156:2;10137:22;;;;;;;;;;;;;;;;;;;;;;;;;10136:23;10077:82;10074:745;;;10188:11;;;;;;;;;;10180:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10257:1;10247:7;:11;;;;10288:1;10277:8;:12;;;;10311:16;;;;;;;;;;;10308:364;;;10369:15;10355:11;;:29;10352:301;;;10431:13;;10421:6;:23;;10413:32;;;;;;10499:15;10480:8;:12;10489:2;10480:12;;;;;;;;;;;;;;;:16;;;:34;10472:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10618:10;10599:15;:30;;;;:::i;:::-;10580:8;:12;10589:2;10580:12;;;;;;;;;;;;;;;:16;;:49;;;;10352:301;10308:364;10693:16;;;;;;;;;;;10690:114;;;10773:10;10754:15;:30;;;;:::i;:::-;10734:8;:12;10743:2;10734:12;;;;;;;;;;;;;;;:17;;:50;;;;10690:114;10074:745;10833:28;10864:24;10882:4;10864:9;:24::i;:::-;10833:55;;10930:6;;;;;;;;;;;10929:7;:32;;;;;10948:13;;;;;;;;;;;10940:21;;:4;:21;;;;10929:32;:47;;;;;10965:11;;;;;;;;;;10929:47;10926:1216;;;11002:16;;;;;;;;;;;10999:257;;;11073:15;11051:8;:14;11060:4;11051:14;;;;;;;;;;;;;;;:19;;;:37;11043:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11182:15;11159:8;:14;11168:4;11159:14;;;;;;;;;;;;;;;:20;;;:38;11151:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;10999:257;11279:19;;;;;;;;;;;11276:235;;;11323:16;11342:26;11353:14;;11342:6;:10;;:26;;;;:::i;:::-;11323:45;;11402:50;11415:36;11444:6;11415:24;11425:13;;;;;;;;;;;11415:9;:24::i;:::-;:28;;:36;;;;:::i;:::-;11402:8;:12;;:50;;;;:::i;:::-;11391:61;;11475:16;11482:8;11475:6;:16::i;:::-;11300:211;11276:235;11557:1;11534:20;:24;11531:404;;;11609:47;11652:3;11609:38;11638:8;;11609:24;11619:13;;;;;;;;;;;11609:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11586:20;:70;11583:196;;;11708:47;11751:3;11708:38;11737:8;;11708:24;11718:13;;;;;;;;;;;11708:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;11685:70;;11583:196;11843:10;11824:15;:30;;;;:::i;:::-;11801:8;:14;11810:4;11801:14;;;;;;;;;;;;;;;:20;;:53;;;;11877:38;11894:20;11877:16;:38::i;:::-;11531:404;11953:26;11982:21;11953:50;;12046:1;12025:18;:22;12022:105;;;12072:35;12085:21;12072:12;:35::i;:::-;12022:105;10978:1164;10926:1216;9853:2300;9816:2337;12163:12;12178:4;12163:19;;12198:18;:24;12217:4;12198:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12226:18;:22;12245:2;12226:22;;;;;;;;;;;;;;;;;;;;;;;;;12198:50;12195:96;;;12274:5;12264:15;;12195:96;12311:38;12326:4;12331:2;12334:6;12341:7;12311:14;:38::i;:::-;9574:2783;9505:2852;;;:::o;1830:190::-;1916:7;1949:1;1944;:6;;1952:12;1936:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1830:190;;;;;:::o;12864:158::-;12921:11;;;;;;;;;;;:20;;:35;12942:13;12953:1;12942:6;:10;;:13;;;;:::i;:::-;12921:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12967:23;;;;;;;;;;;:32;;:47;13000:13;13011:1;13000:6;:10;;:13;;;;:::i;:::-;12967:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12864:158;:::o;8096:254::-;8163:7;8202;;8191;:18;;8183:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8267:19;8290:10;:8;:10::i;:::-;8267:33;;8318:24;8330:11;8318:7;:11;;:24;;;;:::i;:::-;8311:31;;;8096:254;;;:::o;12365:483::-;6203:4;6194:6;;:13;;;;;;;;;;;;;;;;;;12443:21:::1;12481:1;12467:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12443:40;;12512:4;12494;12499:1;12494:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12538:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12528:4;12533:1;12528:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12571:62;12588:4;12603:15;;;;;;;;;;;12621:11;12571:8;:62::i;:::-;12644:15;;;;;;;;;;;:66;;;12725:11;12751:1;12767:4;12794;12814:15;12644:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12432:416;6239:5:::0;6230:6;;:14;;;;;;;;;;;;;;;;;;12365:483;:::o;2028:245::-;2086:7;2114:1;2109;:6;2106:46;;;2139:1;2132:8;;;;2106:46;2162:9;2178:1;2174;:5;;;;:::i;:::-;2162:17;;2207:1;2202;2198;:5;;;;:::i;:::-;:10;2190:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2264:1;2257:8;;;2028:245;;;;;:::o;1499:179::-;1557:7;1577:9;1593:1;1589;:5;;;;:::i;:::-;1577:17;;1618:1;1613;:6;;1605:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1669:1;1662:8;;;1499:179;;;;:::o;2281:132::-;2339:7;2366:39;2370:1;2373;2366:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2359:46;;2281:132;;;;:::o;8703:451::-;8757:18;8778:2;8757:23;;8806:2;8794:9;:14;8791:183;;;8838:2;8825:15;;8791:183;;;8873:2;8861:9;:14;8858:116;;;8905:2;8892:15;;8858:116;;;8953:9;8940:22;;8858:116;8791:183;9008:1;8987:17;9002:1;8987:10;:14;;:17;;;;:::i;:::-;:22;8984:66;;9026:12;;;;;:::i;:::-;;;;8984:66;9070:27;9094:2;9071:17;9086:1;9071:10;:14;;:17;;;;:::i;:::-;9070:23;;:27;;;;:::i;:::-;9060:7;:37;;;;9119:27;9143:2;9120:17;9135:1;9120:10;:14;;:17;;;;:::i;:::-;9119:23;;:27;;;;:::i;:::-;9108:8;:38;;;;8746:408;8703:451;:::o;13034:263::-;13146:7;13142:40;;13168:14;:12;:14::i;:::-;13142:40;13193:44;13211:6;13219:9;13230:6;13193:17;:44::i;:::-;13252:7;13248:41;;13274:15;:13;:15::i;:::-;13248:41;13034:263;;;;:::o;14638:163::-;14679:7;14700:15;14717;14736:19;:17;:19::i;:::-;14699:56;;;;14773:20;14785:7;14773;:11;;:20;;;;:::i;:::-;14766:27;;;;14638:163;:::o;2421:189::-;2507:7;2539:1;2535;:5;2542:12;2527:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2566:9;2582:1;2578;:5;;;;:::i;:::-;2566:17;;2601:1;2594:8;;;2421:189;;;;;:::o;2618:130::-;2676:7;2703:37;2707:1;2710;2703:37;;;;;;;;;;;;;;;;;:3;:37::i;:::-;2696:44;;2618:130;;;;:::o;8358:210::-;8415:1;8404:7;;:12;:29;;;;;8432:1;8420:8;;:13;8404:29;8401:41;;;8435:7;;8401:41;8470:7;;8452:15;:25;;;;8507:8;;8488:16;:27;;;;8536:1;8526:7;:11;;;;8559:1;8548:8;:12;;;;8358:210;:::o;13305:490::-;13404:15;13421:23;13446:12;13460:23;13485:12;13499:13;13516:19;13527:7;13516:10;:19::i;:::-;13403:132;;;;;;;;;;;;13564:28;13584:7;13564;:15;13572:6;13564:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13546:7;:15;13554:6;13546:15;;;;;;;;;;;;;;;:46;;;;13624:39;13647:15;13624:7;:18;13632:9;13624:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13603:7;:18;13611:9;13603:18;;;;;;;;;;;;;;;:60;;;;13677:16;13687:5;13677:9;:16::i;:::-;13704:23;13716:4;13722;13704:11;:23::i;:::-;13760:9;13743:44;;13752:6;13743:44;;;13771:15;13743:44;;;;;;:::i;:::-;;;;;;;;13392:403;;;;;;13305:490;;;:::o;8580:115::-;8634:15;;8624:7;:25;;;;8671:16;;8660:8;:27;;;;8580:115::o;14809:255::-;14859:7;14868;14888:15;14906:7;;14888:25;;14924:15;4873:12;14924:25;;14973:20;4873:12;14973:7;;:11;;:20;;;;:::i;:::-;14963:7;:30;14960:60;;;15003:7;;4873:12;14995:25;;;;;;;;14960:60;15039:7;15048;15031:25;;;;;;14809:255;;;:::o;2756:166::-;2842:7;2875:1;2870;:6;;2878:12;2862:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2913:1;2909;:5;;;;:::i;:::-;2902:12;;2756:166;;;;;:::o;13803:468::-;13862:7;13871;13880;13889;13898;13907;13928:23;13953:12;13967:13;13984:39;13996:7;14005;;14014:8;;13984:11;:39::i;:::-;13927:96;;;;;;14034:19;14057:10;:8;:10::i;:::-;14034:33;;14079:15;14096:23;14121:12;14137:46;14149:7;14158:4;14164:5;14171:11;14137;:46::i;:::-;14078:105;;;;;;14202:7;14211:15;14228:4;14234:15;14251:4;14257:5;14194:69;;;;;;;;;;;;;;;;;;;13803:468;;;;;;;:::o;1686:136::-;1744:7;1771:43;1775:1;1778;1771:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1764:50;;1686:136;;;;:::o;15489:214::-;15542:19;15565:10;:8;:10::i;:::-;15542:33;;15586:13;15602:22;15612:11;15602:5;:9;;:22;;;;:::i;:::-;15586:38;;15662:33;15689:5;15662:7;:22;15678:4;15662:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15637:7;:22;15653:4;15637:22;;;;;;;;;;;;;;;:58;;;;15531:172;;15489:214;:::o;15711:147::-;15789:17;15801:4;15789:7;;:11;;:17;;;;:::i;:::-;15779:7;:27;;;;15830:20;15845:4;15830:10;;:14;;:20;;;;:::i;:::-;15817:10;:33;;;;15711:147;;:::o;14279:351::-;14372:7;14381;14390;14410:12;14425:28;14449:3;14425:19;14437:6;14425:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14410:43;;14464:13;14480:29;14505:3;14480:20;14492:7;14480;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14464:45;;14520:23;14546:28;14568:5;14546:17;14558:4;14546:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14520:54;;14593:15;14610:4;14616:5;14585:37;;;;;;;;;14279:351;;;;;;;:::o;15072:409::-;15182:7;15191;15200;15220:15;15238:24;15250:11;15238:7;:11;;:24;;;;:::i;:::-;15220:42;;15273:12;15288:21;15297:11;15288:4;:8;;:21;;;;:::i;:::-;15273:36;;15320:13;15336:22;15346:11;15336:5;:9;;:22;;;;:::i;:::-;15320:38;;15369:23;15395:28;15417:5;15395:17;15407:4;15395:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15369:54;;15442:7;15451:15;15468:4;15434:39;;;;;;;;;;15072:409;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;991:79;;:::i;:::-;953:2;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;943:263;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:2;;;1337:79;;:::i;:::-;1299:2;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1289:274;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1700:79;;:::i;:::-;1662:2;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1652:391;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2197:79;;:::i;:::-;2159:2;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2149:519;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;2805:79;;:::i;:::-;2767:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2757:391;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:2;;;3265:79;;:::i;:::-;3227:2;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3217:260;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:2;;;3605:79;;:::i;:::-;3567:2;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3557:271;;;;:::o;3834:329::-;3893:6;3942:2;3930:9;3921:7;3917:23;3913:32;3910:2;;;3948:79;;:::i;:::-;3910:2;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;3900:263;;;;:::o;4169:663::-;4257:6;4265;4273;4322:2;4310:9;4301:7;4297:23;4293:32;4290:2;;;4328:79;;:::i;:::-;4290:2;4448:1;4473:64;4529:7;4520:6;4509:9;4505:22;4473:64;:::i;:::-;4463:74;;4419:128;4586:2;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4557:129;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4280:552;;;;;:::o;4838:179::-;4907:10;4928:46;4970:3;4962:6;4928:46;:::i;:::-;5006:4;5001:3;4997:14;4983:28;;4918:99;;;;:::o;5023:108::-;5100:24;5118:5;5100:24;:::i;:::-;5095:3;5088:37;5078:53;;:::o;5137:118::-;5224:24;5242:5;5224:24;:::i;:::-;5219:3;5212:37;5202:53;;:::o;5291:732::-;5410:3;5439:54;5487:5;5439:54;:::i;:::-;5509:86;5588:6;5583:3;5509:86;:::i;:::-;5502:93;;5619:56;5669:5;5619:56;:::i;:::-;5698:7;5729:1;5714:284;5739:6;5736:1;5733:13;5714:284;;;5815:6;5809:13;5842:63;5901:3;5886:13;5842:63;:::i;:::-;5835:70;;5928:60;5981:6;5928:60;:::i;:::-;5918:70;;5774:224;5761:1;5758;5754:9;5749:14;;5714:284;;;5718:14;6014:3;6007:10;;5415:608;;;;;;;:::o;6029:109::-;6110:21;6125:5;6110:21;:::i;:::-;6105:3;6098:34;6088:50;;:::o;6144:147::-;6239:45;6278:5;6239:45;:::i;:::-;6234:3;6227:58;6217:74;;:::o;6297:364::-;6385:3;6413:39;6446:5;6413:39;:::i;:::-;6468:71;6532:6;6527:3;6468:71;:::i;:::-;6461:78;;6548:52;6593:6;6588:3;6581:4;6574:5;6570:16;6548:52;:::i;:::-;6625:29;6647:6;6625:29;:::i;:::-;6620:3;6616:39;6609:46;;6389:272;;;;;:::o;6667:366::-;6809:3;6830:67;6894:2;6889:3;6830:67;:::i;:::-;6823:74;;6906:93;6995:3;6906:93;:::i;:::-;7024:2;7019:3;7015:12;7008:19;;6813:220;;;:::o;7039:366::-;7181:3;7202:67;7266:2;7261:3;7202:67;:::i;:::-;7195:74;;7278:93;7367:3;7278:93;:::i;:::-;7396:2;7391:3;7387:12;7380:19;;7185:220;;;:::o;7411:366::-;7553:3;7574:67;7638:2;7633:3;7574:67;:::i;:::-;7567:74;;7650:93;7739:3;7650:93;:::i;:::-;7768:2;7763:3;7759:12;7752:19;;7557:220;;;:::o;7783:366::-;7925:3;7946:67;8010:2;8005:3;7946:67;:::i;:::-;7939:74;;8022:93;8111:3;8022:93;:::i;:::-;8140:2;8135:3;8131:12;8124:19;;7929:220;;;:::o;8155:366::-;8297:3;8318:67;8382:2;8377:3;8318:67;:::i;:::-;8311:74;;8394:93;8483:3;8394:93;:::i;:::-;8512:2;8507:3;8503:12;8496:19;;8301:220;;;:::o;8527:366::-;8669:3;8690:67;8754:2;8749:3;8690:67;:::i;:::-;8683:74;;8766:93;8855:3;8766:93;:::i;:::-;8884:2;8879:3;8875:12;8868:19;;8673:220;;;:::o;8899:366::-;9041:3;9062:67;9126:2;9121:3;9062:67;:::i;:::-;9055:74;;9138:93;9227:3;9138:93;:::i;:::-;9256:2;9251:3;9247:12;9240:19;;9045:220;;;:::o;9271:366::-;9413:3;9434:67;9498:2;9493:3;9434:67;:::i;:::-;9427:74;;9510:93;9599:3;9510:93;:::i;:::-;9628:2;9623:3;9619:12;9612:19;;9417:220;;;:::o;9643:366::-;9785:3;9806:67;9870:2;9865:3;9806:67;:::i;:::-;9799:74;;9882:93;9971:3;9882:93;:::i;:::-;10000:2;9995:3;9991:12;9984:19;;9789:220;;;:::o;10015:366::-;10157:3;10178:67;10242:2;10237:3;10178:67;:::i;:::-;10171:74;;10254:93;10343:3;10254:93;:::i;:::-;10372:2;10367:3;10363:12;10356:19;;10161:220;;;:::o;10387:366::-;10529:3;10550:67;10614:2;10609:3;10550:67;:::i;:::-;10543:74;;10626:93;10715:3;10626:93;:::i;:::-;10744:2;10739:3;10735:12;10728:19;;10533:220;;;:::o;10759:366::-;10901:3;10922:67;10986:2;10981:3;10922:67;:::i;:::-;10915:74;;10998:93;11087:3;10998:93;:::i;:::-;11116:2;11111:3;11107:12;11100:19;;10905:220;;;:::o;11131:366::-;11273:3;11294:67;11358:2;11353:3;11294:67;:::i;:::-;11287:74;;11370:93;11459:3;11370:93;:::i;:::-;11488:2;11483:3;11479:12;11472:19;;11277:220;;;:::o;11503:366::-;11645:3;11666:67;11730:2;11725:3;11666:67;:::i;:::-;11659:74;;11742:93;11831:3;11742:93;:::i;:::-;11860:2;11855:3;11851:12;11844:19;;11649:220;;;:::o;11875:366::-;12017:3;12038:67;12102:2;12097:3;12038:67;:::i;:::-;12031:74;;12114:93;12203:3;12114:93;:::i;:::-;12232:2;12227:3;12223:12;12216:19;;12021:220;;;:::o;12247:118::-;12334:24;12352:5;12334:24;:::i;:::-;12329:3;12322:37;12312:53;;:::o;12371:112::-;12454:22;12470:5;12454:22;:::i;:::-;12449:3;12442:35;12432:51;;:::o;12489:222::-;12582:4;12620:2;12609:9;12605:18;12597:26;;12633:71;12701:1;12690:9;12686:17;12677:6;12633:71;:::i;:::-;12587:124;;;;:::o;12717:332::-;12838:4;12876:2;12865:9;12861:18;12853:26;;12889:71;12957:1;12946:9;12942:17;12933:6;12889:71;:::i;:::-;12970:72;13038:2;13027:9;13023:18;13014:6;12970:72;:::i;:::-;12843:206;;;;;:::o;13055:332::-;13176:4;13214:2;13203:9;13199:18;13191:26;;13227:71;13295:1;13284:9;13280:17;13271:6;13227:71;:::i;:::-;13308:72;13376:2;13365:9;13361:18;13352:6;13308:72;:::i;:::-;13181:206;;;;;:::o;13393:807::-;13642:4;13680:3;13669:9;13665:19;13657:27;;13694:71;13762:1;13751:9;13747:17;13738:6;13694:71;:::i;:::-;13775:72;13843:2;13832:9;13828:18;13819:6;13775:72;:::i;:::-;13857:80;13933:2;13922:9;13918:18;13909:6;13857:80;:::i;:::-;13947;14023:2;14012:9;14008:18;13999:6;13947:80;:::i;:::-;14037:73;14105:3;14094:9;14090:19;14081:6;14037:73;:::i;:::-;14120;14188:3;14177:9;14173:19;14164:6;14120:73;:::i;:::-;13647:553;;;;;;;;;:::o;14206:210::-;14293:4;14331:2;14320:9;14316:18;14308:26;;14344:65;14406:1;14395:9;14391:17;14382:6;14344:65;:::i;:::-;14298:118;;;;:::o;14422:313::-;14535:4;14573:2;14562:9;14558:18;14550:26;;14622:9;14616:4;14612:20;14608:1;14597:9;14593:17;14586:47;14650:78;14723:4;14714:6;14650:78;:::i;:::-;14642:86;;14540:195;;;;:::o;14741:419::-;14907:4;14945:2;14934:9;14930:18;14922:26;;14994:9;14988:4;14984:20;14980:1;14969:9;14965:17;14958:47;15022:131;15148:4;15022:131;:::i;:::-;15014:139;;14912:248;;;:::o;15166:419::-;15332:4;15370:2;15359:9;15355:18;15347:26;;15419:9;15413:4;15409:20;15405:1;15394:9;15390:17;15383:47;15447:131;15573:4;15447:131;:::i;:::-;15439:139;;15337:248;;;:::o;15591:419::-;15757:4;15795:2;15784:9;15780:18;15772:26;;15844:9;15838:4;15834:20;15830:1;15819:9;15815:17;15808:47;15872:131;15998:4;15872:131;:::i;:::-;15864:139;;15762:248;;;:::o;16016:419::-;16182:4;16220:2;16209:9;16205:18;16197:26;;16269:9;16263:4;16259:20;16255:1;16244:9;16240:17;16233:47;16297:131;16423:4;16297:131;:::i;:::-;16289:139;;16187:248;;;:::o;16441:419::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16694:9;16688:4;16684:20;16680:1;16669:9;16665:17;16658:47;16722:131;16848:4;16722:131;:::i;:::-;16714:139;;16612:248;;;:::o;16866:419::-;17032:4;17070:2;17059:9;17055:18;17047:26;;17119:9;17113:4;17109:20;17105:1;17094:9;17090:17;17083:47;17147:131;17273:4;17147:131;:::i;:::-;17139:139;;17037:248;;;:::o;17291:419::-;17457:4;17495:2;17484:9;17480:18;17472:26;;17544:9;17538:4;17534:20;17530:1;17519:9;17515:17;17508:47;17572:131;17698:4;17572:131;:::i;:::-;17564:139;;17462:248;;;:::o;17716:419::-;17882:4;17920:2;17909:9;17905:18;17897:26;;17969:9;17963:4;17959:20;17955:1;17944:9;17940:17;17933:47;17997:131;18123:4;17997:131;:::i;:::-;17989:139;;17887:248;;;:::o;18141:419::-;18307:4;18345:2;18334:9;18330:18;18322:26;;18394:9;18388:4;18384:20;18380:1;18369:9;18365:17;18358:47;18422:131;18548:4;18422:131;:::i;:::-;18414:139;;18312:248;;;:::o;18566:419::-;18732:4;18770:2;18759:9;18755:18;18747:26;;18819:9;18813:4;18809:20;18805:1;18794:9;18790:17;18783:47;18847:131;18973:4;18847:131;:::i;:::-;18839:139;;18737:248;;;:::o;18991:419::-;19157:4;19195:2;19184:9;19180:18;19172:26;;19244:9;19238:4;19234:20;19230:1;19219:9;19215:17;19208:47;19272:131;19398:4;19272:131;:::i;:::-;19264:139;;19162:248;;;:::o;19416:419::-;19582:4;19620:2;19609:9;19605:18;19597:26;;19669:9;19663:4;19659:20;19655:1;19644:9;19640:17;19633:47;19697:131;19823:4;19697:131;:::i;:::-;19689:139;;19587:248;;;:::o;19841:419::-;20007:4;20045:2;20034:9;20030:18;20022:26;;20094:9;20088:4;20084:20;20080:1;20069:9;20065:17;20058:47;20122:131;20248:4;20122:131;:::i;:::-;20114:139;;20012:248;;;:::o;20266:419::-;20432:4;20470:2;20459:9;20455:18;20447:26;;20519:9;20513:4;20509:20;20505:1;20494:9;20490:17;20483:47;20547:131;20673:4;20547:131;:::i;:::-;20539:139;;20437:248;;;:::o;20691:419::-;20857:4;20895:2;20884:9;20880:18;20872:26;;20944:9;20938:4;20934:20;20930:1;20919:9;20915:17;20908:47;20972:131;21098:4;20972:131;:::i;:::-;20964:139;;20862:248;;;:::o;21116:222::-;21209:4;21247:2;21236:9;21232:18;21224:26;;21260:71;21328:1;21317:9;21313:17;21304:6;21260:71;:::i;:::-;21214:124;;;;:::o;21344:831::-;21607:4;21645:3;21634:9;21630:19;21622:27;;21659:71;21727:1;21716:9;21712:17;21703:6;21659:71;:::i;:::-;21740:80;21816:2;21805:9;21801:18;21792:6;21740:80;:::i;:::-;21867:9;21861:4;21857:20;21852:2;21841:9;21837:18;21830:48;21895:108;21998:4;21989:6;21895:108;:::i;:::-;21887:116;;22013:72;22081:2;22070:9;22066:18;22057:6;22013:72;:::i;:::-;22095:73;22163:3;22152:9;22148:19;22139:6;22095:73;:::i;:::-;21612:563;;;;;;;;:::o;22181:214::-;22270:4;22308:2;22297:9;22293:18;22285:26;;22321:67;22385:1;22374:9;22370:17;22361:6;22321:67;:::i;:::-;22275:120;;;;:::o;22482:132::-;22549:4;22572:3;22564:11;;22602:4;22597:3;22593:14;22585:22;;22554:60;;;:::o;22620:114::-;22687:6;22721:5;22715:12;22705:22;;22694:40;;;:::o;22740:99::-;22792:6;22826:5;22820:12;22810:22;;22799:40;;;:::o;22845:113::-;22915:4;22947;22942:3;22938:14;22930:22;;22920:38;;;:::o;22964:184::-;23063:11;23097:6;23092:3;23085:19;23137:4;23132:3;23128:14;23113:29;;23075:73;;;;:::o;23154:169::-;23238:11;23272:6;23267:3;23260:19;23312:4;23307:3;23303:14;23288:29;;23250:73;;;;:::o;23329:305::-;23369:3;23388:20;23406:1;23388:20;:::i;:::-;23383:25;;23422:20;23440:1;23422:20;:::i;:::-;23417:25;;23576:1;23508:66;23504:74;23501:1;23498:81;23495:2;;;23582:18;;:::i;:::-;23495:2;23626:1;23623;23619:9;23612:16;;23373:261;;;;:::o;23640:185::-;23680:1;23697:20;23715:1;23697:20;:::i;:::-;23692:25;;23731:20;23749:1;23731:20;:::i;:::-;23726:25;;23770:1;23760:2;;23775:18;;:::i;:::-;23760:2;23817:1;23814;23810:9;23805:14;;23682:143;;;;:::o;23831:348::-;23871:7;23894:20;23912:1;23894:20;:::i;:::-;23889:25;;23928:20;23946:1;23928:20;:::i;:::-;23923:25;;24116:1;24048:66;24044:74;24041:1;24038:81;24033:1;24026:9;24019:17;24015:105;24012:2;;;24123:18;;:::i;:::-;24012:2;24171:1;24168;24164:9;24153:20;;23879:300;;;;:::o;24185:191::-;24225:4;24245:20;24263:1;24245:20;:::i;:::-;24240:25;;24279:20;24297:1;24279:20;:::i;:::-;24274:25;;24318:1;24315;24312:8;24309:2;;;24323:18;;:::i;:::-;24309:2;24368:1;24365;24361:9;24353:17;;24230:146;;;;:::o;24382:96::-;24419:7;24448:24;24466:5;24448:24;:::i;:::-;24437:35;;24427:51;;;:::o;24484:90::-;24518:7;24561:5;24554:13;24547:21;24536:32;;24526:48;;;:::o;24580:126::-;24617:7;24657:42;24650:5;24646:54;24635:65;;24625:81;;;:::o;24712:77::-;24749:7;24778:5;24767:16;;24757:32;;;:::o;24795:86::-;24830:7;24870:4;24863:5;24859:16;24848:27;;24838:43;;;:::o;24887:121::-;24945:9;24978:24;24996:5;24978:24;:::i;:::-;24965:37;;24955:53;;;:::o;25014:307::-;25082:1;25092:113;25106:6;25103:1;25100:13;25092:113;;;25191:1;25186:3;25182:11;25176:18;25172:1;25167:3;25163:11;25156:39;25128:2;25125:1;25121:10;25116:15;;25092:113;;;25223:6;25220:1;25217:13;25214:2;;;25303:1;25294:6;25289:3;25285:16;25278:27;25214:2;25063:258;;;;:::o;25327:233::-;25366:3;25389:24;25407:5;25389:24;:::i;:::-;25380:33;;25435:66;25428:5;25425:77;25422:2;;;25505:18;;:::i;:::-;25422:2;25552:1;25545:5;25541:13;25534:20;;25370:190;;;:::o;25566:176::-;25598:1;25615:20;25633:1;25615:20;:::i;:::-;25610:25;;25649:20;25667:1;25649:20;:::i;:::-;25644:25;;25688:1;25678:2;;25693:18;;:::i;:::-;25678:2;25734:1;25731;25727:9;25722:14;;25600:142;;;;:::o;25748:180::-;25796:77;25793:1;25786:88;25893:4;25890:1;25883:15;25917:4;25914:1;25907:15;25934:180;25982:77;25979:1;25972:88;26079:4;26076:1;26069:15;26103:4;26100:1;26093:15;26120:180;26168:77;26165:1;26158:88;26265:4;26262:1;26255:15;26289:4;26286:1;26279:15;26306:180;26354:77;26351:1;26344:88;26451:4;26448:1;26441:15;26475:4;26472:1;26465:15;26615:117;26724:1;26721;26714:12;26738:102;26779:6;26830:2;26826:7;26821:2;26814:5;26810:14;26806:28;26796:38;;26786:54;;;:::o;26846:222::-;26986:34;26982:1;26974:6;26970:14;26963:58;27055:5;27050:2;27042:6;27038:15;27031:30;26952:116;:::o;27074:229::-;27214:34;27210:1;27202:6;27198:14;27191:58;27283:12;27278:2;27270:6;27266:15;27259:37;27180:123;:::o;27309:221::-;27449:34;27445:1;27437:6;27433:14;27426:58;27518:4;27513:2;27505:6;27501:15;27494:29;27415:115;:::o;27536:221::-;27676:34;27672:1;27664:6;27660:14;27653:58;27745:4;27740:2;27732:6;27728:15;27721:29;27642:115;:::o;27763:221::-;27903:34;27899:1;27891:6;27887:14;27880:58;27972:4;27967:2;27959:6;27955:15;27948:29;27869:115;:::o;27990:177::-;28130:29;28126:1;28118:6;28114:14;28107:53;28096:71;:::o;28173:171::-;28313:23;28309:1;28301:6;28297:14;28290:47;28279:65;:::o;28350:222::-;28490:34;28486:1;28478:6;28474:14;28467:58;28559:5;28554:2;28546:6;28542:15;28535:30;28456:116;:::o;28578:220::-;28718:34;28714:1;28706:6;28702:14;28695:58;28787:3;28782:2;28774:6;28770:15;28763:28;28684:114;:::o;28804:182::-;28944:34;28940:1;28932:6;28928:14;28921:58;28910:76;:::o;28992:228::-;29132:34;29128:1;29120:6;29116:14;29109:58;29201:11;29196:2;29188:6;29184:15;29177:36;29098:122;:::o;29226:224::-;29366:34;29362:1;29354:6;29350:14;29343:58;29435:7;29430:2;29422:6;29418:15;29411:32;29332:118;:::o;29456:223::-;29596:34;29592:1;29584:6;29580:14;29573:58;29665:6;29660:2;29652:6;29648:15;29641:31;29562:117;:::o;29685:173::-;29825:25;29821:1;29813:6;29809:14;29802:49;29791:67;:::o;29864:174::-;30004:26;30000:1;29992:6;29988:14;29981:50;29970:68;:::o;30044:122::-;30117:24;30135:5;30117:24;:::i;:::-;30110:5;30107:35;30097:2;;30156:1;30153;30146:12;30097:2;30087:79;:::o;30172:116::-;30242:21;30257:5;30242:21;:::i;:::-;30235:5;30232:32;30222:2;;30278:1;30275;30268:12;30222:2;30212:76;:::o;30294:122::-;30367:24;30385:5;30367:24;:::i;:::-;30360:5;30357:35;30347:2;;30406:1;30403;30396:12;30347:2;30337:79;:::o

Swarm Source

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