ETH Price: $2,525.43 (+0.04%)

Token

KAGUTSUCHI ($KAGU)
 

Overview

Max Total Supply

100,000,000,000 $KAGU

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.554114771 $KAGU

Value
$0.00
0x2485d2f724ee7ebbb15e8ddd5de79c0b20e85aa7
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:
KAGUTSUCHI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-03
*/

/**
 *Submitted for verification at Etherscan.io on 2022-10-03
*/

/**
 *Submitted for verification at Etherscan.io on 2022-10-02
*/

// SPDX-License-Identifier: Unlicensed

/**

Website
http://kagutsuchieth.com

Telegram 
https://t.me/KagutsuchiEntryPortal

Tax 6/6
3% Marketing 
3% Operation Tax

*/


pragma solidity ^0.8.7;
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract KAGUTSUCHI is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "KAGUTSUCHI";//
    string private constant _symbol = "$KAGU";//
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
 
    //Buy Fee
    uint256 private _redisFeeOnBuy = 0;//
    uint256 private _taxFeeOnBuy = 6;//
 
    //Sell Fee
    uint256 private _redisFeeOnSell = 0;//
    uint256 private _taxFeeOnSell = 6;//
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0xeADc2860745c9c2B3f9A5Cb981d43A9fb763bC27);
    address payable private _marketingAddress = payable(0xeADc2860745c9c2B3f9A5Cb981d43A9fb763bC27);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1000000000 * 10**9; //
    uint256 public _maxWalletSize = 2000000000 * 10**9; //
    uint256 public _swapTokensAtAmount = 1000000000 * 10**9; //
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _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 {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
 
 
    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 _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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
 
        return (tTransferAmount, tFee, tTeam);
    }
 
    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 _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);
    }
 
 
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
 
    //Can Increase Max Limits after renounce . Cannot Lower
    function increaseLimits(uint256 maxTxAmount_, uint256 maxWalletSize_) public {
        require(_msgSender() == _developmentAddress);
        require(maxTxAmount_ > _maxTxAmount && maxTxAmount_ <= totalSupply(), "Out of range");
        require(maxWalletSize_ > _maxWalletSize && maxWalletSize_ <= totalSupply(), "Out of range");

        _maxTxAmount = maxTxAmount_;
        _maxWalletSize = maxWalletSize_;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize_","type":"uint256"}],"name":"increaseLimits","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d631000006000196200001d91906200083a565b6000196200002c9190620007c1565b6005556000600755600660085560006009556006600a55600954600b55600a54600c55600b54600d55600c54600e5573eadc2860745c9c2b3f9a5cb981d43a9fb763bc27601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073eadc2860745c9c2b3f9a5cb981d43a9fb763bc27601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550670de0b6b3a7640000601555671bc16d674ec80000601655670de0b6b3a76400006017553480156200016c57600080fd5b5060006200017f620006db60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506005546001600062000234620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031357600080fd5b505afa15801562000328573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034e919062000723565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003b157600080fd5b505afa158015620003c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ec919062000723565b6040518363ffffffff1660e01b81526004016200040b92919062000777565b602060405180830381600087803b1580156200042657600080fd5b505af11580156200043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000461919062000723565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620004b7620006e360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000664620006db60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d63100000604051620006cc9190620007a4565b60405180910390a350620008ef565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000815190506200071d81620008d5565b92915050565b6000602082840312156200073c576200073b620008d0565b5b60006200074c848285016200070c565b91505092915050565b6200076081620007fc565b82525050565b620007718162000830565b82525050565b60006040820190506200078e600083018562000755565b6200079d602083018462000755565b9392505050565b6000602082019050620007bb600083018462000766565b92915050565b6000620007ce8262000830565b9150620007db8362000830565b925082821015620007f157620007f062000872565b5b828203905092915050565b6000620008098262000810565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620008478262000830565b9150620008548362000830565b925082620008675762000866620008a1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b620008e081620007fc565b8114620008ec57600080fd5b50565b6138d780620008ff6000396000f3fe60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280600a81526020017f4b41475554535543484900000000000000000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600581526020017f244b414755000000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122069f8b0f4631bb28c6abdc5c6b6b419c48ac209a9fde88d14d31ef5e36d42369e64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806378f8484b116100d157806398a5c3151161008a578063c3c8cd8011610064578063c3c8cd8014610527578063c492f0461461053e578063dd62ed3e14610567578063f2fde38b146105a457610171565b806398a5c31514610484578063a9059cbb146104ad578063bfd79284146104ea57610171565b806378f8484b146103865780637d1db4a5146103af5780638da5cb5b146103da5780638f70ccf7146104055780638f9a55c01461042e57806395d89b411461045957610171565b8063313ce56711610123578063313ce5671461029c57806349bd5a5e146102c75780636d8aa8f8146102f25780636fc3eaec1461031b57806370a0823114610332578063715018a61461036f57610171565b806306fdde0314610176578063095ea7b3146101a15780631694505e146101de57806318160ddd1461020957806323b872dd146102345780632fd689e31461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105cd565b6040516101989190612e30565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612980565b61060a565b6040516101d59190612dfa565b60405180910390f35b3480156101ea57600080fd5b506101f3610628565b6040516102009190612e15565b60405180910390f35b34801561021557600080fd5b5061021e61064e565b60405161022b9190613032565b60405180910390f35b34801561024057600080fd5b5061025b6004803603810190610256919061292d565b61065f565b6040516102689190612dfa565b60405180910390f35b34801561027d57600080fd5b50610286610738565b6040516102939190613032565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be91906130a7565b60405180910390f35b3480156102d357600080fd5b506102dc610747565b6040516102e99190612ddf565b60405180910390f35b3480156102fe57600080fd5b5061031960048036038101906103149190612a20565b61076d565b005b34801561032757600080fd5b5061033061081f565b005b34801561033e57600080fd5b5061035960048036038101906103549190612893565b6108f0565b6040516103669190613032565b60405180910390f35b34801561037b57600080fd5b50610384610941565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612a7a565b610a94565b005b3480156103bb57600080fd5b506103c4610bb5565b6040516103d19190613032565b60405180910390f35b3480156103e657600080fd5b506103ef610bbb565b6040516103fc9190612ddf565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190612a20565b610be4565b005b34801561043a57600080fd5b50610443610c95565b6040516104509190613032565b60405180910390f35b34801561046557600080fd5b5061046e610c9b565b60405161047b9190612e30565b60405180910390f35b34801561049057600080fd5b506104ab60048036038101906104a69190612a4d565b610cd8565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612980565b610d77565b6040516104e19190612dfa565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c9190612893565b610d95565b60405161051e9190612dfa565b60405180910390f35b34801561053357600080fd5b5061053c610db5565b005b34801561054a57600080fd5b50610565600480360381019061056091906129c0565b610e8e565b005b34801561057357600080fd5b5061058e600480360381019061058991906128ed565b610fc8565b60405161059b9190613032565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612893565b61104f565b005b60606040518060400160405280600a81526020017f4b41475554535543484900000000000000000000000000000000000000000000815250905090565b600061061e610617611211565b8484611219565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600068056bc75e2d63100000905090565b600061066c8484846113e4565b61072d84610678611211565b6107288560405180606001604052806028815260200161387a60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de611211565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c6a9092919063ffffffff16565b611219565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610775611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610802576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f990612f72565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610860611211565b73ffffffffffffffffffffffffffffffffffffffff1614806108d65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108be611211565b73ffffffffffffffffffffffffffffffffffffffff16145b6108df57600080fd5b60004790506108ed81611cce565b50565b600061093a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dc9565b9050919050565b610949611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cd90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad5611211565b73ffffffffffffffffffffffffffffffffffffffff1614610af557600080fd5b60155482118015610b0d5750610b0961064e565b8211155b610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390612ff2565b60405180910390fd5b60165481118015610b645750610b6061064e565b8111155b610ba3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9a90612ff2565b60405180910390fd5b81601581905550806016819055505050565b60155481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bec611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612f72565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600581526020017f244b414755000000000000000000000000000000000000000000000000000000815250905090565b610ce0611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6490612f72565b60405180910390fd5b8060178190555050565b6000610d8b610d84611211565b84846113e4565b6001905092915050565b600f6020528060005260406000206000915054906101000a900460ff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df6611211565b73ffffffffffffffffffffffffffffffffffffffff161480610e6c5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e54611211565b73ffffffffffffffffffffffffffffffffffffffff16145b610e7557600080fd5b6000610e80306108f0565b9050610e8b81611e37565b50565b610e96611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a90612f72565b60405180910390fd5b60005b83839050811015610fc2578160046000868685818110610f4957610f486133a3565b5b9050602002016020810190610f5e9190612893565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fba906132fc565b915050610f26565b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611057611211565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612f72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90612ed2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090613012565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612ef2565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d79190613032565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144b90612fb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90612e52565b60405180910390fd5b60008111611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe90612f92565b60405180910390fd5b61150f610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561157d575061154d610bbb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119695760148054906101000a900460ff1661160a5761159c610bbb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090612e72565b60405180910390fd5b5b60155481111561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164690612eb2565b60405180910390fd5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116f35750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990612f12565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117e05760165481611794846108f0565b61179e9190613117565b11156117df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d690612fd2565b60405180910390fd5b5b60006117eb306108f0565b90506000601754821015905060155482106118065760155491505b8080156118205750601460159054906101000a900460ff16155b801561187a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118925750601460169054906101000a900460ff165b80156118e85750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561193e5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119665761194c82611e37565b600047905060008111156119645761196347611cce565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a105750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ac35750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ac25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ad15760009050611c58565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b7c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b9457600754600b81905550600854600c819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c3f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c5757600954600b81905550600a54600c819055505b5b611c64848484846120bf565b50505050565b6000838311158290611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca99190612e30565b60405180910390fd5b5060008385611cc191906131f8565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d1e6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d49573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d9a6002846120ec90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dc5573d6000803e3d6000fd5b5050565b6000600554821115611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790612e92565b60405180910390fd5b6000611e1a612136565b9050611e2f81846120ec90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e6f57611e6e6133d2565b5b604051908082528060200260200182016040528015611e9d5781602001602082028036833780820191505090505b5090503081600081518110611eb557611eb46133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f5757600080fd5b505afa158015611f6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8f91906128c0565b81600181518110611fa357611fa26133a3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200a30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611219565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161206e95949392919061304d565b600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806120cd576120cc612161565b5b6120d88484846121a4565b806120e6576120e561236f565b5b50505050565b600061212e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612383565b905092915050565b60008060006121436123e6565b9150915061215a81836120ec90919063ffffffff16565b9250505090565b6000600b5414801561217557506000600c54145b1561217f576121a2565b600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b6000806000806000806121b687612448565b95509550955095509550955061221486600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b090919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a985600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f581612558565b6122ff8483612615565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161235c9190613032565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b600080831182906123ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c19190612e30565b60405180910390fd5b50600083856123d9919061316d565b9050809150509392505050565b60008060006005549050600068056bc75e2d63100000905061241c68056bc75e2d631000006005546120ec90919063ffffffff16565b82101561243b5760055468056bc75e2d63100000935093505050612444565b81819350935050505b9091565b60008060008060008060008060006124658a600b54600c5461264f565b9250925092506000612475612136565b905060008060006124888e8787876126e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c6a565b905092915050565b60008082846125099190613117565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590612f32565b60405180910390fd5b8091505092915050565b6000612562612136565b90506000612579828461276e90919063ffffffff16565b90506125cd81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61262a826005546124b090919063ffffffff16565b600581905550612645816006546124fa90919063ffffffff16565b6006819055505050565b60008060008061267b606461266d888a61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126a56064612697888b61276e90919063ffffffff16565b6120ec90919063ffffffff16565b905060006126ce826126c0858c6124b090919063ffffffff16565b6124b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126fe858961276e90919063ffffffff16565b90506000612715868961276e90919063ffffffff16565b9050600061272c878961276e90919063ffffffff16565b905060006127558261274785876124b090919063ffffffff16565b6124b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561278157600090506127e3565b6000828461278f919061319e565b905082848261279e919061316d565b146127de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d590612f52565b60405180910390fd5b809150505b92915050565b6000813590506127f881613834565b92915050565b60008151905061280d81613834565b92915050565b60008083601f84011261282957612828613406565b5b8235905067ffffffffffffffff81111561284657612845613401565b5b6020830191508360208202830111156128625761286161340b565b5b9250929050565b6000813590506128788161384b565b92915050565b60008135905061288d81613862565b92915050565b6000602082840312156128a9576128a8613415565b5b60006128b7848285016127e9565b91505092915050565b6000602082840312156128d6576128d5613415565b5b60006128e4848285016127fe565b91505092915050565b6000806040838503121561290457612903613415565b5b6000612912858286016127e9565b9250506020612923858286016127e9565b9150509250929050565b60008060006060848603121561294657612945613415565b5b6000612954868287016127e9565b9350506020612965868287016127e9565b92505060406129768682870161287e565b9150509250925092565b6000806040838503121561299757612996613415565b5b60006129a5858286016127e9565b92505060206129b68582860161287e565b9150509250929050565b6000806000604084860312156129d9576129d8613415565b5b600084013567ffffffffffffffff8111156129f7576129f6613410565b5b612a0386828701612813565b93509350506020612a1686828701612869565b9150509250925092565b600060208284031215612a3657612a35613415565b5b6000612a4484828501612869565b91505092915050565b600060208284031215612a6357612a62613415565b5b6000612a718482850161287e565b91505092915050565b60008060408385031215612a9157612a90613415565b5b6000612a9f8582860161287e565b9250506020612ab08582860161287e565b9150509250929050565b6000612ac68383612ad2565b60208301905092915050565b612adb8161322c565b82525050565b612aea8161322c565b82525050565b6000612afb826130d2565b612b0581856130f5565b9350612b10836130c2565b8060005b83811015612b41578151612b288882612aba565b9750612b33836130e8565b925050600181019050612b14565b5085935050505092915050565b612b578161323e565b82525050565b612b6681613281565b82525050565b612b7581613293565b82525050565b6000612b86826130dd565b612b908185613106565b9350612ba08185602086016132c9565b612ba98161341a565b840191505092915050565b6000612bc1602383613106565b9150612bcc8261342b565b604082019050919050565b6000612be4603f83613106565b9150612bef8261347a565b604082019050919050565b6000612c07602a83613106565b9150612c12826134c9565b604082019050919050565b6000612c2a601c83613106565b9150612c3582613518565b602082019050919050565b6000612c4d602683613106565b9150612c5882613541565b604082019050919050565b6000612c70602283613106565b9150612c7b82613590565b604082019050919050565b6000612c93602383613106565b9150612c9e826135df565b604082019050919050565b6000612cb6601b83613106565b9150612cc18261362e565b602082019050919050565b6000612cd9602183613106565b9150612ce482613657565b604082019050919050565b6000612cfc602083613106565b9150612d07826136a6565b602082019050919050565b6000612d1f602983613106565b9150612d2a826136cf565b604082019050919050565b6000612d42602583613106565b9150612d4d8261371e565b604082019050919050565b6000612d65602383613106565b9150612d708261376d565b604082019050919050565b6000612d88600c83613106565b9150612d93826137bc565b602082019050919050565b6000612dab602483613106565b9150612db6826137e5565b604082019050919050565b612dca8161326a565b82525050565b612dd981613274565b82525050565b6000602082019050612df46000830184612ae1565b92915050565b6000602082019050612e0f6000830184612b4e565b92915050565b6000602082019050612e2a6000830184612b5d565b92915050565b60006020820190508181036000830152612e4a8184612b7b565b905092915050565b60006020820190508181036000830152612e6b81612bb4565b9050919050565b60006020820190508181036000830152612e8b81612bd7565b9050919050565b60006020820190508181036000830152612eab81612bfa565b9050919050565b60006020820190508181036000830152612ecb81612c1d565b9050919050565b60006020820190508181036000830152612eeb81612c40565b9050919050565b60006020820190508181036000830152612f0b81612c63565b9050919050565b60006020820190508181036000830152612f2b81612c86565b9050919050565b60006020820190508181036000830152612f4b81612ca9565b9050919050565b60006020820190508181036000830152612f6b81612ccc565b9050919050565b60006020820190508181036000830152612f8b81612cef565b9050919050565b60006020820190508181036000830152612fab81612d12565b9050919050565b60006020820190508181036000830152612fcb81612d35565b9050919050565b60006020820190508181036000830152612feb81612d58565b9050919050565b6000602082019050818103600083015261300b81612d7b565b9050919050565b6000602082019050818103600083015261302b81612d9e565b9050919050565b60006020820190506130476000830184612dc1565b92915050565b600060a0820190506130626000830188612dc1565b61306f6020830187612b6c565b81810360408301526130818186612af0565b90506130906060830185612ae1565b61309d6080830184612dc1565b9695505050505050565b60006020820190506130bc6000830184612dd0565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131228261326a565b915061312d8361326a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561316257613161613345565b5b828201905092915050565b60006131788261326a565b91506131838361326a565b92508261319357613192613374565b5b828204905092915050565b60006131a98261326a565b91506131b48361326a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131ed576131ec613345565b5b828202905092915050565b60006132038261326a565b915061320e8361326a565b92508282101561322157613220613345565b5b828203905092915050565b60006132378261324a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061328c826132a5565b9050919050565b600061329e8261326a565b9050919050565b60006132b0826132b7565b9050919050565b60006132c28261324a565b9050919050565b60005b838110156132e75780820151818401526020810190506132cc565b838111156132f6576000848401525b50505050565b60006133078261326a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561333a57613339613345565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7574206f662072616e67650000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61383d8161322c565b811461384857600080fd5b50565b6138548161323e565b811461385f57600080fd5b50565b61386b8161326a565b811461387657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122069f8b0f4631bb28c6abdc5c6b6b419c48ac209a9fde88d14d31ef5e36d42369e64736f6c63430008070033

Deployed Bytecode Sourcemap

4347:13375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6938:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7870:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5760:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7218:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8072:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6070:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7126:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5808:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16882:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12967:235;;;;;;;;;;;;;:::i;:::-;;7322:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1820:148;;;;;;;;;;;;;:::i;:::-;;17056:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5952:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1604:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12612:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6010:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7030:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16690:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7469:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5454:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12722:236;;;;;;;;;;;;;:::i;:::-;;17485:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7677:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1977:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6938:83;6975:13;7008:5;;;;;;;;;;;;;;;;;7001:12;;6938:83;:::o;7870:193::-;7972:4;7994:39;8003:12;:10;:12::i;:::-;8017:7;8026:6;7994:8;:39::i;:::-;8051:4;8044:11;;7870:193;;;;:::o;5760:41::-;;;;;;;;;;;;;:::o;7218:95::-;7271:7;4906:20;7291:14;;7218:95;:::o;8072:446::-;8204:4;8221:36;8231:6;8239:9;8250:6;8221:9;:36::i;:::-;8268:220;8291:6;8312:12;:10;:12::i;:::-;8339:138;8395:6;8339:138;;;;;;;;;;;;;;;;;:11;:19;8351:6;8339:19;;;;;;;;;;;;;;;:33;8359:12;:10;:12::i;:::-;8339:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8268:8;:220::i;:::-;8506:4;8499:11;;8072:446;;;;;:::o;6070:55::-;;;;:::o;7126:83::-;7167:5;4579:1;7185:16;;7126:83;:::o;5808:28::-;;;;;;;;;;;;;:::o;16882:101::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16963:12:::1;16949:11;;:26;;;;;;;;;;;;;;;;;;16882:101:::0;:::o;12967:235::-;13033:19;;;;;;;;;;;13017:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13072:17;;;;;;;;;;;13056:33;;:12;:10;:12::i;:::-;:33;;;13017:72;13009:81;;;;;;13101:26;13130:21;13101:50;;13162:32;13175:18;13162:12;:32::i;:::-;12998:204;12967:235::o;7322:138::-;7388:7;7415:37;7435:7;:16;7443:7;7435:16;;;;;;;;;;;;;;;;7415:19;:37::i;:::-;7408:44;;7322:138;;;:::o;1820:148::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:1:::1;1890:40;;1911:6;::::0;::::1;;;;;;;;1890:40;;;;;;;;;;;;1958:1;1941:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1820:148::o:0;17056:420::-;17168:19;;;;;;;;;;;17152:35;;:12;:10;:12::i;:::-;:35;;;17144:44;;;;;;17222:12;;17207;:27;:60;;;;;17254:13;:11;:13::i;:::-;17238:12;:29;;17207:60;17199:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17320:14;;17303;:31;:66;;;;;17356:13;:11;:13::i;:::-;17338:14;:31;;17303:66;17295:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17414:12;17399;:27;;;;17454:14;17437;:31;;;;17056:420;;:::o;5952:48::-;;;;:::o;1604:79::-;1642:7;1669:6;;;;;;;;;;;1662:13;;1604:79;:::o;12612:101::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12693:12:::1;12679:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;12612:101:::0;:::o;6010:50::-;;;;:::o;7030:87::-;7069:13;7102:7;;;;;;;;;;;;;;;;;7095:14;;7030:87;:::o;16690:139::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16803:18:::1;16781:19;:40;;;;16690:139:::0;:::o;7469:199::-;7574:4;7596:42;7606:12;:10;:12::i;:::-;7620:9;7631:6;7596:9;:42::i;:::-;7656:4;7649:11;;7469:199;;;;:::o;5454:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12722:236::-;12788:19;;;;;;;;;;;12772:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12827:17;;;;;;;;;;;12811:33;;:12;:10;:12::i;:::-;:33;;;12772:72;12764:81;;;;;;12856:23;12882:24;12900:4;12882:9;:24::i;:::-;12856:50;;12917:33;12934:15;12917:16;:33::i;:::-;12753:205;12722:236::o;17485:234::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17602:9:::1;17598:114;17621:8;;:15;;17617:1;:19;17598:114;;;17692:8;17658:18;:31;17677:8;;17686:1;17677:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17658:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17638:3;;;;;:::i;:::-;;;;17598:114;;;;17485:234:::0;;;:::o;7677:184::-;7794:7;7826:11;:18;7838:5;7826:18;;;;;;;;;;;;;;;:27;7845:7;7826:27;;;;;;;;;;;;;;;;7819:34;;7677:184;;;;:::o;1977:244::-;1742:12;:10;:12::i;:::-;1732:22;;:6;;;;;;;;;;:22;;;1724:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2086:1:::1;2066:22;;:8;:22;;;;2058:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2176:8;2147:38;;2168:6;::::0;::::1;;;;;;;;2147:38;;;;;;;;;;;;2205:8;2196:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1977:244:::0;:::o;390:98::-;443:7;470:10;463:17;;390:98;:::o;9215:369::-;9359:1;9342:19;;:5;:19;;;;9334:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9440:1;9421:21;;:7;:21;;;;9413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9522:6;9492:11;:18;9504:5;9492:18;;;;;;;;;;;;;;;:27;9511:7;9492:27;;;;;;;;;;;;;;;:36;;;;9560:7;9544:32;;9553:5;9544:32;;;9569:6;9544:32;;;;;;:::i;:::-;;;;;;;;9215:369;;;:::o;9593:2349::-;9731:1;9715:18;;:4;:18;;;;9707:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9808:1;9794:16;;:2;:16;;;;9786:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9878:1;9869:6;:10;9861:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9951:7;:5;:7::i;:::-;9943:15;;:4;:15;;;;:32;;;;;9968:7;:5;:7::i;:::-;9962:13;;:2;:13;;;;9943:32;9939:1271;;;10033:11;;;;;;;;;;10028:144;;10081:7;:5;:7::i;:::-;10073:15;;:4;:15;;;10065:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10028:144;10207:12;;10197:6;:22;;10189:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10278:4;:10;10283:4;10278:10;;;;;;;;;;;;;;;;;;;;;;;;;10277:11;:24;;;;;10293:4;:8;10298:2;10293:8;;;;;;;;;;;;;;;;;;;;;;;;;10292:9;10277:24;10269:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10371:13;;;;;;;;;;;10365:19;;:2;:19;;;10362:147;;10439:14;;10429:6;10413:13;10423:2;10413:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10405:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;10362:147;10526:28;10557:24;10575:4;10557:9;:24::i;:::-;10526:55;;10596:12;10635:19;;10611:20;:43;;10596:58;;10699:12;;10675:20;:36;10672:124;;10768:12;;10745:35;;10672:124;10817:7;:18;;;;;10829:6;;;;;;;;;;;10828:7;10817:18;:43;;;;;10847:13;;;;;;;;;;;10839:21;;:4;:21;;;;10817:43;:58;;;;;10864:11;;;;;;;;;;;10817:58;:87;;;;;10880:18;:24;10899:4;10880:24;;;;;;;;;;;;;;;;;;;;;;;;;10879:25;10817:87;:114;;;;;10909:18;:22;10928:2;10909:22;;;;;;;;;;;;;;;;;;;;;;;;;10908:23;10817:114;10813:386;;;10952:38;10969:20;10952:16;:38::i;:::-;11009:26;11038:21;11009:50;;11103:1;11082:18;:22;11078:106;;;11129:35;11142:21;11129:12;:35::i;:::-;11078:106;10933:266;10813:386;9977:1233;;9939:1271;11223:12;11238:4;11223:19;;11288:18;:24;11307:4;11288:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11316:18;:22;11335:2;11316:22;;;;;;;;;;;;;;;;;;;;;;;;;11288:50;11287:102;;;;11352:13;;;;;;;;;;;11344:21;;:4;:21;;;;:44;;;;;11375:13;;;;;;;;;;;11369:19;;:2;:19;;;;11344:44;11287:102;11283:597;;;11416:5;11406:15;;11283:597;;;11500:13;;;;;;;;;;;11492:21;;:4;:21;;;:55;;;;;11531:15;;;;;;;;;;;11517:30;;:2;:30;;;;11492:55;11489:162;;;11580:14;;11568:9;:26;;;;11623:12;;11613:7;:22;;;;11489:162;11711:13;;;;;;;;;;;11705:19;;:2;:19;;;:55;;;;;11744:15;;;;;;;;;;;11728:32;;:4;:32;;;;11705:55;11701:165;;;11793:15;;11781:9;:27;;;;11837:13;;11827:7;:23;;;;11701:165;11283:597;11893:41;11908:4;11914:2;11918:6;11926:7;11893:14;:41::i;:::-;9696:2246;9593:2349;;;:::o;2589:224::-;2709:7;2742:1;2737;:6;;2745:12;2729:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2769:9;2785:1;2781;:5;;;;:::i;:::-;2769:17;;2804:1;2797:8;;;2589:224;;;;;:::o;12443:160::-;12500:19;;;;;;;;;;;:28;;:43;12529:13;12540:1;12529:6;:10;;:13;;;;:::i;:::-;12500:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12554:17;;;;;;;;;;;:26;;:41;12581:13;12592:1;12581:6;:10;;:13;;;;:::i;:::-;12554:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12443:160;:::o;8527:323::-;8622:7;8680;;8669;:18;;8647:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8768:19;8790:10;:8;:10::i;:::-;8768:32;;8818:24;8830:11;8818:7;:11;;:24;;;;:::i;:::-;8811:31;;;8527:323;;;:::o;11951:483::-;6232:4;6223:6;;:13;;;;;;;;;;;;;;;;;;12029:21:::1;12067:1;12053:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12029:40;;12098:4;12080;12085:1;12080:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12124:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12114:4;12119:1;12114:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12157:62;12174:4;12189:15;;;;;;;;;;;12207:11;12157:8;:62::i;:::-;12230:15;;;;;;;;;;;:66;;;12311:11;12337:1;12353:4;12380;12400:15;12230:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12018:416;6268:5:::0;6259:6;;:14;;;;;;;;;;;;;;;;;;11951:483;:::o;13217:282::-;13373:7;13368:28;;13382:14;:12;:14::i;:::-;13368:28;13407:44;13425:6;13433:9;13444:6;13407:17;:44::i;:::-;13467:7;13462:29;;13476:15;:13;:15::i;:::-;13462:29;13217:282;;;;:::o;3077:132::-;3135:7;3162:39;3166:1;3169;3162:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3155:46;;3077:132;;;;:::o;16195:167::-;16237:7;16258:15;16275;16294:19;:17;:19::i;:::-;16257:56;;;;16334:20;16346:7;16334;:11;;:20;;;;:::i;:::-;16327:27;;;;16195:167;:::o;8859:221::-;8919:1;8906:9;;:14;:30;;;;;8935:1;8924:7;;:12;8906:30;8902:43;;;8938:7;;8902:43;8978:9;;8958:17;:29;;;;9016:7;;8998:15;:25;;;;9049:1;9037:9;:13;;;;9071:1;9061:7;:11;;;;8859:221;:::o;13508:610::-;13655:15;13685:23;13723:12;13750:23;13788:12;13815:13;13842:19;13853:7;13842:10;:19::i;:::-;13640:221;;;;;;;;;;;;13890:28;13910:7;13890;:15;13898:6;13890:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13872:7;:15;13880:6;13872:15;;;;;;;;;;;;;;;:46;;;;13950:39;13973:15;13950:7;:18;13958:9;13950:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13929:7;:18;13937:9;13929:18;;;;;;;;;;;;;;;:60;;;;14000:16;14010:5;14000:9;:16::i;:::-;14027:23;14039:4;14045;14027:11;:23::i;:::-;14083:9;14066:44;;14075:6;14066:44;;;14094:15;14066:44;;;;;;:::i;:::-;;;;;;;;13629:489;;;;;;13508:610;;;:::o;9089:117::-;9145:17;;9133:9;:29;;;;9183:15;;9173:7;:25;;;;9089:117::o;3218:223::-;3338:7;3370:1;3366;:5;3373:12;3358:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3397:9;3413:1;3409;:5;;;;:::i;:::-;3397:17;;3432:1;3425:8;;;3218:223;;;;;:::o;16371:260::-;16422:7;16431;16451:15;16469:7;;16451:25;;16487:15;4906:20;16487:25;;16537:20;4906;16537:7;;:11;;:20;;;;:::i;:::-;16527:7;:30;16523:61;;;16567:7;;4906:20;16559:25;;;;;;;;16523:61;16606:7;16615;16598:25;;;;;;16371:260;;;:::o;14541:618::-;14641:7;14663;14685;14707;14729;14751;14787:23;14812:12;14826:13;14856:40;14868:7;14877:9;;14888:7;;14856:11;:40::i;:::-;14786:110;;;;;;14907:19;14929:10;:8;:10::i;:::-;14907:32;;14951:15;14968:23;14993:12;15022:46;15034:7;15043:4;15049:5;15056:11;15022;:46::i;:::-;14950:118;;;;;;15090:7;15099:15;15116:4;15122:15;15139:4;15145:5;15082:69;;;;;;;;;;;;;;;;;;;14541:618;;;;;;;:::o;2444:136::-;2502:7;2529:43;2533:1;2536;2529:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2522:50;;2444:136;;;;:::o;2256:179::-;2314:7;2334:9;2350:1;2346;:5;;;;:::i;:::-;2334:17;;2375:1;2370;:6;;2362:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2426:1;2419:8;;;2256:179;;;;:::o;14127:211::-;14180:19;14202:10;:8;:10::i;:::-;14180:32;;14223:13;14239:22;14249:11;14239:5;:9;;:22;;;;:::i;:::-;14223:38;;14297:33;14324:5;14297:7;:22;14313:4;14297:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14272:7;:22;14288:4;14272:22;;;;;;;;;;;;;;;:58;;;;14169:169;;14127:211;:::o;14347:147::-;14425:17;14437:4;14425:7;;:11;;:17;;;;:::i;:::-;14415:7;:27;;;;14466:20;14481:4;14466:10;;:14;;:20;;;;:::i;:::-;14453:10;:33;;;;14347:147;;:::o;15168:472::-;15337:7;15359;15381;15416:12;15431:30;15457:3;15431:21;15443:8;15431:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15416:45;;15472:13;15488:28;15512:3;15488:19;15500:6;15488:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15472:44;;15527:23;15553:28;15575:5;15553:17;15565:4;15553:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15527:54;;15603:15;15620:4;15626:5;15595:37;;;;;;;;;15168:472;;;;;;;:::o;15649:537::-;15843:7;15865;15887;15922:15;15940:24;15952:11;15940:7;:11;;:24;;;;:::i;:::-;15922:42;;15975:12;15990:21;15999:11;15990:4;:8;;:21;;;;:::i;:::-;15975:36;;16022:13;16038:22;16048:11;16038:5;:9;;:22;;;;:::i;:::-;16022:38;;16071:23;16097:28;16119:5;16097:17;16109:4;16097:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16071:54;;16147:7;16156:15;16173:4;16139:39;;;;;;;;;;15649:537;;;;;;;;:::o;2822:246::-;2880:7;2909:1;2904;:6;2900:47;;;2934:1;2927:8;;;;2900:47;2957:9;2973:1;2969;:5;;;;:::i;:::-;2957:17;;3002:1;2997;2993;:5;;;;:::i;:::-;:10;2985:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3059:1;3052:8;;;2822:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:323::-;4213:6;4262:2;4250:9;4241:7;4237:23;4233:32;4230:119;;;4268:79;;:::i;:::-;4230:119;4388:1;4413:50;4455:7;4446:6;4435:9;4431:22;4413:50;:::i;:::-;4403:60;;4359:114;4157:323;;;;:::o;4486:329::-;4545:6;4594:2;4582:9;4573:7;4569:23;4565:32;4562:119;;;4600:79;;:::i;:::-;4562:119;4720:1;4745:53;4790:7;4781:6;4770:9;4766:22;4745:53;:::i;:::-;4735:63;;4691:117;4486:329;;;;:::o;4821:474::-;4889:6;4897;4946:2;4934:9;4925:7;4921:23;4917:32;4914:119;;;4952:79;;:::i;:::-;4914:119;5072:1;5097:53;5142:7;5133:6;5122:9;5118:22;5097:53;:::i;:::-;5087:63;;5043:117;5199:2;5225:53;5270:7;5261:6;5250:9;5246:22;5225:53;:::i;:::-;5215:63;;5170:118;4821:474;;;;;:::o;5301:179::-;5370:10;5391:46;5433:3;5425:6;5391:46;:::i;:::-;5469:4;5464:3;5460:14;5446:28;;5301:179;;;;:::o;5486:108::-;5563:24;5581:5;5563:24;:::i;:::-;5558:3;5551:37;5486:108;;:::o;5600:118::-;5687:24;5705:5;5687:24;:::i;:::-;5682:3;5675:37;5600:118;;:::o;5754:732::-;5873:3;5902:54;5950:5;5902:54;:::i;:::-;5972:86;6051:6;6046:3;5972:86;:::i;:::-;5965:93;;6082:56;6132:5;6082:56;:::i;:::-;6161:7;6192:1;6177:284;6202:6;6199:1;6196:13;6177:284;;;6278:6;6272:13;6305:63;6364:3;6349:13;6305:63;:::i;:::-;6298:70;;6391:60;6444:6;6391:60;:::i;:::-;6381:70;;6237:224;6224:1;6221;6217:9;6212:14;;6177:284;;;6181:14;6477:3;6470:10;;5878:608;;;5754:732;;;;:::o;6492:109::-;6573:21;6588:5;6573:21;:::i;:::-;6568:3;6561:34;6492:109;;:::o;6607:183::-;6720:63;6777:5;6720:63;:::i;:::-;6715:3;6708:76;6607:183;;:::o;6796:147::-;6891:45;6930:5;6891:45;:::i;:::-;6886:3;6879:58;6796:147;;:::o;6949:364::-;7037:3;7065:39;7098:5;7065:39;:::i;:::-;7120:71;7184:6;7179:3;7120:71;:::i;:::-;7113:78;;7200:52;7245:6;7240:3;7233:4;7226:5;7222:16;7200:52;:::i;:::-;7277:29;7299:6;7277:29;:::i;:::-;7272:3;7268:39;7261:46;;7041:272;6949:364;;;;:::o;7319:366::-;7461:3;7482:67;7546:2;7541:3;7482:67;:::i;:::-;7475:74;;7558:93;7647:3;7558:93;:::i;:::-;7676:2;7671:3;7667:12;7660:19;;7319:366;;;:::o;7691:::-;7833:3;7854:67;7918:2;7913:3;7854:67;:::i;:::-;7847:74;;7930:93;8019:3;7930:93;:::i;:::-;8048:2;8043:3;8039:12;8032:19;;7691:366;;;:::o;8063:::-;8205:3;8226:67;8290:2;8285:3;8226:67;:::i;:::-;8219:74;;8302:93;8391:3;8302:93;:::i;:::-;8420:2;8415:3;8411:12;8404:19;;8063:366;;;:::o;8435:::-;8577:3;8598:67;8662:2;8657:3;8598:67;:::i;:::-;8591:74;;8674:93;8763:3;8674:93;:::i;:::-;8792:2;8787:3;8783:12;8776:19;;8435:366;;;:::o;8807:::-;8949:3;8970:67;9034:2;9029:3;8970:67;:::i;:::-;8963:74;;9046:93;9135:3;9046:93;:::i;:::-;9164:2;9159:3;9155:12;9148:19;;8807:366;;;:::o;9179:::-;9321:3;9342:67;9406:2;9401:3;9342:67;:::i;:::-;9335:74;;9418:93;9507:3;9418:93;:::i;:::-;9536:2;9531:3;9527:12;9520:19;;9179:366;;;:::o;9551:::-;9693:3;9714:67;9778:2;9773:3;9714:67;:::i;:::-;9707:74;;9790:93;9879:3;9790:93;:::i;:::-;9908:2;9903:3;9899:12;9892:19;;9551:366;;;:::o;9923:::-;10065:3;10086:67;10150:2;10145:3;10086:67;:::i;:::-;10079:74;;10162:93;10251:3;10162:93;:::i;:::-;10280:2;10275:3;10271:12;10264:19;;9923:366;;;:::o;10295:::-;10437:3;10458:67;10522:2;10517:3;10458:67;:::i;:::-;10451:74;;10534:93;10623:3;10534:93;:::i;:::-;10652:2;10647:3;10643:12;10636:19;;10295:366;;;:::o;10667:::-;10809:3;10830:67;10894:2;10889:3;10830:67;:::i;:::-;10823:74;;10906:93;10995:3;10906:93;:::i;:::-;11024:2;11019:3;11015:12;11008:19;;10667:366;;;:::o;11039:::-;11181:3;11202:67;11266:2;11261:3;11202:67;:::i;:::-;11195:74;;11278:93;11367:3;11278:93;:::i;:::-;11396:2;11391:3;11387:12;11380:19;;11039:366;;;:::o;11411:::-;11553:3;11574:67;11638:2;11633:3;11574:67;:::i;:::-;11567:74;;11650:93;11739:3;11650:93;:::i;:::-;11768:2;11763:3;11759:12;11752:19;;11411:366;;;:::o;11783:::-;11925:3;11946:67;12010:2;12005:3;11946:67;:::i;:::-;11939:74;;12022:93;12111:3;12022:93;:::i;:::-;12140:2;12135:3;12131:12;12124:19;;11783:366;;;:::o;12155:::-;12297:3;12318:67;12382:2;12377:3;12318:67;:::i;:::-;12311:74;;12394:93;12483:3;12394:93;:::i;:::-;12512:2;12507:3;12503:12;12496:19;;12155:366;;;:::o;12527:::-;12669:3;12690:67;12754:2;12749:3;12690:67;:::i;:::-;12683:74;;12766:93;12855:3;12766:93;:::i;:::-;12884:2;12879:3;12875:12;12868:19;;12527:366;;;:::o;12899:118::-;12986:24;13004:5;12986:24;:::i;:::-;12981:3;12974:37;12899:118;;:::o;13023:112::-;13106:22;13122:5;13106:22;:::i;:::-;13101:3;13094:35;13023:112;;:::o;13141:222::-;13234:4;13272:2;13261:9;13257:18;13249:26;;13285:71;13353:1;13342:9;13338:17;13329:6;13285:71;:::i;:::-;13141:222;;;;:::o;13369:210::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13507:65;13569:1;13558:9;13554:17;13545:6;13507:65;:::i;:::-;13369:210;;;;:::o;13585:274::-;13704:4;13742:2;13731:9;13727:18;13719:26;;13755:97;13849:1;13838:9;13834:17;13825:6;13755:97;:::i;:::-;13585:274;;;;:::o;13865:313::-;13978:4;14016:2;14005:9;14001:18;13993:26;;14065:9;14059:4;14055:20;14051:1;14040:9;14036:17;14029:47;14093:78;14166:4;14157:6;14093:78;:::i;:::-;14085:86;;13865:313;;;;:::o;14184:419::-;14350:4;14388:2;14377:9;14373:18;14365:26;;14437:9;14431:4;14427:20;14423:1;14412:9;14408:17;14401:47;14465:131;14591:4;14465:131;:::i;:::-;14457:139;;14184:419;;;:::o;14609:::-;14775:4;14813:2;14802:9;14798:18;14790:26;;14862:9;14856:4;14852:20;14848:1;14837:9;14833:17;14826:47;14890:131;15016:4;14890:131;:::i;:::-;14882:139;;14609:419;;;:::o;15034:::-;15200:4;15238:2;15227:9;15223:18;15215:26;;15287:9;15281:4;15277:20;15273:1;15262:9;15258:17;15251:47;15315:131;15441:4;15315:131;:::i;:::-;15307:139;;15034:419;;;:::o;15459:::-;15625:4;15663:2;15652:9;15648:18;15640:26;;15712:9;15706:4;15702:20;15698:1;15687:9;15683:17;15676:47;15740:131;15866:4;15740:131;:::i;:::-;15732:139;;15459:419;;;:::o;15884:::-;16050:4;16088:2;16077:9;16073:18;16065:26;;16137:9;16131:4;16127:20;16123:1;16112:9;16108:17;16101:47;16165:131;16291:4;16165:131;:::i;:::-;16157:139;;15884:419;;;:::o;16309:::-;16475:4;16513:2;16502:9;16498:18;16490:26;;16562:9;16556:4;16552:20;16548:1;16537:9;16533:17;16526:47;16590:131;16716:4;16590:131;:::i;:::-;16582:139;;16309:419;;;:::o;16734:::-;16900:4;16938:2;16927:9;16923:18;16915:26;;16987:9;16981:4;16977:20;16973:1;16962:9;16958:17;16951:47;17015:131;17141:4;17015:131;:::i;:::-;17007:139;;16734:419;;;:::o;17159:::-;17325:4;17363:2;17352:9;17348:18;17340:26;;17412:9;17406:4;17402:20;17398:1;17387:9;17383:17;17376:47;17440:131;17566:4;17440:131;:::i;:::-;17432:139;;17159:419;;;:::o;17584:::-;17750:4;17788:2;17777:9;17773:18;17765:26;;17837:9;17831:4;17827:20;17823:1;17812:9;17808:17;17801:47;17865:131;17991:4;17865:131;:::i;:::-;17857:139;;17584:419;;;:::o;18009:::-;18175:4;18213:2;18202:9;18198:18;18190:26;;18262:9;18256:4;18252:20;18248:1;18237:9;18233:17;18226:47;18290:131;18416:4;18290:131;:::i;:::-;18282:139;;18009:419;;;:::o;18434:::-;18600:4;18638:2;18627:9;18623:18;18615:26;;18687:9;18681:4;18677:20;18673:1;18662:9;18658:17;18651:47;18715:131;18841:4;18715:131;:::i;:::-;18707:139;;18434:419;;;:::o;18859:::-;19025:4;19063:2;19052:9;19048:18;19040:26;;19112:9;19106:4;19102:20;19098:1;19087:9;19083:17;19076:47;19140:131;19266:4;19140:131;:::i;:::-;19132:139;;18859:419;;;:::o;19284:::-;19450:4;19488:2;19477:9;19473:18;19465:26;;19537:9;19531:4;19527:20;19523:1;19512:9;19508:17;19501:47;19565:131;19691:4;19565:131;:::i;:::-;19557:139;;19284:419;;;:::o;19709:::-;19875:4;19913:2;19902:9;19898:18;19890:26;;19962:9;19956:4;19952:20;19948:1;19937:9;19933:17;19926:47;19990:131;20116:4;19990:131;:::i;:::-;19982:139;;19709:419;;;:::o;20134:::-;20300:4;20338:2;20327:9;20323:18;20315:26;;20387:9;20381:4;20377:20;20373:1;20362:9;20358:17;20351:47;20415:131;20541:4;20415:131;:::i;:::-;20407:139;;20134:419;;;:::o;20559:222::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20703:71;20771:1;20760:9;20756:17;20747:6;20703:71;:::i;:::-;20559:222;;;;:::o;20787:831::-;21050:4;21088:3;21077:9;21073:19;21065:27;;21102:71;21170:1;21159:9;21155:17;21146:6;21102:71;:::i;:::-;21183:80;21259:2;21248:9;21244:18;21235:6;21183:80;:::i;:::-;21310:9;21304:4;21300:20;21295:2;21284:9;21280:18;21273:48;21338:108;21441:4;21432:6;21338:108;:::i;:::-;21330:116;;21456:72;21524:2;21513:9;21509:18;21500:6;21456:72;:::i;:::-;21538:73;21606:3;21595:9;21591:19;21582:6;21538:73;:::i;:::-;20787:831;;;;;;;;:::o;21624:214::-;21713:4;21751:2;21740:9;21736:18;21728:26;;21764:67;21828:1;21817:9;21813:17;21804:6;21764:67;:::i;:::-;21624:214;;;;:::o;21925:132::-;21992:4;22015:3;22007:11;;22045:4;22040:3;22036:14;22028:22;;21925:132;;;:::o;22063:114::-;22130:6;22164:5;22158:12;22148:22;;22063:114;;;:::o;22183:99::-;22235:6;22269:5;22263:12;22253:22;;22183:99;;;:::o;22288:113::-;22358:4;22390;22385:3;22381:14;22373:22;;22288:113;;;:::o;22407:184::-;22506:11;22540:6;22535:3;22528:19;22580:4;22575:3;22571:14;22556:29;;22407:184;;;;:::o;22597:169::-;22681:11;22715:6;22710:3;22703:19;22755:4;22750:3;22746:14;22731:29;;22597:169;;;;:::o;22772:305::-;22812:3;22831:20;22849:1;22831:20;:::i;:::-;22826:25;;22865:20;22883:1;22865:20;:::i;:::-;22860:25;;23019:1;22951:66;22947:74;22944:1;22941:81;22938:107;;;23025:18;;:::i;:::-;22938:107;23069:1;23066;23062:9;23055:16;;22772:305;;;;:::o;23083:185::-;23123:1;23140:20;23158:1;23140:20;:::i;:::-;23135:25;;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23213:1;23203:35;;23218:18;;:::i;:::-;23203:35;23260:1;23257;23253:9;23248:14;;23083:185;;;;:::o;23274:348::-;23314:7;23337:20;23355:1;23337:20;:::i;:::-;23332:25;;23371:20;23389:1;23371:20;:::i;:::-;23366:25;;23559:1;23491:66;23487:74;23484:1;23481:81;23476:1;23469:9;23462:17;23458:105;23455:131;;;23566:18;;:::i;:::-;23455:131;23614:1;23611;23607:9;23596:20;;23274:348;;;;:::o;23628:191::-;23668:4;23688:20;23706:1;23688:20;:::i;:::-;23683:25;;23722:20;23740:1;23722:20;:::i;:::-;23717:25;;23761:1;23758;23755:8;23752:34;;;23766:18;;:::i;:::-;23752:34;23811:1;23808;23804:9;23796:17;;23628:191;;;;:::o;23825:96::-;23862:7;23891:24;23909:5;23891:24;:::i;:::-;23880:35;;23825:96;;;:::o;23927:90::-;23961:7;24004:5;23997:13;23990:21;23979:32;;23927:90;;;:::o;24023:126::-;24060:7;24100:42;24093:5;24089:54;24078:65;;24023:126;;;:::o;24155:77::-;24192:7;24221:5;24210:16;;24155:77;;;:::o;24238:86::-;24273:7;24313:4;24306:5;24302:16;24291:27;;24238:86;;;:::o;24330:152::-;24406:9;24439:37;24470:5;24439:37;:::i;:::-;24426:50;;24330:152;;;:::o;24488:121::-;24546:9;24579:24;24597:5;24579:24;:::i;:::-;24566:37;;24488:121;;;:::o;24615:126::-;24665:9;24698:37;24729:5;24698:37;:::i;:::-;24685:50;;24615:126;;;:::o;24747:113::-;24797:9;24830:24;24848:5;24830:24;:::i;:::-;24817:37;;24747:113;;;:::o;24866:307::-;24934:1;24944:113;24958:6;24955:1;24952:13;24944:113;;;25043:1;25038:3;25034:11;25028:18;25024:1;25019:3;25015:11;25008:39;24980:2;24977:1;24973:10;24968:15;;24944:113;;;25075:6;25072:1;25069:13;25066:101;;;25155:1;25146:6;25141:3;25137:16;25130:27;25066:101;24915:258;24866:307;;;:::o;25179:233::-;25218:3;25241:24;25259:5;25241:24;:::i;:::-;25232:33;;25287:66;25280:5;25277:77;25274:103;;;25357:18;;:::i;:::-;25274:103;25404:1;25397:5;25393:13;25386:20;;25179:233;;;:::o;25418:180::-;25466:77;25463:1;25456:88;25563:4;25560:1;25553:15;25587:4;25584:1;25577:15;25604:180;25652:77;25649:1;25642:88;25749:4;25746:1;25739:15;25773:4;25770:1;25763:15;25790:180;25838:77;25835:1;25828:88;25935:4;25932:1;25925:15;25959:4;25956:1;25949:15;25976:180;26024:77;26021:1;26014:88;26121:4;26118:1;26111:15;26145:4;26142:1;26135:15;26162:117;26271:1;26268;26261:12;26285:117;26394:1;26391;26384:12;26408:117;26517:1;26514;26507:12;26531:117;26640:1;26637;26630:12;26654:117;26763:1;26760;26753:12;26777:102;26818:6;26869:2;26865:7;26860:2;26853:5;26849:14;26845:28;26835:38;;26777:102;;;:::o;26885:222::-;27025:34;27021:1;27013:6;27009:14;27002:58;27094:5;27089:2;27081:6;27077:15;27070:30;26885:222;:::o;27113:250::-;27253:34;27249:1;27241:6;27237:14;27230:58;27322:33;27317:2;27309:6;27305:15;27298:58;27113:250;:::o;27369:229::-;27509:34;27505:1;27497:6;27493:14;27486:58;27578:12;27573:2;27565:6;27561:15;27554:37;27369:229;:::o;27604:178::-;27744:30;27740:1;27732:6;27728:14;27721:54;27604:178;:::o;27788:225::-;27928:34;27924:1;27916:6;27912:14;27905:58;27997:8;27992:2;27984:6;27980:15;27973:33;27788:225;:::o;28019:221::-;28159:34;28155:1;28147:6;28143:14;28136:58;28228:4;28223:2;28215:6;28211:15;28204:29;28019:221;:::o;28246:222::-;28386:34;28382:1;28374:6;28370:14;28363:58;28455:5;28450:2;28442:6;28438:15;28431:30;28246:222;:::o;28474:177::-;28614:29;28610:1;28602:6;28598:14;28591:53;28474:177;:::o;28657:220::-;28797:34;28793:1;28785:6;28781:14;28774:58;28866:3;28861:2;28853:6;28849:15;28842:28;28657:220;:::o;28883:182::-;29023:34;29019:1;29011:6;29007:14;29000:58;28883:182;:::o;29071:228::-;29211:34;29207:1;29199:6;29195:14;29188:58;29280:11;29275:2;29267:6;29263:15;29256:36;29071:228;:::o;29305:224::-;29445:34;29441:1;29433:6;29429:14;29422:58;29514:7;29509:2;29501:6;29497:15;29490:32;29305:224;:::o;29535:222::-;29675:34;29671:1;29663:6;29659:14;29652:58;29744:5;29739:2;29731:6;29727:15;29720:30;29535:222;:::o;29763:162::-;29903:14;29899:1;29891:6;29887:14;29880:38;29763:162;:::o;29931:223::-;30071:34;30067:1;30059:6;30055:14;30048:58;30140:6;30135:2;30127:6;30123:15;30116:31;29931:223;:::o;30160:122::-;30233:24;30251:5;30233:24;:::i;:::-;30226:5;30223:35;30213:63;;30272:1;30269;30262:12;30213:63;30160:122;:::o;30288:116::-;30358:21;30373:5;30358:21;:::i;:::-;30351:5;30348:32;30338:60;;30394:1;30391;30384:12;30338:60;30288:116;:::o;30410:122::-;30483:24;30501:5;30483:24;:::i;:::-;30476:5;30473:35;30463:63;;30522:1;30519;30512:12;30463:63;30410:122;:::o

Swarm Source

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