ETH Price: $3,803.40 (+0.74%)
Gas: 5 Gwei

Token

First Star (SIRIUS)
 

Overview

Max Total Supply

1,000,000,000 SIRIUS

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,926,830.735404144 SIRIUS

Value
$0.00
0x2c9527a086e45b7f08a2f8f181304e70a6821c51
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:
FirstStar

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-28
*/

/*


First Star - Sirius

When God said, "Let there be Light," God created the universe. On the third day, he made the earth and the sky; on the fourth, he fashioned the sun, moon, and stars.

The first star to arise was Sirius, the brightest and most favored by the Almighty. Its brilliance surpasses that of the light at the moment of creation.

The Dog Star (Sirius) is the prominent being older than most galaxies and shines brighter than a million suns combined; soon, every creation will see him as a Deity most closest to God.


*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

    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 FirstStar is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "First Star";
    string private constant _symbol = "SIRIUS";
    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 = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;

    //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) public _buyMap;
    address payable private _developmentAddress = payable(0x7165f481aA8ff711Fd1fD5961f35E216e76bC46B);
    address payable private _marketingAddress = payable(0x7165f481aA8ff711Fd1fD5961f35E216e76bC46B);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = true; 
    bool private inSwap = true;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1000000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000000 * 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 {
        _marketingAddress.transfer(amount);
    }

    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 blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    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;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","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":[],"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":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","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"}]

6080604052670de0b6b3a76400006000196200001c91906200075b565b6000196200002b9190620007c2565b600655600060085560006009556000600a556000600b55600a54600c55600b54600d55600c54600e55600d54600f55737165f481aa8ff711fd1fd5961f35e216e76bc46b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737165f481aa8ff711fd1fd5961f35e216e76bc46b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550670de0b6b3a764000060165566470de4df82000060175566038d7ea4c680006018553480156200018357600080fd5b50600062000196620006f160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032a57600080fd5b505afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000365919062000867565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c857600080fd5b505afa158015620003dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000403919062000867565b6040518363ffffffff1660e01b815260040162000422929190620008aa565b602060405180830381600087803b1580156200043d57600080fd5b505af115801562000452573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000478919062000867565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004ce620006f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067b620006f160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006e29190620008e8565b60405180910390a35062000905565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007688262000722565b9150620007758362000722565b9250826200078857620007876200072c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007cf8262000722565b9150620007dc8362000722565b925082821015620007f257620007f162000793565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200082f8262000802565b9050919050565b620008418162000822565b81146200084d57600080fd5b50565b600081519050620008618162000836565b92915050565b60006020828403121562000880576200087f620007fd565b5b6000620008908482850162000850565b91505092915050565b620008a48162000822565b82525050565b6000604082019050620008c1600083018562000899565b620008d0602083018462000899565b9392505050565b620008e28162000722565b82525050565b6000602082019050620008ff6000830184620008d7565b92915050565b613bbb80620009156000396000f3fe6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280600a81526020017f4669727374205374617200000000000000000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f5349524955530000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125b4670de0b6b3a764000060065461231490919063ffffffff16565b8210156125d257600654670de0b6b3a76400009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202aac01e5cf82c8bd946f61a63819af000b165b03ffec39f1d6f35ee3f020040264736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101ba5760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f4578063dd62ed3e1461061d578063ea1644d51461065a578063f2fde38b14610683576101c1565b8063a9059cbb14610563578063bfd79284146105a0578063c3c8cd80146105dd576101c1565b80638f70ccf7116100c65780638f70ccf7146104bb5780638f9a55c0146104e457806395d89b411461050f57806398a5c3151461053a576101c1565b80637d1db4a5146104285780637f2feddc146104535780638da5cb5b14610490576101c1565b8063313ce567116101595780636d8aa8f8116101335780636d8aa8f8146103945780636fc3eaec146103bd57806370a08231146103d4578063715018a614610411576101c1565b8063313ce5671461031557806349bd5a5e146103405780636b9990531461036b576101c1565b80631694505e116101955780631694505e1461025757806318160ddd1461028257806323b872dd146102ad5780632fd689e3146102ea576101c1565b8062b8cf2a146101c657806306fdde03146101ef578063095ea7b31461021a576101c1565b366101c157005b600080fd5b3480156101d257600080fd5b506101ed60048036038101906101e89190612bae565b6106ac565b005b3480156101fb57600080fd5b506102046107d6565b6040516102119190612c7f565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c9190612cd7565b610813565b60405161024e9190612d32565b60405180910390f35b34801561026357600080fd5b5061026c610831565b6040516102799190612dac565b60405180910390f35b34801561028e57600080fd5b50610297610857565b6040516102a49190612dd6565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612df1565b610867565b6040516102e19190612d32565b60405180910390f35b3480156102f657600080fd5b506102ff610940565b60405161030c9190612dd6565b60405180910390f35b34801561032157600080fd5b5061032a610946565b6040516103379190612e60565b60405180910390f35b34801561034c57600080fd5b5061035561094f565b6040516103629190612e8a565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612ea5565b610975565b005b3480156103a057600080fd5b506103bb60048036038101906103b69190612efe565b610a65565b005b3480156103c957600080fd5b506103d2610b17565b005b3480156103e057600080fd5b506103fb60048036038101906103f69190612ea5565b610be8565b6040516104089190612dd6565b60405180910390f35b34801561041d57600080fd5b50610426610c39565b005b34801561043457600080fd5b5061043d610d8c565b60405161044a9190612dd6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190612ea5565b610d92565b6040516104879190612dd6565b60405180910390f35b34801561049c57600080fd5b506104a5610daa565b6040516104b29190612e8a565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612efe565b610dd3565b005b3480156104f057600080fd5b506104f9610e85565b6040516105069190612dd6565b60405180910390f35b34801561051b57600080fd5b50610524610e8b565b6040516105319190612c7f565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612f2b565b610ec8565b005b34801561056f57600080fd5b5061058a60048036038101906105859190612cd7565b610f67565b6040516105979190612d32565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190612ea5565b610f85565b6040516105d49190612d32565b60405180910390f35b3480156105e957600080fd5b506105f2610fa5565b005b34801561060057600080fd5b5061061b60048036038101906106169190612fb3565b61107e565b005b34801561062957600080fd5b50610644600480360381019061063f9190613013565b6111b8565b6040516106519190612dd6565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c9190612f2b565b61123f565b005b34801561068f57600080fd5b506106aa60048036038101906106a59190612ea5565b6112de565b005b6106b46114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389061309f565b60405180910390fd5b60005b81518110156107d257600160106000848481518110610766576107656130bf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107ca9061311d565b915050610744565b5050565b60606040518060400160405280600a81526020017f4669727374205374617200000000000000000000000000000000000000000000815250905090565b60006108276108206114a0565b84846114a8565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b6000610874848484611673565b610935846108806114a0565b61093085604051806060016040528060288152602001613b5e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ef89092919063ffffffff16565b6114a8565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61097d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a019061309f565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610a6d6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af19061309f565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b586114a0565b73ffffffffffffffffffffffffffffffffffffffff161480610bce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bb66114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b610bd757600080fd5b6000479050610be581611f5c565b50565b6000610c32600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fc8565b9050919050565b610c416114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc59061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ddb6114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f9061309f565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f5349524955530000000000000000000000000000000000000000000000000000815250905090565b610ed06114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f549061309f565b60405180910390fd5b8060188190555050565b6000610f7b610f746114a0565b8484611673565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe66114a0565b73ffffffffffffffffffffffffffffffffffffffff16148061105c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110446114a0565b73ffffffffffffffffffffffffffffffffffffffff16145b61106557600080fd5b600061107030610be8565b905061107b81612036565b50565b6110866114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110a9061309f565b60405180910390fd5b60005b838390508110156111b2578160056000868685818110611139576111386130bf565b5b905060200201602081019061114e9190612ea5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111aa9061311d565b915050611116565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112476114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb9061309f565b60405180910390fd5b8060178190555050565b6112e66114a0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136a9061309f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da906131d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f9061326a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f906132fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116669190612dd6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da9061338e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90613420565b60405180910390fd5b60008111611796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178d906134b2565b60405180910390fd5b61179e610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180c57506117dc610daa565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bf757601560149054906101000a900460ff1661189b5761182d610daa565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190613544565b60405180910390fd5b5b6016548111156118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d7906135b0565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119845750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ba90613642565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a705760175481611a2584610be8565b611a2f9190613662565b10611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a669061372a565b60405180910390fd5b5b6000611a7b30610be8565b9050600060185482101590506016548210611a965760165491505b808015611aae575060158054906101000a900460ff16155b8015611b085750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b205750601560169054906101000a900460ff165b8015611b765750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bcc5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bf457611bda82612036565b60004790506000811115611bf257611bf147611f5c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c9e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d515750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d505750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d5f5760009050611ee6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e0a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e2257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ecd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ee557600a54600c81905550600b54600d819055505b5b611ef2848484846122bc565b50505050565b6000838311158290611f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f379190612c7f565b60405180910390fd5b5060008385611f4f919061374a565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fc4573d6000803e3d6000fd5b5050565b600060065482111561200f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612006906137f0565b60405180910390fd5b60006120196122e9565b905061202e818461231490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561206d5761206c612a0d565b5b60405190808252806020026020018201604052801561209b5781602001602082028036833780820191505090505b50905030816000815181106120b3576120b26130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561215557600080fd5b505afa158015612169573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218d9190613825565b816001815181106121a1576121a06130bf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061220830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a8565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161226c95949392919061394b565b600060405180830381600087803b15801561228657600080fd5b505af115801561229a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806122ca576122c961235e565b5b6122d58484846123a1565b806122e3576122e261256c565b5b50505050565b60008060006122f6612580565b9150915061230d818361231490919063ffffffff16565b9250505090565b600061235683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125df565b905092915050565b6000600c5414801561237257506000600d54145b1561237c5761239f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806123b387612642565b95509550955095509550955061241186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126aa90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124a685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124f281612752565b6124fc848361280f565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125599190612dd6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000670de0b6b3a764000090506125b4670de0b6b3a764000060065461231490919063ffffffff16565b8210156125d257600654670de0b6b3a76400009350935050506125db565b81819350935050505b9091565b60008083118290612626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261d9190612c7f565b60405180910390fd5b506000838561263591906139d4565b9050809150509392505050565b600080600080600080600080600061265f8a600c54600d54612849565b925092509250600061266f6122e9565b905060008060006126828e8787876128df565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006126ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ef8565b905092915050565b60008082846127039190613662565b905083811015612748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273f90613a51565b60405180910390fd5b8091505092915050565b600061275c6122e9565b90506000612773828461296890919063ffffffff16565b90506127c781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612824826006546126aa90919063ffffffff16565b60068190555061283f816007546126f490919063ffffffff16565b6007819055505050565b6000806000806128756064612867888a61296890919063ffffffff16565b61231490919063ffffffff16565b9050600061289f6064612891888b61296890919063ffffffff16565b61231490919063ffffffff16565b905060006128c8826128ba858c6126aa90919063ffffffff16565b6126aa90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806128f8858961296890919063ffffffff16565b9050600061290f868961296890919063ffffffff16565b90506000612926878961296890919063ffffffff16565b9050600061294f8261294185876126aa90919063ffffffff16565b6126aa90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561297b57600090506129dd565b600082846129899190613a71565b905082848261299891906139d4565b146129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf90613b3d565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a45826129fc565b810181811067ffffffffffffffff82111715612a6457612a63612a0d565b5b80604052505050565b6000612a776129e3565b9050612a838282612a3c565b919050565b600067ffffffffffffffff821115612aa357612aa2612a0d565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ae482612ab9565b9050919050565b612af481612ad9565b8114612aff57600080fd5b50565b600081359050612b1181612aeb565b92915050565b6000612b2a612b2584612a88565b612a6d565b90508083825260208201905060208402830185811115612b4d57612b4c612ab4565b5b835b81811015612b765780612b628882612b02565b845260208401935050602081019050612b4f565b5050509392505050565b600082601f830112612b9557612b946129f7565b5b8135612ba5848260208601612b17565b91505092915050565b600060208284031215612bc457612bc36129ed565b5b600082013567ffffffffffffffff811115612be257612be16129f2565b5b612bee84828501612b80565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c31578082015181840152602081019050612c16565b83811115612c40576000848401525b50505050565b6000612c5182612bf7565b612c5b8185612c02565b9350612c6b818560208601612c13565b612c74816129fc565b840191505092915050565b60006020820190508181036000830152612c998184612c46565b905092915050565b6000819050919050565b612cb481612ca1565b8114612cbf57600080fd5b50565b600081359050612cd181612cab565b92915050565b60008060408385031215612cee57612ced6129ed565b5b6000612cfc85828601612b02565b9250506020612d0d85828601612cc2565b9150509250929050565b60008115159050919050565b612d2c81612d17565b82525050565b6000602082019050612d476000830184612d23565b92915050565b6000819050919050565b6000612d72612d6d612d6884612ab9565b612d4d565b612ab9565b9050919050565b6000612d8482612d57565b9050919050565b6000612d9682612d79565b9050919050565b612da681612d8b565b82525050565b6000602082019050612dc16000830184612d9d565b92915050565b612dd081612ca1565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600080600060608486031215612e0a57612e096129ed565b5b6000612e1886828701612b02565b9350506020612e2986828701612b02565b9250506040612e3a86828701612cc2565b9150509250925092565b600060ff82169050919050565b612e5a81612e44565b82525050565b6000602082019050612e756000830184612e51565b92915050565b612e8481612ad9565b82525050565b6000602082019050612e9f6000830184612e7b565b92915050565b600060208284031215612ebb57612eba6129ed565b5b6000612ec984828501612b02565b91505092915050565b612edb81612d17565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b600060208284031215612f1457612f136129ed565b5b6000612f2284828501612ee9565b91505092915050565b600060208284031215612f4157612f406129ed565b5b6000612f4f84828501612cc2565b91505092915050565b600080fd5b60008083601f840112612f7357612f726129f7565b5b8235905067ffffffffffffffff811115612f9057612f8f612f58565b5b602083019150836020820283011115612fac57612fab612ab4565b5b9250929050565b600080600060408486031215612fcc57612fcb6129ed565b5b600084013567ffffffffffffffff811115612fea57612fe96129f2565b5b612ff686828701612f5d565b9350935050602061300986828701612ee9565b9150509250925092565b6000806040838503121561302a576130296129ed565b5b600061303885828601612b02565b925050602061304985828601612b02565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613089602083612c02565b915061309482613053565b602082019050919050565b600060208201905081810360008301526130b88161307c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061312882612ca1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561315b5761315a6130ee565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131c2602683612c02565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613254602483612c02565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132e6602283612c02565b91506132f18261328a565b604082019050919050565b60006020820190508181036000830152613315816132d9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613378602583612c02565b91506133838261331c565b604082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061340a602383612c02565b9150613415826133ae565b604082019050919050565b60006020820190508181036000830152613439816133fd565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061349c602983612c02565b91506134a782613440565b604082019050919050565b600060208201905081810360008301526134cb8161348f565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061352e603f83612c02565b9150613539826134d2565b604082019050919050565b6000602082019050818103600083015261355d81613521565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061359a601c83612c02565b91506135a582613564565b602082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061362c602383612c02565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b600061366d82612ca1565b915061367883612ca1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ad576136ac6130ee565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613714602383612c02565b915061371f826136b8565b604082019050919050565b6000602082019050818103600083015261374381613707565b9050919050565b600061375582612ca1565b915061376083612ca1565b925082821015613773576137726130ee565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006137da602a83612c02565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b60008151905061381f81612aeb565b92915050565b60006020828403121561383b5761383a6129ed565b5b600061384984828501613810565b91505092915050565b6000819050919050565b600061387761387261386d84613852565b612d4d565b612ca1565b9050919050565b6138878161385c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c281612ad9565b82525050565b60006138d483836138b9565b60208301905092915050565b6000602082019050919050565b60006138f88261388d565b6139028185613898565b935061390d836138a9565b8060005b8381101561393e57815161392588826138c8565b9750613930836138e0565b925050600181019050613911565b5085935050505092915050565b600060a0820190506139606000830188612dc7565b61396d602083018761387e565b818103604083015261397f81866138ed565b905061398e6060830185612e7b565b61399b6080830184612dc7565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139df82612ca1565b91506139ea83612ca1565b9250826139fa576139f96139a5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a3b601b83612c02565b9150613a4682613a05565b602082019050919050565b60006020820190508181036000830152613a6a81613a2e565b9050919050565b6000613a7c82612ca1565b9150613a8783612ca1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ac057613abf6130ee565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b27602183612c02565b9150613b3282613acb565b604082019050919050565b60006020820190508181036000830152613b5681613b1a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202aac01e5cf82c8bd946f61a63819af000b165b03ffec39f1d6f35ee3f020040264736f6c63430008090033

Deployed Bytecode Sourcemap

4622:13060:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13301:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7129:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8054:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7406:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8255:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6275:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7315:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6016:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13478:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17211:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13058:235;;;;;;;;;;;;;:::i;:::-;;7509:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2109:148;;;;;;;;;;;;;:::i;:::-;;6165:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5710:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1895:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12705:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6220:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7220:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17020:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7655:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5672:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12814:236;;;;;;;;;;;;;:::i;:::-;;17443:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7862:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17320:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2265:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13301:169;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13377:9:::1;13372:91;13396:5;:12;13392:1;:16;13372:91;;;13447:4;13430;:14;13435:5;13441:1;13435:8;;;;;;;;:::i;:::-;;;;;;;;13430:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13410:3;;;;;:::i;:::-;;;;13372:91;;;;13301:169:::0;:::o;7129:83::-;7166:13;7199:5;;;;;;;;;;;;;;;;;7192:12;;7129:83;:::o;8054:193::-;8156:4;8178:39;8187:12;:10;:12::i;:::-;8201:7;8210:6;8178:8;:39::i;:::-;8235:4;8228:11;;8054:193;;;;:::o;5968:41::-;;;;;;;;;;;;;:::o;7406:95::-;7459:7;5174:18;7479:14;;7406:95;:::o;8255:446::-;8387:4;8404:36;8414:6;8422:9;8433:6;8404:9;:36::i;:::-;8451:220;8474:6;8495:12;:10;:12::i;:::-;8522:138;8578:6;8522:138;;;;;;;;;;;;;;;;;:11;:19;8534:6;8522:19;;;;;;;;;;;;;;;:33;8542:12;:10;:12::i;:::-;8522:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8451:8;:220::i;:::-;8689:4;8682:11;;8255:446;;;;;:::o;6275:52::-;;;;:::o;7315:83::-;7356:5;4848:1;7374:16;;7315:83;:::o;6016:28::-;;;;;;;;;;;;;:::o;13478:92::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13557:5:::1;13542:4;:12;13547:6;13542:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13478:92:::0;:::o;17211:101::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17292:12:::1;17278:11;;:26;;;;;;;;;;;;;;;;;;17211:101:::0;:::o;13058:235::-;13124:19;;;;;;;;;;;13108:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13163:17;;;;;;;;;;;13147:33;;:12;:10;:12::i;:::-;:33;;;13108:72;13100:81;;;;;;13192:26;13221:21;13192:50;;13253:32;13266:18;13253:12;:32::i;:::-;13089:204;13058:235::o;7509:138::-;7575:7;7602:37;7622:7;:16;7630:7;7622:16;;;;;;;;;;;;;;;;7602:19;:37::i;:::-;7595:44;;7509:138;;;:::o;2109:148::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2216:1:::1;2179:40;;2200:6;::::0;::::1;;;;;;;;2179:40;;;;;;;;;;;;2247:1;2230:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2109:148::o:0;6165:48::-;;;;:::o;5710:43::-;;;;;;;;;;;;;;;;;:::o;1895:79::-;1933:7;1960:6;;;;;;;;;;;1953:13;;1895:79;:::o;12705:101::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12786:12:::1;12772:11;;:26;;;;;;;;;;;;;;;;;;12705:101:::0;:::o;6220:48::-;;;;:::o;7220:87::-;7259:13;7292:7;;;;;;;;;;;;;;;;;7285:14;;7220:87;:::o;17020:139::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17133:18:::1;17111:19;:40;;;;17020:139:::0;:::o;7655:199::-;7760:4;7782:42;7792:12;:10;:12::i;:::-;7806:9;7817:6;7782:9;:42::i;:::-;7842:4;7835:11;;7655:199;;;;:::o;5672:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12814:236::-;12880:19;;;;;;;;;;;12864:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12919:17;;;;;;;;;;;12903:33;;:12;:10;:12::i;:::-;:33;;;12864:72;12856:81;;;;;;12948:23;12974:24;12992:4;12974:9;:24::i;:::-;12948:50;;13009:33;13026:15;13009:16;:33::i;:::-;12845:205;12814:236::o;17443:234::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17560:9:::1;17556:114;17579:8;;:15;;17575:1;:19;17556:114;;;17650:8;17616:18;:31;17635:8;;17644:1;17635:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17616:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17596:3;;;;;:::i;:::-;;;;17556:114;;;;17443:234:::0;;;:::o;7862:184::-;7979:7;8011:11;:18;8023:5;8011:18;;;;;;;;;;;;;;;:27;8030:7;8011:27;;;;;;;;;;;;;;;;8004:34;;7862:184;;;;:::o;17320:115::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17414:13:::1;17397:14;:30;;;;17320:115:::0;:::o;2265:244::-;2032:12;:10;:12::i;:::-;2022:22;;:6;;;;;;;;;;:22;;;2014:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2374:1:::1;2354:22;;:8;:22;;;;2346:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2464:8;2435:38;;2456:6;::::0;::::1;;;;;;;;2435:38;;;;;;;;;;;;2493:8;2484:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2265:244:::0;:::o;654:98::-;707:7;734:10;727:17;;654:98;:::o;9392:369::-;9536:1;9519:19;;:5;:19;;;;9511:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9617:1;9598:21;;:7;:21;;;;9590:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9699:6;9669:11;:18;9681:5;9669:18;;;;;;;;;;;;;;;:27;9688:7;9669:27;;;;;;;;;;;;;;;:36;;;;9737:7;9721:32;;9730:5;9721:32;;;9746:6;9721:32;;;;;;:::i;:::-;;;;;;;;9392:369;;;:::o;9769:2330::-;9907:1;9891:18;;:4;:18;;;;9883:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:1;9970:16;;:2;:16;;;;9962:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10054:1;10045:6;:10;10037:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10126:7;:5;:7::i;:::-;10118:15;;:4;:15;;;;:32;;;;;10143:7;:5;:7::i;:::-;10137:13;;:2;:13;;;;10118:32;10114:1259;;;10207:11;;;;;;;;;;;10202:144;;10255:7;:5;:7::i;:::-;10247:15;;:4;:15;;;10239:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10202:144;10380:12;;10370:6;:22;;10362:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10449:4;:10;10454:4;10449:10;;;;;;;;;;;;;;;;;;;;;;;;;10448:11;:24;;;;;10464:4;:8;10469:2;10464:8;;;;;;;;;;;;;;;;;;;;;;;;;10463:9;10448:24;10440:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10538:13;;;;;;;;;;;10532:19;;:2;:19;;;10529:146;;10605:14;;10596:6;10580:13;10590:2;10580:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10572:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10529:146;10691:28;10722:24;10740:4;10722:9;:24::i;:::-;10691:55;;10761:12;10800:19;;10776:20;:43;;10761:58;;10863:12;;10839:20;:36;10836:124;;10932:12;;10909:35;;10836:124;10980:7;:18;;;;;10992:6;;;;;;;;;;10991:7;10980:18;:43;;;;;11010:13;;;;;;;;;;;11002:21;;:4;:21;;;;10980:43;:58;;;;;11027:11;;;;;;;;;;;10980:58;:87;;;;;11043:18;:24;11062:4;11043:24;;;;;;;;;;;;;;;;;;;;;;;;;11042:25;10980:87;:114;;;;;11072:18;:22;11091:2;11072:22;;;;;;;;;;;;;;;;;;;;;;;;;11071:23;10980:114;10976:386;;;11115:38;11132:20;11115:16;:38::i;:::-;11172:26;11201:21;11172:50;;11266:1;11245:18;:22;11241:106;;;11292:35;11305:21;11292:12;:35::i;:::-;11241:106;11096:266;10976:386;10152:1221;;10114:1259;11385:12;11400:4;11385:19;;11449:18;:24;11468:4;11449:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11477:18;:22;11496:2;11477:22;;;;;;;;;;;;;;;;;;;;;;;;;11449:50;11448:102;;;;11513:13;;;;;;;;;;;11505:21;;:4;:21;;;;:44;;;;;11536:13;;;;;;;;;;;11530:19;;:2;:19;;;;11505:44;11448:102;11444:594;;;11577:5;11567:15;;11444:594;;;11660:13;;;;;;;;;;;11652:21;;:4;:21;;;:55;;;;;11691:15;;;;;;;;;;;11677:30;;:2;:30;;;;11652:55;11649:162;;;11740:14;;11728:9;:26;;;;11783:12;;11773:7;:22;;;;11649:162;11870:13;;;;;;;;;;;11864:19;;:2;:19;;;:55;;;;;11903:15;;;;;;;;;;;11887:32;;:4;:32;;;;11864:55;11860:165;;;11952:15;;11940:9;:27;;;;11996:13;;11986:7;:23;;;;11860:165;11444:594;12050:41;12065:4;12071:2;12075:6;12083:7;12050:14;:41::i;:::-;9872:2227;9769:2330;;;:::o;2873:224::-;2993:7;3026:1;3021;:6;;3029:12;3013:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3053:9;3069:1;3065;:5;;;;:::i;:::-;3053:17;;3088:1;3081:8;;;2873:224;;;;;:::o;12598:99::-;12655:17;;;;;;;;;;;:26;;:34;12682:6;12655:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12598:99;:::o;8709:323::-;8804:7;8862;;8851;:18;;8829:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8950:19;8972:10;:8;:10::i;:::-;8950:32;;9000:24;9012:11;9000:7;:11;;:24;;;;:::i;:::-;8993:31;;;8709:323;;;:::o;12107:483::-;6430:4;6421:6;;:13;;;;;;;;;;;;;;;;;;12185:21:::1;12223:1;12209:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12185:40;;12254:4;12236;12241:1;12236:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12280:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12270:4;12275:1;12270:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12313:62;12330:4;12345:15;;;;;;;;;;;12363:11;12313:8;:62::i;:::-;12386:15;;;;;;;;;;;:66;;;12467:11;12493:1;12509:4;12536;12556:15;12386:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12174:416;6466:5:::0;6457:6;;:14;;;;;;;;;;;;;;;;;;12107:483;:::o;13578:282::-;13734:7;13729:28;;13743:14;:12;:14::i;:::-;13729:28;13768:44;13786:6;13794:9;13805:6;13768:17;:44::i;:::-;13828:7;13823:29;;13837:15;:13;:15::i;:::-;13823:29;13578:282;;;;:::o;16539:164::-;16581:7;16602:15;16619;16638:19;:17;:19::i;:::-;16601:56;;;;16675:20;16687:7;16675;:11;;:20;;;;:::i;:::-;16668:27;;;;16539:164;:::o;3359:132::-;3417:7;3444:39;3448:1;3451;3444:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3437:46;;3359:132;;;;:::o;9040:219::-;9100:1;9087:9;;:14;:30;;;;;9116:1;9105:7;;:12;9087:30;9083:43;;;9119:7;;9083:43;9158:9;;9138:17;:29;;;;9196:7;;9178:15;:25;;;;9228:1;9216:9;:13;;;;9250:1;9240:7;:11;;;;9040:219;:::o;13868:610::-;14015:15;14045:23;14083:12;14110:23;14148:12;14175:13;14202:19;14213:7;14202:10;:19::i;:::-;14000:221;;;;;;;;;;;;14250:28;14270:7;14250;:15;14258:6;14250:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14232:7;:15;14240:6;14232:15;;;;;;;;;;;;;;;:46;;;;14310:39;14333:15;14310:7;:18;14318:9;14310:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14289:7;:18;14297:9;14289:18;;;;;;;;;;;;;;;:60;;;;14360:16;14370:5;14360:9;:16::i;:::-;14387:23;14399:4;14405;14387:11;:23::i;:::-;14443:9;14426:44;;14435:6;14426:44;;;14454:15;14426:44;;;;;;:::i;:::-;;;;;;;;13989:489;;;;;;13868:610;;;:::o;9267:117::-;9323:17;;9311:9;:29;;;;9361:15;;9351:7;:25;;;;9267:117::o;16711:257::-;16762:7;16771;16791:15;16809:7;;16791:25;;16827:15;5174:18;16827:25;;16877:20;5174:18;16877:7;;:11;;:20;;;;:::i;:::-;16867:7;:30;16863:61;;;16907:7;;5174:18;16899:25;;;;;;;;16863:61;16943:7;16952;16935:25;;;;;;16711:257;;;:::o;3499:223::-;3619:7;3651:1;3647;:5;3654:12;3639:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3678:9;3694:1;3690;:5;;;;:::i;:::-;3678:17;;3713:1;3706:8;;;3499:223;;;;;:::o;14897:615::-;14997:7;15019;15041;15063;15085;15107;15143:23;15168:12;15182:13;15212:40;15224:7;15233:9;;15244:7;;15212:11;:40::i;:::-;15142:110;;;;;;15263:19;15285:10;:8;:10::i;:::-;15263:32;;15307:15;15324:23;15349:12;15378:46;15390:7;15399:4;15405:5;15412:11;15378;:46::i;:::-;15306:118;;;;;;15443:7;15452:15;15469:4;15475:15;15492:4;15498:5;15435:69;;;;;;;;;;;;;;;;;;;14897:615;;;;;;;:::o;2729:136::-;2787:7;2814:43;2818:1;2821;2814:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2807:50;;2729:136;;;;:::o;2542:179::-;2600:7;2620:9;2636:1;2632;:5;;;;:::i;:::-;2620:17;;2661:1;2656;:6;;2648:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2712:1;2705:8;;;2542:179;;;;:::o;14486:211::-;14539:19;14561:10;:8;:10::i;:::-;14539:32;;14582:13;14598:22;14608:11;14598:5;:9;;:22;;;;:::i;:::-;14582:38;;14656:33;14683:5;14656:7;:22;14672:4;14656:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14631:7;:22;14647:4;14631:22;;;;;;;;;;;;;;;:58;;;;14528:169;;14486:211;:::o;14705:147::-;14783:17;14795:4;14783:7;;:11;;:17;;;;:::i;:::-;14773:7;:27;;;;14824:20;14839:4;14824:10;;:14;;:20;;;;:::i;:::-;14811:10;:33;;;;14705:147;;:::o;15520:469::-;15689:7;15711;15733;15768:12;15783:30;15809:3;15783:21;15795:8;15783:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15768:45;;15824:13;15840:28;15864:3;15840:19;15852:6;15840:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15824:44;;15879:23;15905:28;15927:5;15905:17;15917:4;15905:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15879:54;;15952:15;15969:4;15975:5;15944:37;;;;;;;;;15520:469;;;;;;;:::o;15997:534::-;16191:7;16213;16235;16270:15;16288:24;16300:11;16288:7;:11;;:24;;;;:::i;:::-;16270:42;;16323:12;16338:21;16347:11;16338:4;:8;;:21;;;;:::i;:::-;16323:36;;16370:13;16386:22;16396:11;16386:5;:9;;:22;;;;:::i;:::-;16370:38;;16419:23;16445:28;16467:5;16445:17;16457:4;16445:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16419:54;;16492:7;16501:15;16518:4;16484:39;;;;;;;;;;15997:534;;;;;;;;:::o;3105:246::-;3163:7;3192:1;3187;:6;3183:47;;;3217:1;3210:8;;;;3183:47;3240:9;3256:1;3252;:5;;;;:::i;:::-;3240:17;;3285:1;3280;3276;:5;;;;:::i;:::-;:10;3268:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3342:1;3335:8;;;3105:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:60::-;6364:3;6385:5;6378:12;;6336:60;;;:::o;6402:142::-;6452:9;6485:53;6503:34;6512:24;6530:5;6512:24;:::i;:::-;6503:34;:::i;:::-;6485:53;:::i;:::-;6472:66;;6402:142;;;:::o;6550:126::-;6600:9;6633:37;6664:5;6633:37;:::i;:::-;6620:50;;6550:126;;;:::o;6682:152::-;6758:9;6791:37;6822:5;6791:37;:::i;:::-;6778:50;;6682:152;;;:::o;6840:183::-;6953:63;7010:5;6953:63;:::i;:::-;6948:3;6941:76;6840:183;;:::o;7029:274::-;7148:4;7186:2;7175:9;7171:18;7163:26;;7199:97;7293:1;7282:9;7278:17;7269:6;7199:97;:::i;:::-;7029:274;;;;:::o;7309:118::-;7396:24;7414:5;7396:24;:::i;:::-;7391:3;7384:37;7309:118;;:::o;7433:222::-;7526:4;7564:2;7553:9;7549:18;7541:26;;7577:71;7645:1;7634:9;7630:17;7621:6;7577:71;:::i;:::-;7433:222;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:86::-;8321:7;8361:4;8354:5;8350:16;8339:27;;8286:86;;;:::o;8378:112::-;8461:22;8477:5;8461:22;:::i;:::-;8456:3;8449:35;8378:112;;:::o;8496:214::-;8585:4;8623:2;8612:9;8608:18;8600:26;;8636:67;8700:1;8689:9;8685:17;8676:6;8636:67;:::i;:::-;8496:214;;;;:::o;8716:118::-;8803:24;8821:5;8803:24;:::i;:::-;8798:3;8791:37;8716:118;;:::o;8840:222::-;8933:4;8971:2;8960:9;8956:18;8948:26;;8984:71;9052:1;9041:9;9037:17;9028:6;8984:71;:::i;:::-;8840:222;;;;:::o;9068:329::-;9127:6;9176:2;9164:9;9155:7;9151:23;9147:32;9144:119;;;9182:79;;:::i;:::-;9144:119;9302:1;9327:53;9372:7;9363:6;9352:9;9348:22;9327:53;:::i;:::-;9317:63;;9273:117;9068:329;;;;:::o;9403:116::-;9473:21;9488:5;9473:21;:::i;:::-;9466:5;9463:32;9453:60;;9509:1;9506;9499:12;9453:60;9403:116;:::o;9525:133::-;9568:5;9606:6;9593:20;9584:29;;9622:30;9646:5;9622:30;:::i;:::-;9525:133;;;;:::o;9664:323::-;9720:6;9769:2;9757:9;9748:7;9744:23;9740:32;9737:119;;;9775:79;;:::i;:::-;9737:119;9895:1;9920:50;9962:7;9953:6;9942:9;9938:22;9920:50;:::i;:::-;9910:60;;9866:114;9664:323;;;;:::o;9993:329::-;10052:6;10101:2;10089:9;10080:7;10076:23;10072:32;10069:119;;;10107:79;;:::i;:::-;10069:119;10227:1;10252:53;10297:7;10288:6;10277:9;10273:22;10252:53;:::i;:::-;10242:63;;10198:117;9993:329;;;;:::o;10328:117::-;10437:1;10434;10427:12;10468:568;10541:8;10551:6;10601:3;10594:4;10586:6;10582:17;10578:27;10568:122;;10609:79;;:::i;:::-;10568:122;10722:6;10709:20;10699:30;;10752:18;10744:6;10741:30;10738:117;;;10774:79;;:::i;:::-;10738:117;10888:4;10880:6;10876:17;10864:29;;10942:3;10934:4;10926:6;10922:17;10912:8;10908:32;10905:41;10902:128;;;10949:79;;:::i;:::-;10902:128;10468:568;;;;;:::o;11042:698::-;11134:6;11142;11150;11199:2;11187:9;11178:7;11174:23;11170:32;11167:119;;;11205:79;;:::i;:::-;11167:119;11353:1;11342:9;11338:17;11325:31;11383:18;11375:6;11372:30;11369:117;;;11405:79;;:::i;:::-;11369:117;11518:80;11590:7;11581:6;11570:9;11566:22;11518:80;:::i;:::-;11500:98;;;;11296:312;11647:2;11673:50;11715:7;11706:6;11695:9;11691:22;11673:50;:::i;:::-;11663:60;;11618:115;11042:698;;;;;:::o;11746:474::-;11814:6;11822;11871:2;11859:9;11850:7;11846:23;11842:32;11839:119;;;11877:79;;:::i;:::-;11839:119;11997:1;12022:53;12067:7;12058:6;12047:9;12043:22;12022:53;:::i;:::-;12012:63;;11968:117;12124:2;12150:53;12195:7;12186:6;12175:9;12171:22;12150:53;:::i;:::-;12140:63;;12095:118;11746:474;;;;;:::o;12226:182::-;12366:34;12362:1;12354:6;12350:14;12343:58;12226:182;:::o;12414:366::-;12556:3;12577:67;12641:2;12636:3;12577:67;:::i;:::-;12570:74;;12653:93;12742:3;12653:93;:::i;:::-;12771:2;12766:3;12762:12;12755:19;;12414:366;;;:::o;12786:419::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12786:419;;;:::o;13211:180::-;13259:77;13256:1;13249:88;13356:4;13353:1;13346:15;13380:4;13377:1;13370:15;13397:180;13445:77;13442:1;13435:88;13542:4;13539:1;13532:15;13566:4;13563:1;13556:15;13583:233;13622:3;13645:24;13663:5;13645:24;:::i;:::-;13636:33;;13691:66;13684:5;13681:77;13678:103;;;13761:18;;:::i;:::-;13678:103;13808:1;13801:5;13797:13;13790:20;;13583:233;;;:::o;13822:225::-;13962:34;13958:1;13950:6;13946:14;13939:58;14031:8;14026:2;14018:6;14014:15;14007:33;13822:225;:::o;14053:366::-;14195:3;14216:67;14280:2;14275:3;14216:67;:::i;:::-;14209:74;;14292:93;14381:3;14292:93;:::i;:::-;14410:2;14405:3;14401:12;14394:19;;14053:366;;;:::o;14425:419::-;14591:4;14629:2;14618:9;14614:18;14606:26;;14678:9;14672:4;14668:20;14664:1;14653:9;14649:17;14642:47;14706:131;14832:4;14706:131;:::i;:::-;14698:139;;14425:419;;;:::o;14850:223::-;14990:34;14986:1;14978:6;14974:14;14967:58;15059:6;15054:2;15046:6;15042:15;15035:31;14850:223;:::o;15079:366::-;15221:3;15242:67;15306:2;15301:3;15242:67;:::i;:::-;15235:74;;15318:93;15407:3;15318:93;:::i;:::-;15436:2;15431:3;15427:12;15420:19;;15079:366;;;:::o;15451:419::-;15617:4;15655:2;15644:9;15640:18;15632:26;;15704:9;15698:4;15694:20;15690:1;15679:9;15675:17;15668:47;15732:131;15858:4;15732:131;:::i;:::-;15724:139;;15451:419;;;:::o;15876:221::-;16016:34;16012:1;16004:6;16000:14;15993:58;16085:4;16080:2;16072:6;16068:15;16061:29;15876:221;:::o;16103:366::-;16245:3;16266:67;16330:2;16325:3;16266:67;:::i;:::-;16259:74;;16342:93;16431:3;16342:93;:::i;:::-;16460:2;16455:3;16451:12;16444:19;;16103:366;;;:::o;16475:419::-;16641:4;16679:2;16668:9;16664:18;16656:26;;16728:9;16722:4;16718:20;16714:1;16703:9;16699:17;16692:47;16756:131;16882:4;16756:131;:::i;:::-;16748:139;;16475:419;;;:::o;16900:224::-;17040:34;17036:1;17028:6;17024:14;17017:58;17109:7;17104:2;17096:6;17092:15;17085:32;16900:224;:::o;17130:366::-;17272:3;17293:67;17357:2;17352:3;17293:67;:::i;:::-;17286:74;;17369:93;17458:3;17369:93;:::i;:::-;17487:2;17482:3;17478:12;17471:19;;17130:366;;;:::o;17502:419::-;17668:4;17706:2;17695:9;17691:18;17683:26;;17755:9;17749:4;17745:20;17741:1;17730:9;17726:17;17719:47;17783:131;17909:4;17783:131;:::i;:::-;17775:139;;17502:419;;;:::o;17927:222::-;18067:34;18063:1;18055:6;18051:14;18044:58;18136:5;18131:2;18123:6;18119:15;18112:30;17927:222;:::o;18155:366::-;18297:3;18318:67;18382:2;18377:3;18318:67;:::i;:::-;18311:74;;18394:93;18483:3;18394:93;:::i;:::-;18512:2;18507:3;18503:12;18496:19;;18155:366;;;:::o;18527:419::-;18693:4;18731:2;18720:9;18716:18;18708:26;;18780:9;18774:4;18770:20;18766:1;18755:9;18751:17;18744:47;18808:131;18934:4;18808:131;:::i;:::-;18800:139;;18527:419;;;:::o;18952:228::-;19092:34;19088:1;19080:6;19076:14;19069:58;19161:11;19156:2;19148:6;19144:15;19137:36;18952:228;:::o;19186:366::-;19328:3;19349:67;19413:2;19408:3;19349:67;:::i;:::-;19342:74;;19425:93;19514:3;19425:93;:::i;:::-;19543:2;19538:3;19534:12;19527:19;;19186:366;;;:::o;19558:419::-;19724:4;19762:2;19751:9;19747:18;19739:26;;19811:9;19805:4;19801:20;19797:1;19786:9;19782:17;19775:47;19839:131;19965:4;19839:131;:::i;:::-;19831:139;;19558:419;;;:::o;19983:250::-;20123:34;20119:1;20111:6;20107:14;20100:58;20192:33;20187:2;20179:6;20175:15;20168:58;19983:250;:::o;20239:366::-;20381:3;20402:67;20466:2;20461:3;20402:67;:::i;:::-;20395:74;;20478:93;20567:3;20478:93;:::i;:::-;20596:2;20591:3;20587:12;20580:19;;20239:366;;;:::o;20611:419::-;20777:4;20815:2;20804:9;20800:18;20792:26;;20864:9;20858:4;20854:20;20850:1;20839:9;20835:17;20828:47;20892:131;21018:4;20892:131;:::i;:::-;20884:139;;20611:419;;;:::o;21036:178::-;21176:30;21172:1;21164:6;21160:14;21153:54;21036:178;:::o;21220:366::-;21362:3;21383:67;21447:2;21442:3;21383:67;:::i;:::-;21376:74;;21459:93;21548:3;21459:93;:::i;:::-;21577:2;21572:3;21568:12;21561:19;;21220:366;;;:::o;21592:419::-;21758:4;21796:2;21785:9;21781:18;21773:26;;21845:9;21839:4;21835:20;21831:1;21820:9;21816:17;21809:47;21873:131;21999:4;21873:131;:::i;:::-;21865:139;;21592:419;;;:::o;22017:222::-;22157:34;22153:1;22145:6;22141:14;22134:58;22226:5;22221:2;22213:6;22209:15;22202:30;22017:222;:::o;22245:366::-;22387:3;22408:67;22472:2;22467:3;22408:67;:::i;:::-;22401:74;;22484:93;22573:3;22484:93;:::i;:::-;22602:2;22597:3;22593:12;22586:19;;22245:366;;;:::o;22617:419::-;22783:4;22821:2;22810:9;22806:18;22798:26;;22870:9;22864:4;22860:20;22856:1;22845:9;22841:17;22834:47;22898:131;23024:4;22898:131;:::i;:::-;22890:139;;22617:419;;;:::o;23042:305::-;23082:3;23101:20;23119:1;23101:20;:::i;:::-;23096:25;;23135:20;23153:1;23135:20;:::i;:::-;23130:25;;23289:1;23221:66;23217:74;23214:1;23211:81;23208:107;;;23295:18;;:::i;:::-;23208:107;23339:1;23336;23332:9;23325:16;;23042:305;;;;:::o;23353:222::-;23493:34;23489:1;23481:6;23477:14;23470:58;23562:5;23557:2;23549:6;23545:15;23538:30;23353:222;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:191::-;24418:4;24438:20;24456:1;24438:20;:::i;:::-;24433:25;;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24511:1;24508;24505:8;24502:34;;;24516:18;;:::i;:::-;24502:34;24561:1;24558;24554:9;24546:17;;24378:191;;;;:::o;24575:229::-;24715:34;24711:1;24703:6;24699:14;24692:58;24784:12;24779:2;24771:6;24767:15;24760:37;24575:229;:::o;24810:366::-;24952:3;24973:67;25037:2;25032:3;24973:67;:::i;:::-;24966:74;;25049:93;25138:3;25049:93;:::i;:::-;25167:2;25162:3;25158:12;25151:19;;24810:366;;;:::o;25182:419::-;25348:4;25386:2;25375:9;25371:18;25363:26;;25435:9;25429:4;25425:20;25421:1;25410:9;25406:17;25399:47;25463:131;25589:4;25463:131;:::i;:::-;25455:139;;25182:419;;;:::o;25607:143::-;25664:5;25695:6;25689:13;25680:22;;25711:33;25738:5;25711:33;:::i;:::-;25607:143;;;;:::o;25756:351::-;25826:6;25875:2;25863:9;25854:7;25850:23;25846:32;25843:119;;;25881:79;;:::i;:::-;25843:119;26001:1;26026:64;26082:7;26073:6;26062:9;26058:22;26026:64;:::i;:::-;26016:74;;25972:128;25756:351;;;;:::o;26113:85::-;26158:7;26187:5;26176:16;;26113:85;;;:::o;26204:158::-;26262:9;26295:61;26313:42;26322:32;26348:5;26322:32;:::i;:::-;26313:42;:::i;:::-;26295:61;:::i;:::-;26282:74;;26204:158;;;:::o;26368:147::-;26463:45;26502:5;26463:45;:::i;:::-;26458:3;26451:58;26368:147;;:::o;26521:114::-;26588:6;26622:5;26616:12;26606:22;;26521:114;;;:::o;26641:184::-;26740:11;26774:6;26769:3;26762:19;26814:4;26809:3;26805:14;26790:29;;26641:184;;;;:::o;26831:132::-;26898:4;26921:3;26913:11;;26951:4;26946:3;26942:14;26934:22;;26831:132;;;:::o;26969:108::-;27046:24;27064:5;27046:24;:::i;:::-;27041:3;27034:37;26969:108;;:::o;27083:179::-;27152:10;27173:46;27215:3;27207:6;27173:46;:::i;:::-;27251:4;27246:3;27242:14;27228:28;;27083:179;;;;:::o;27268:113::-;27338:4;27370;27365:3;27361:14;27353:22;;27268:113;;;:::o;27417:732::-;27536:3;27565:54;27613:5;27565:54;:::i;:::-;27635:86;27714:6;27709:3;27635:86;:::i;:::-;27628:93;;27745:56;27795:5;27745:56;:::i;:::-;27824:7;27855:1;27840:284;27865:6;27862:1;27859:13;27840:284;;;27941:6;27935:13;27968:63;28027:3;28012:13;27968:63;:::i;:::-;27961:70;;28054:60;28107:6;28054:60;:::i;:::-;28044:70;;27900:224;27887:1;27884;27880:9;27875:14;;27840:284;;;27844:14;28140:3;28133:10;;27541:608;;;27417:732;;;;:::o;28155:831::-;28418:4;28456:3;28445:9;28441:19;28433:27;;28470:71;28538:1;28527:9;28523:17;28514:6;28470:71;:::i;:::-;28551:80;28627:2;28616:9;28612:18;28603:6;28551:80;:::i;:::-;28678:9;28672:4;28668:20;28663:2;28652:9;28648:18;28641:48;28706:108;28809:4;28800:6;28706:108;:::i;:::-;28698:116;;28824:72;28892:2;28881:9;28877:18;28868:6;28824:72;:::i;:::-;28906:73;28974:3;28963:9;28959:19;28950:6;28906:73;:::i;:::-;28155:831;;;;;;;;:::o;28992:180::-;29040:77;29037:1;29030:88;29137:4;29134:1;29127:15;29161:4;29158:1;29151:15;29178:185;29218:1;29235:20;29253:1;29235:20;:::i;:::-;29230:25;;29269:20;29287:1;29269:20;:::i;:::-;29264:25;;29308:1;29298:35;;29313:18;;:::i;:::-;29298:35;29355:1;29352;29348:9;29343:14;;29178:185;;;;:::o;29369:177::-;29509:29;29505:1;29497:6;29493:14;29486:53;29369:177;:::o;29552:366::-;29694:3;29715:67;29779:2;29774:3;29715:67;:::i;:::-;29708:74;;29791:93;29880:3;29791:93;:::i;:::-;29909:2;29904:3;29900:12;29893:19;;29552:366;;;:::o;29924:419::-;30090:4;30128:2;30117:9;30113:18;30105:26;;30177:9;30171:4;30167:20;30163:1;30152:9;30148:17;30141:47;30205:131;30331:4;30205:131;:::i;:::-;30197:139;;29924:419;;;:::o;30349:348::-;30389:7;30412:20;30430:1;30412:20;:::i;:::-;30407:25;;30446:20;30464:1;30446:20;:::i;:::-;30441:25;;30634:1;30566:66;30562:74;30559:1;30556:81;30551:1;30544:9;30537:17;30533:105;30530:131;;;30641:18;;:::i;:::-;30530:131;30689:1;30686;30682:9;30671:20;;30349:348;;;;:::o;30703:220::-;30843:34;30839:1;30831:6;30827:14;30820:58;30912:3;30907:2;30899:6;30895:15;30888:28;30703:220;:::o;30929:366::-;31071:3;31092:67;31156:2;31151:3;31092:67;:::i;:::-;31085:74;;31168:93;31257:3;31168:93;:::i;:::-;31286:2;31281:3;31277:12;31270:19;;30929:366;;;:::o;31301:419::-;31467:4;31505:2;31494:9;31490:18;31482:26;;31554:9;31548:4;31544:20;31540:1;31529:9;31525:17;31518:47;31582:131;31708:4;31582:131;:::i;:::-;31574:139;;31301:419;;;:::o

Swarm Source

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