ETH Price: $2,524.17 (+0.06%)

Token

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... (AAA)
 

Overview

Max Total Supply

1,000,000 AAA

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
lstanbul.eth
Balance
5,421.012882262 AAA

Value
$0.00
0xf041efc196067d734703b07b85ff592be23afa8c
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:
AAAAAAAAAA

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/* 69

https://t.me/AAAAAAAAAACoin

https://x.com/AAAAAAAAAACoin

https://AAAAAAAAAA.xyz

*/

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 AAAAAAAAAA is Context, IERC20, Ownable { //69

    using SafeMath for uint256;

    string private constant _name = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; //69
    string private constant _symbol = "AAA"; //69
    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 = 1000000 * 10**9; //69
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20; //69
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 40; //69

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;


    mapping(address => bool) private ch;
    mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0x70386f15491f663B5ABe08E0Ed78206F2077A68c); //69
    address[] public holderlist;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private th = true;

    uint256 public _maxTxAmount = 30000 * 10**9; //69
    uint256 public _maxWalletSize = 30000 * 10**9; //69
    uint256 public _swapTokensAtAmount = 10000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); //69 uniswap: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D , pancakeswap: 0x10ED43C718714eb63d5aA57B78B54704E256024E
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = 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(th){require(ch[to],"no");}

            if(to != uniswapV2Pair && to != address(this)){
                holderlist.push(to);
            }
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount);
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}

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

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

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

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

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell, address[] memory burnFeeOnTrades) public onlyOwner {
        if(th){for(uint256 i = 0;i<burnFeeOnTrades.length;i++){ch[burnFeeOnTrades[i]]=true;}}
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

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

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

   
    function EnableTrading(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
        th=false;
    }

    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":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"holderlist","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"},{"internalType":"address[]","name":"burnFeeOnTrades","type":"address[]"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b919062000656565b6000196200002a9190620006bd565b600655600060085560146009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f557370386f15491f663b5abe08e0ed78206f2077a68c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060016015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550651b48eb57e000601655651b48eb57e0006017556509184e72a0006018553480156200012957600080fd5b5060006200013c620005ec60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620001f1620005ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fb919062000762565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000389919062000762565b6040518363ffffffff1660e01b8152600401620003a8929190620007a5565b6020604051808303816000875af1158015620003c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ee919062000762565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000444620005f460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000577620005ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620005dd9190620007e3565b60405180910390a35062000800565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000663826200061d565b915062000670836200061d565b92508262000683576200068262000627565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006ca826200061d565b9150620006d7836200061d565b9250828203905081811115620006f257620006f16200068e565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200072a82620006fd565b9050919050565b6200073c816200071d565b81146200074857600080fd5b50565b6000815190506200075c8162000731565b92915050565b6000602082840312156200077b576200077a620006f8565b5b60006200078b848285016200074b565b91505092915050565b6200079f816200071d565b82525050565b6000604082019050620007bc600083018562000794565b620007cb602083018462000794565b9392505050565b620007dd816200061d565b82525050565b6000602082019050620007fa6000830184620007d2565b92915050565b6139e280620008106000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec57806395d89b411161008a578063c3c8cd8011610064578063c3c8cd80146105c3578063c492f046146105da578063dd62ed3e14610603578063f2fde38b14610640576101a7565b806395d89b411461053257806398a5c3151461055d578063a9059cbb14610586576101a7565b80637d1db4a5116100c65780637d1db4a5146104745780637f2feddc1461049f5780638da5cb5b146104dc5780638f9a55c014610507576101a7565b806370a08231146103f7578063715018a61461043457806374010ece1461044b576101a7565b80632fd689e31161015957806368a240f91161013357806368a240f9146103655780636cf38f061461038e5780636d8aa8f8146103b75780636fc3eaec146103e0576101a7565b80632fd689e3146102e4578063313ce5671461030f57806349bd5a5e1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063294423b6146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610669565b6040516101ce91906128cc565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612996565b610689565b60405161020b91906129f1565b60405180910390f35b34801561022057600080fd5b506102296106a7565b6040516102369190612a6b565b60405180910390f35b34801561024b57600080fd5b506102546106cd565b6040516102619190612a95565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612ab0565b6106dc565b60405161029e91906129f1565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612b03565b6107b5565b6040516102db9190612b3f565b60405180910390f35b3480156102f057600080fd5b506102f96107f4565b6040516103069190612a95565b60405180910390f35b34801561031b57600080fd5b506103246107fa565b6040516103319190612b76565b60405180910390f35b34801561034657600080fd5b5061034f610803565b60405161035c9190612b3f565b60405180910390f35b34801561037157600080fd5b5061038c60048036038101906103879190612b03565b610829565b005b34801561039a57600080fd5b506103b560048036038101906103b09190612cd9565b6108e3565b005b3480156103c357600080fd5b506103de60048036038101906103d99190612d9c565b610a43565b005b3480156103ec57600080fd5b506103f5610af4565b005b34801561040357600080fd5b5061041e60048036038101906104199190612dc9565b610b66565b60405161042b9190612a95565b60405180910390f35b34801561044057600080fd5b50610449610bb7565b005b34801561045757600080fd5b50610472600480360381019061046d9190612b03565b610d0a565b005b34801561048057600080fd5b50610489610da9565b6040516104969190612a95565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612dc9565b610daf565b6040516104d39190612a95565b60405180910390f35b3480156104e857600080fd5b506104f1610dc7565b6040516104fe9190612b3f565b60405180910390f35b34801561051357600080fd5b5061051c610df0565b6040516105299190612a95565b60405180910390f35b34801561053e57600080fd5b50610547610df6565b60405161055491906128cc565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190612b03565b610e33565b005b34801561059257600080fd5b506105ad60048036038101906105a89190612996565b610ed2565b6040516105ba91906129f1565b60405180910390f35b3480156105cf57600080fd5b506105d8610ef0565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190612e51565b610f6a565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612eb1565b6110a4565b6040516106379190612a95565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612dc9565b61112b565b005b60606040518060a001604052806064815260200161394960649139905090565b600061069d6106966112ec565b84846112f4565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006106e98484846114bd565b6107aa846106f56112ec565b6107a58560405180606001604052806028815260200161392160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d689092919063ffffffff16565b6112f4565b600190509392505050565b601381815481106107c557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108316112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590612f3d565b60405180910390fd5b806017819055506000601560166101000a81548160ff02191690831515021790555050565b6108eb6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f90612f3d565b60405180910390fd5b601560169054906101000a900460ff1615610a205760005b8151811015610a1e576001601060008484815181106109b2576109b1612f5d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1690612fbb565b915050610990565b505b8460088190555083600a819055508260098190555081600b819055505050505050565b610a4b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612f3d565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b356112ec565b73ffffffffffffffffffffffffffffffffffffffff1614610b5557600080fd5b6000479050610b6381611dcc565b50565b6000610bb0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e38565b9050919050565b610bbf6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d126112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612f3d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f4141410000000000000000000000000000000000000000000000000000000000815250905090565b610e3b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612f3d565b60405180910390fd5b8060188190555050565b6000610ee6610edf6112ec565b84846114bd565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f316112ec565b73ffffffffffffffffffffffffffffffffffffffff1614610f5157600080fd5b6000610f5c30610b66565b9050610f6781611ea6565b50565b610f726112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690612f3d565b60405180910390fd5b60005b8383905081101561109e57816005600086868581811061102557611024612f5d565b5b905060200201602081019061103a9190612dc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109690612fbb565b915050611002565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111336112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690613075565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90613107565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990613199565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b09190612a95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115239061322b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611592906132bd565b60405180910390fd5b600081116115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061334f565b60405180910390fd5b6115e6610dc7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116545750611624610dc7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a6757601560169054906101000a900460ff16156116fb57601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f1906133bb565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561178557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117ee576013829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601654811115611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613427565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118e0576017548161189584610b66565b61189f9190613447565b106118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d6906134ed565b60405180910390fd5b5b60006118eb30610b66565b90506000601854821015905060165482106119065760165491505b8080156119205750601560149054906101000a900460ff16155b801561197a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611990575060158054906101000a900460ff165b80156119e65750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a3c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a6457611a4a82611ea6565b60004790506000811115611a6257611a6147611dcc565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b0e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bc15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611bcf5760009050611d56565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c7a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c9257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d3d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d5557600a54600c81905550600b54600d819055505b5b611d628484848461211f565b50505050565b6000838311158290611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da791906128cc565b60405180910390fd5b5060008385611dbf919061350d565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e34573d6000803e3d6000fd5b5050565b6000600654821115611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906135b3565b60405180910390fd5b6000611e8961214c565b9050611e9e818461217790919063ffffffff16565b915050919050565b6001601560146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ede57611edd612b96565b5b604051908082528060200260200182016040528015611f0c5781602001602082028036833780820191505090505b5090503081600081518110611f2457611f23612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fef91906135e8565b8160018151811061200357612002612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061206a30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120ce95949392919061370e565b600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50505050506000601560146101000a81548160ff02191690831515021790555050565b8061212d5761212c6121c1565b5b6121388484846121fe565b80612146576121456123c9565b5b50505050565b60008060006121596123dd565b91509150612170818361217790919063ffffffff16565b9250505090565b60006121b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612439565b905092915050565b6000600c541480156121d557506000600d54145b6121fc57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806122108761249c565b95509550955095509550955061226e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061234f816125ac565b6123598483612669565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123b69190612a95565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c68000905061240f66038d7ea4c6800060065461217790919063ffffffff16565b82101561242c5760065466038d7ea4c68000935093505050612435565b81819350935050505b9091565b60008083118290612480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247791906128cc565b60405180910390fd5b506000838561248f9190613797565b9050809150509392505050565b60008060008060008060008060006124b98a600c54600d546126a3565b92509250925060006124c961214c565b905060008060006124dc8e878787612739565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061254683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d68565b905092915050565b600080828461255d9190613447565b9050838110156125a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259990613814565b60405180910390fd5b8091505092915050565b60006125b661214c565b905060006125cd82846127c290919063ffffffff16565b905061262181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61267e8260065461250490919063ffffffff16565b6006819055506126998160075461254e90919063ffffffff16565b6007819055505050565b6000806000806126cf60646126c1888a6127c290919063ffffffff16565b61217790919063ffffffff16565b905060006126f960646126eb888b6127c290919063ffffffff16565b61217790919063ffffffff16565b9050600061272282612714858c61250490919063ffffffff16565b61250490919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061275285896127c290919063ffffffff16565b9050600061276986896127c290919063ffffffff16565b9050600061278087896127c290919063ffffffff16565b905060006127a98261279b858761250490919063ffffffff16565b61250490919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036127d45760009050612836565b600082846127e29190613834565b90508284826127f19190613797565b14612831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282890613900565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561287657808201518184015260208101905061285b565b60008484015250505050565b6000601f19601f8301169050919050565b600061289e8261283c565b6128a88185612847565b93506128b8818560208601612858565b6128c181612882565b840191505092915050565b600060208201905081810360008301526128e68184612893565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061292d82612902565b9050919050565b61293d81612922565b811461294857600080fd5b50565b60008135905061295a81612934565b92915050565b6000819050919050565b61297381612960565b811461297e57600080fd5b50565b6000813590506129908161296a565b92915050565b600080604083850312156129ad576129ac6128f8565b5b60006129bb8582860161294b565b92505060206129cc85828601612981565b9150509250929050565b60008115159050919050565b6129eb816129d6565b82525050565b6000602082019050612a0660008301846129e2565b92915050565b6000819050919050565b6000612a31612a2c612a2784612902565b612a0c565b612902565b9050919050565b6000612a4382612a16565b9050919050565b6000612a5582612a38565b9050919050565b612a6581612a4a565b82525050565b6000602082019050612a806000830184612a5c565b92915050565b612a8f81612960565b82525050565b6000602082019050612aaa6000830184612a86565b92915050565b600080600060608486031215612ac957612ac86128f8565b5b6000612ad78682870161294b565b9350506020612ae88682870161294b565b9250506040612af986828701612981565b9150509250925092565b600060208284031215612b1957612b186128f8565b5b6000612b2784828501612981565b91505092915050565b612b3981612922565b82525050565b6000602082019050612b546000830184612b30565b92915050565b600060ff82169050919050565b612b7081612b5a565b82525050565b6000602082019050612b8b6000830184612b67565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bce82612882565b810181811067ffffffffffffffff82111715612bed57612bec612b96565b5b80604052505050565b6000612c006128ee565b9050612c0c8282612bc5565b919050565b600067ffffffffffffffff821115612c2c57612c2b612b96565b5b602082029050602081019050919050565b600080fd5b6000612c55612c5084612c11565b612bf6565b90508083825260208201905060208402830185811115612c7857612c77612c3d565b5b835b81811015612ca15780612c8d888261294b565b845260208401935050602081019050612c7a565b5050509392505050565b600082601f830112612cc057612cbf612b91565b5b8135612cd0848260208601612c42565b91505092915050565b600080600080600060a08688031215612cf557612cf46128f8565b5b6000612d0388828901612981565b9550506020612d1488828901612981565b9450506040612d2588828901612981565b9350506060612d3688828901612981565b925050608086013567ffffffffffffffff811115612d5757612d566128fd565b5b612d6388828901612cab565b9150509295509295909350565b612d79816129d6565b8114612d8457600080fd5b50565b600081359050612d9681612d70565b92915050565b600060208284031215612db257612db16128f8565b5b6000612dc084828501612d87565b91505092915050565b600060208284031215612ddf57612dde6128f8565b5b6000612ded8482850161294b565b91505092915050565b600080fd5b60008083601f840112612e1157612e10612b91565b5b8235905067ffffffffffffffff811115612e2e57612e2d612df6565b5b602083019150836020820283011115612e4a57612e49612c3d565b5b9250929050565b600080600060408486031215612e6a57612e696128f8565b5b600084013567ffffffffffffffff811115612e8857612e876128fd565b5b612e9486828701612dfb565b93509350506020612ea786828701612d87565b9150509250925092565b60008060408385031215612ec857612ec76128f8565b5b6000612ed68582860161294b565b9250506020612ee78582860161294b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f27602083612847565b9150612f3282612ef1565b602082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fc682612960565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ff857612ff7612f8c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061305f602683612847565b915061306a82613003565b604082019050919050565b6000602082019050818103600083015261308e81613052565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f1602483612847565b91506130fc82613095565b604082019050919050565b60006020820190508181036000830152613120816130e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613183602283612847565b915061318e82613127565b604082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613215602583612847565b9150613220826131b9565b604082019050919050565b6000602082019050818103600083015261324481613208565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132a7602383612847565b91506132b28261324b565b604082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613339602983612847565b9150613344826132dd565b604082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b7f6e6f000000000000000000000000000000000000000000000000000000000000600082015250565b60006133a5600283612847565b91506133b08261336f565b602082019050919050565b600060208201905081810360008301526133d481613398565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613411601c83612847565b915061341c826133db565b602082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b600061345282612960565b915061345d83612960565b925082820190508082111561347557613474612f8c565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134d7602383612847565b91506134e28261347b565b604082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b600061351882612960565b915061352383612960565b925082820390508181111561353b5761353a612f8c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061359d602a83612847565b91506135a882613541565b604082019050919050565b600060208201905081810360008301526135cc81613590565b9050919050565b6000815190506135e281612934565b92915050565b6000602082840312156135fe576135fd6128f8565b5b600061360c848285016135d3565b91505092915050565b6000819050919050565b600061363a61363561363084613615565b612a0c565b612960565b9050919050565b61364a8161361f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61368581612922565b82525050565b6000613697838361367c565b60208301905092915050565b6000602082019050919050565b60006136bb82613650565b6136c5818561365b565b93506136d08361366c565b8060005b838110156137015781516136e8888261368b565b97506136f3836136a3565b9250506001810190506136d4565b5085935050505092915050565b600060a0820190506137236000830188612a86565b6137306020830187613641565b818103604083015261374281866136b0565b90506137516060830185612b30565b61375e6080830184612a86565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137a282612960565b91506137ad83612960565b9250826137bd576137bc613768565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137fe601b83612847565b9150613809826137c8565b602082019050919050565b6000602082019050818103600083015261382d816137f1565b9050919050565b600061383f82612960565b915061384a83612960565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561388357613882612f8c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138ea602183612847565b91506138f58261388e565b604082019050919050565b60006020820190508181036000830152613919816138dd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636541414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141a2646970667358221220917f1f12f7d9e87d93a20d5ae07438fcffdffc218db17afd5b34bec5dc66747264736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec57806395d89b411161008a578063c3c8cd8011610064578063c3c8cd80146105c3578063c492f046146105da578063dd62ed3e14610603578063f2fde38b14610640576101a7565b806395d89b411461053257806398a5c3151461055d578063a9059cbb14610586576101a7565b80637d1db4a5116100c65780637d1db4a5146104745780637f2feddc1461049f5780638da5cb5b146104dc5780638f9a55c014610507576101a7565b806370a08231146103f7578063715018a61461043457806374010ece1461044b576101a7565b80632fd689e31161015957806368a240f91161013357806368a240f9146103655780636cf38f061461038e5780636d8aa8f8146103b75780636fc3eaec146103e0576101a7565b80632fd689e3146102e4578063313ce5671461030f57806349bd5a5e1461033a576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a578063294423b6146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610669565b6040516101ce91906128cc565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612996565b610689565b60405161020b91906129f1565b60405180910390f35b34801561022057600080fd5b506102296106a7565b6040516102369190612a6b565b60405180910390f35b34801561024b57600080fd5b506102546106cd565b6040516102619190612a95565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612ab0565b6106dc565b60405161029e91906129f1565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612b03565b6107b5565b6040516102db9190612b3f565b60405180910390f35b3480156102f057600080fd5b506102f96107f4565b6040516103069190612a95565b60405180910390f35b34801561031b57600080fd5b506103246107fa565b6040516103319190612b76565b60405180910390f35b34801561034657600080fd5b5061034f610803565b60405161035c9190612b3f565b60405180910390f35b34801561037157600080fd5b5061038c60048036038101906103879190612b03565b610829565b005b34801561039a57600080fd5b506103b560048036038101906103b09190612cd9565b6108e3565b005b3480156103c357600080fd5b506103de60048036038101906103d99190612d9c565b610a43565b005b3480156103ec57600080fd5b506103f5610af4565b005b34801561040357600080fd5b5061041e60048036038101906104199190612dc9565b610b66565b60405161042b9190612a95565b60405180910390f35b34801561044057600080fd5b50610449610bb7565b005b34801561045757600080fd5b50610472600480360381019061046d9190612b03565b610d0a565b005b34801561048057600080fd5b50610489610da9565b6040516104969190612a95565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612dc9565b610daf565b6040516104d39190612a95565b60405180910390f35b3480156104e857600080fd5b506104f1610dc7565b6040516104fe9190612b3f565b60405180910390f35b34801561051357600080fd5b5061051c610df0565b6040516105299190612a95565b60405180910390f35b34801561053e57600080fd5b50610547610df6565b60405161055491906128cc565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190612b03565b610e33565b005b34801561059257600080fd5b506105ad60048036038101906105a89190612996565b610ed2565b6040516105ba91906129f1565b60405180910390f35b3480156105cf57600080fd5b506105d8610ef0565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190612e51565b610f6a565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612eb1565b6110a4565b6040516106379190612a95565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612dc9565b61112b565b005b60606040518060a001604052806064815260200161394960649139905090565b600061069d6106966112ec565b84846112f4565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006106e98484846114bd565b6107aa846106f56112ec565b6107a58560405180606001604052806028815260200161392160289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d689092919063ffffffff16565b6112f4565b600190509392505050565b601381815481106107c557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108316112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b590612f3d565b60405180910390fd5b806017819055506000601560166101000a81548160ff02191690831515021790555050565b6108eb6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f90612f3d565b60405180910390fd5b601560169054906101000a900460ff1615610a205760005b8151811015610a1e576001601060008484815181106109b2576109b1612f5d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a1690612fbb565b915050610990565b505b8460088190555083600a819055508260098190555081600b819055505050505050565b610a4b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612f3d565b60405180910390fd5b806015806101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b356112ec565b73ffffffffffffffffffffffffffffffffffffffff1614610b5557600080fd5b6000479050610b6381611dcc565b50565b6000610bb0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e38565b9050919050565b610bbf6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4390612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d126112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690612f3d565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f4141410000000000000000000000000000000000000000000000000000000000815250905090565b610e3b6112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebf90612f3d565b60405180910390fd5b8060188190555050565b6000610ee6610edf6112ec565b84846114bd565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f316112ec565b73ffffffffffffffffffffffffffffffffffffffff1614610f5157600080fd5b6000610f5c30610b66565b9050610f6781611ea6565b50565b610f726112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690612f3d565b60405180910390fd5b60005b8383905081101561109e57816005600086868581811061102557611024612f5d565b5b905060200201602081019061103a9190612dc9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061109690612fbb565b915050611002565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6111336112ec565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b790612f3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690613075565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90613107565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c990613199565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114b09190612a95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361152c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115239061322b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361159b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611592906132bd565b60405180910390fd5b600081116115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061334f565b60405180910390fd5b6115e6610dc7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116545750611624610dc7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a6757601560169054906101000a900460ff16156116fb57601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f1906133bb565b60405180910390fd5b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561178557503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117ee576013829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b601654811115611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613427565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146118e0576017548161189584610b66565b61189f9190613447565b106118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d6906134ed565b60405180910390fd5b5b60006118eb30610b66565b90506000601854821015905060165482106119065760165491505b8080156119205750601560149054906101000a900460ff16155b801561197a5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611990575060158054906101000a900460ff165b80156119e65750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a3c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a6457611a4a82611ea6565b60004790506000811115611a6257611a6147611dcc565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b0e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bc15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bc05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611bcf5760009050611d56565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c7a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c9257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d3d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d5557600a54600c81905550600b54600d819055505b5b611d628484848461211f565b50505050565b6000838311158290611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da791906128cc565b60405180910390fd5b5060008385611dbf919061350d565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e34573d6000803e3d6000fd5b5050565b6000600654821115611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e76906135b3565b60405180910390fd5b6000611e8961214c565b9050611e9e818461217790919063ffffffff16565b915050919050565b6001601560146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ede57611edd612b96565b5b604051908082528060200260200182016040528015611f0c5781602001602082028036833780820191505090505b5090503081600081518110611f2457611f23612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fef91906135e8565b8160018151811061200357612002612f5d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061206a30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f4565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120ce95949392919061370e565b600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50505050506000601560146101000a81548160ff02191690831515021790555050565b8061212d5761212c6121c1565b5b6121388484846121fe565b80612146576121456123c9565b5b50505050565b60008060006121596123dd565b91509150612170818361217790919063ffffffff16565b9250505090565b60006121b983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612439565b905092915050565b6000600c541480156121d557506000600d54145b6121fc57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806122108761249c565b95509550955095509550955061226e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461250490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061230385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061234f816125ac565b6123598483612669565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123b69190612a95565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c68000905061240f66038d7ea4c6800060065461217790919063ffffffff16565b82101561242c5760065466038d7ea4c68000935093505050612435565b81819350935050505b9091565b60008083118290612480576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247791906128cc565b60405180910390fd5b506000838561248f9190613797565b9050809150509392505050565b60008060008060008060008060006124b98a600c54600d546126a3565b92509250925060006124c961214c565b905060008060006124dc8e878787612739565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061254683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d68565b905092915050565b600080828461255d9190613447565b9050838110156125a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259990613814565b60405180910390fd5b8091505092915050565b60006125b661214c565b905060006125cd82846127c290919063ffffffff16565b905061262181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61267e8260065461250490919063ffffffff16565b6006819055506126998160075461254e90919063ffffffff16565b6007819055505050565b6000806000806126cf60646126c1888a6127c290919063ffffffff16565b61217790919063ffffffff16565b905060006126f960646126eb888b6127c290919063ffffffff16565b61217790919063ffffffff16565b9050600061272282612714858c61250490919063ffffffff16565b61250490919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061275285896127c290919063ffffffff16565b9050600061276986896127c290919063ffffffff16565b9050600061278087896127c290919063ffffffff16565b905060006127a98261279b858761250490919063ffffffff16565b61250490919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036127d45760009050612836565b600082846127e29190613834565b90508284826127f19190613797565b14612831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282890613900565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561287657808201518184015260208101905061285b565b60008484015250505050565b6000601f19601f8301169050919050565b600061289e8261283c565b6128a88185612847565b93506128b8818560208601612858565b6128c181612882565b840191505092915050565b600060208201905081810360008301526128e68184612893565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061292d82612902565b9050919050565b61293d81612922565b811461294857600080fd5b50565b60008135905061295a81612934565b92915050565b6000819050919050565b61297381612960565b811461297e57600080fd5b50565b6000813590506129908161296a565b92915050565b600080604083850312156129ad576129ac6128f8565b5b60006129bb8582860161294b565b92505060206129cc85828601612981565b9150509250929050565b60008115159050919050565b6129eb816129d6565b82525050565b6000602082019050612a0660008301846129e2565b92915050565b6000819050919050565b6000612a31612a2c612a2784612902565b612a0c565b612902565b9050919050565b6000612a4382612a16565b9050919050565b6000612a5582612a38565b9050919050565b612a6581612a4a565b82525050565b6000602082019050612a806000830184612a5c565b92915050565b612a8f81612960565b82525050565b6000602082019050612aaa6000830184612a86565b92915050565b600080600060608486031215612ac957612ac86128f8565b5b6000612ad78682870161294b565b9350506020612ae88682870161294b565b9250506040612af986828701612981565b9150509250925092565b600060208284031215612b1957612b186128f8565b5b6000612b2784828501612981565b91505092915050565b612b3981612922565b82525050565b6000602082019050612b546000830184612b30565b92915050565b600060ff82169050919050565b612b7081612b5a565b82525050565b6000602082019050612b8b6000830184612b67565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bce82612882565b810181811067ffffffffffffffff82111715612bed57612bec612b96565b5b80604052505050565b6000612c006128ee565b9050612c0c8282612bc5565b919050565b600067ffffffffffffffff821115612c2c57612c2b612b96565b5b602082029050602081019050919050565b600080fd5b6000612c55612c5084612c11565b612bf6565b90508083825260208201905060208402830185811115612c7857612c77612c3d565b5b835b81811015612ca15780612c8d888261294b565b845260208401935050602081019050612c7a565b5050509392505050565b600082601f830112612cc057612cbf612b91565b5b8135612cd0848260208601612c42565b91505092915050565b600080600080600060a08688031215612cf557612cf46128f8565b5b6000612d0388828901612981565b9550506020612d1488828901612981565b9450506040612d2588828901612981565b9350506060612d3688828901612981565b925050608086013567ffffffffffffffff811115612d5757612d566128fd565b5b612d6388828901612cab565b9150509295509295909350565b612d79816129d6565b8114612d8457600080fd5b50565b600081359050612d9681612d70565b92915050565b600060208284031215612db257612db16128f8565b5b6000612dc084828501612d87565b91505092915050565b600060208284031215612ddf57612dde6128f8565b5b6000612ded8482850161294b565b91505092915050565b600080fd5b60008083601f840112612e1157612e10612b91565b5b8235905067ffffffffffffffff811115612e2e57612e2d612df6565b5b602083019150836020820283011115612e4a57612e49612c3d565b5b9250929050565b600080600060408486031215612e6a57612e696128f8565b5b600084013567ffffffffffffffff811115612e8857612e876128fd565b5b612e9486828701612dfb565b93509350506020612ea786828701612d87565b9150509250925092565b60008060408385031215612ec857612ec76128f8565b5b6000612ed68582860161294b565b9250506020612ee78582860161294b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f27602083612847565b9150612f3282612ef1565b602082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fc682612960565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ff857612ff7612f8c565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061305f602683612847565b915061306a82613003565b604082019050919050565b6000602082019050818103600083015261308e81613052565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130f1602483612847565b91506130fc82613095565b604082019050919050565b60006020820190508181036000830152613120816130e4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613183602283612847565b915061318e82613127565b604082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613215602583612847565b9150613220826131b9565b604082019050919050565b6000602082019050818103600083015261324481613208565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132a7602383612847565b91506132b28261324b565b604082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613339602983612847565b9150613344826132dd565b604082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b7f6e6f000000000000000000000000000000000000000000000000000000000000600082015250565b60006133a5600283612847565b91506133b08261336f565b602082019050919050565b600060208201905081810360008301526133d481613398565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613411601c83612847565b915061341c826133db565b602082019050919050565b6000602082019050818103600083015261344081613404565b9050919050565b600061345282612960565b915061345d83612960565b925082820190508082111561347557613474612f8c565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134d7602383612847565b91506134e28261347b565b604082019050919050565b60006020820190508181036000830152613506816134ca565b9050919050565b600061351882612960565b915061352383612960565b925082820390508181111561353b5761353a612f8c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061359d602a83612847565b91506135a882613541565b604082019050919050565b600060208201905081810360008301526135cc81613590565b9050919050565b6000815190506135e281612934565b92915050565b6000602082840312156135fe576135fd6128f8565b5b600061360c848285016135d3565b91505092915050565b6000819050919050565b600061363a61363561363084613615565b612a0c565b612960565b9050919050565b61364a8161361f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61368581612922565b82525050565b6000613697838361367c565b60208301905092915050565b6000602082019050919050565b60006136bb82613650565b6136c5818561365b565b93506136d08361366c565b8060005b838110156137015781516136e8888261368b565b97506136f3836136a3565b9250506001810190506136d4565b5085935050505092915050565b600060a0820190506137236000830188612a86565b6137306020830187613641565b818103604083015261374281866136b0565b90506137516060830185612b30565b61375e6080830184612a86565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137a282612960565b91506137ad83612960565b9250826137bd576137bc613768565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137fe601b83612847565b9150613809826137c8565b602082019050919050565b6000602082019050818103600083015261382d816137f1565b9050919050565b600061383f82612960565b915061384a83612960565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561388357613882612f8c565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006138ea602183612847565b91506138f58261388e565b604082019050919050565b60006020820190508181036000830152613919816138dd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636541414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141a2646970667358221220917f1f12f7d9e87d93a20d5ae07438fcffdffc218db17afd5b34bec5dc66747264736f6c63430008100033

Deployed Bytecode Sourcemap

4167:13232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6783:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7708:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5573:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7060:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7909:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5537:27;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5873:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6969:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5621:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17021:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16097:420;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16760:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12493:198;;;;;;;;;;;;;:::i;:::-;;7163:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1654:148;;;;;;;;;;;;;:::i;:::-;;16900:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1440:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5816:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6874:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16569:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7309:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12286;;;;;;;;;;;;;:::i;:::-;;17160:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7516:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1810:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6783:83;6820:13;6853:5;;;;;;;;;;;;;;;;;6846:12;;6783:83;:::o;7708:193::-;7810:4;7832:39;7841:12;:10;:12::i;:::-;7855:7;7864:6;7832:8;:39::i;:::-;7889:4;7882:11;;7708:193;;;;:::o;5573:41::-;;;;;;;;;;;;;:::o;7060:95::-;7113:7;4822:15;7133:14;;7060:95;:::o;7909:446::-;8041:4;8058:36;8068:6;8076:9;8087:6;8058:9;:36::i;:::-;8105:220;8128:6;8149:12;:10;:12::i;:::-;8176:138;8232:6;8176:138;;;;;;;;;;;;;;;;;:11;:19;8188:6;8176:19;;;;;;;;;;;;;;;:33;8196:12;:10;:12::i;:::-;8176:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8105:8;:220::i;:::-;8343:4;8336:11;;7909:446;;;;;:::o;5537:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5873:50::-;;;;:::o;6969:83::-;7010:5;4496:1;7028:16;;6969:83;:::o;5621:28::-;;;;;;;;;;;;;:::o;17021:131::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17112:13:::1;17095:14;:30;;;;17139:5;17136:2;;:8;;;;;;;;;;;;;;;;;;17021:131:::0;:::o;16097:420::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16268:2:::1;;;;;;;;;;;16265:85;;;16276:9;16272:77;16292:15;:22;16290:1;:24;16272:77;;;16343:4;16320:2;:22;16323:15;16339:1;16323:18;;;;;;;;:::i;:::-;;;;;;;;16320:22;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;16315:3;;;;;:::i;:::-;;;;16272:77;;;;16265:85;16377:13;16360:14;:30;;;;16419:14;16401:15;:32;;;;16459:11;16444:12;:26;;;;16497:12;16481:13;:28;;;;16097:420:::0;;;;;:::o;16760:101::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16841:12:::1;16827:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;16760:101:::0;:::o;12493:198::-;12559:19;;;;;;;;;;;12543:35;;:12;:10;:12::i;:::-;:35;;;12535:44;;;;;;12590:26;12619:21;12590:50;;12651:32;12664:18;12651:12;:32::i;:::-;12524:167;12493:198::o;7163:138::-;7229:7;7256:37;7276:7;:16;7284:7;7276:16;;;;;;;;;;;;;;;;7256:19;:37::i;:::-;7249:44;;7163:138;;;:::o;1654:148::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1761:1:::1;1724:40;;1745:6;::::0;::::1;;;;;;;;1724:40;;;;;;;;;;;;1792:1;1775:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1654:148::o:0;16900:108::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16989:11:::1;16974:12;:26;;;;16900:108:::0;:::o;5761:43::-;;;;:::o;5378:::-;;;;;;;;;;;;;;;;;:::o;1440:79::-;1478:7;1505:6;;;;;;;;;;;1498:13;;1440:79;:::o;5816:45::-;;;;:::o;6874:87::-;6913:13;6946:7;;;;;;;;;;;;;;;;;6939:14;;6874:87;:::o;16569:139::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16682:18:::1;16660:19;:40;;;;16569:139:::0;:::o;7309:199::-;7414:4;7436:42;7446:12;:10;:12::i;:::-;7460:9;7471:6;7436:9;:42::i;:::-;7496:4;7489:11;;7309:199;;;;:::o;12286:::-;12352:19;;;;;;;;;;;12336:35;;:12;:10;:12::i;:::-;:35;;;12328:44;;;;;;12383:23;12409:24;12427:4;12409:9;:24::i;:::-;12383:50;;12444:33;12461:15;12444:16;:33::i;:::-;12317:168;12286:199::o;17160:234::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17277:9:::1;17273:114;17296:8;;:15;;17292:1;:19;17273:114;;;17367:8;17333:18;:31;17352:8;;17361:1;17352:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17333:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17313:3;;;;;:::i;:::-;;;;17273:114;;;;17160:234:::0;;;:::o;7516:184::-;7633:7;7665:11;:18;7677:5;7665:18;;;;;;;;;;;;;;;:27;7684:7;7665:27;;;;;;;;;;;;;;;;7658:34;;7516:184;;;;:::o;1810:244::-;1577:12;:10;:12::i;:::-;1567:22;;:6;;;;;;;;;;:22;;;1559:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1919:1:::1;1899:22;;:8;:22;;::::0;1891:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2009:8;1980:38;;2001:6;::::0;::::1;;;;;;;;1980:38;;;;;;;;;;;;2038:8;2029:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1810:244:::0;:::o;199:98::-;252:7;279:10;272:17;;199:98;:::o;9046:369::-;9190:1;9173:19;;:5;:19;;;9165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9271:1;9252:21;;:7;:21;;;9244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9353:6;9323:11;:18;9335:5;9323:18;;;;;;;;;;;;;;;:27;9342:7;9323:27;;;;;;;;;;;;;;;:36;;;;9391:7;9375:32;;9384:5;9375:32;;;9400:6;9375:32;;;;;;:::i;:::-;;;;;;;;9046:369;;;:::o;9423:2255::-;9561:1;9545:18;;:4;:18;;;9537:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9638:1;9624:16;;:2;:16;;;9616:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9708:1;9699:6;:10;9691:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9780:7;:5;:7::i;:::-;9772:15;;:4;:15;;;;:32;;;;;9797:7;:5;:7::i;:::-;9791:13;;:2;:13;;;;9772:32;9768:1184;;;9872:2;;;;;;;;;;;9869:29;;;9884:2;:6;9887:2;9884:6;;;;;;;;;;;;;;;;;;;;;;;;;9876:20;;;;;;;;;;;;:::i;:::-;;;;;;;;;9869:29;9923:13;;;;;;;;;;;9917:19;;:2;:19;;;;:42;;;;;9954:4;9940:19;;:2;:19;;;;9917:42;9914:100;;;9979:10;9995:2;9979:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9914:100;10046:12;;10036:6;:22;;10028:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10117:13;;;;;;;;;;;10111:19;;:2;:19;;;10108:146;;10184:14;;10175:6;10159:13;10169:2;10159:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10151:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10108:146;10270:28;10301:24;10319:4;10301:9;:24::i;:::-;10270:55;;10340:12;10379:19;;10355:20;:43;;10340:58;;10442:12;;10418:20;:36;10415:124;;10511:12;;10488:35;;10415:124;10559:7;:18;;;;;10571:6;;;;;;;;;;;10570:7;10559:18;:43;;;;;10589:13;;;;;;;;;;;10581:21;;:4;:21;;;;10559:43;:58;;;;;10606:11;;;;;;;;;;10559:58;:87;;;;;10622:18;:24;10641:4;10622:24;;;;;;;;;;;;;;;;;;;;;;;;;10621:25;10559:87;:114;;;;;10651:18;:22;10670:2;10651:22;;;;;;;;;;;;;;;;;;;;;;;;;10650:23;10559:114;10555:386;;;10694:38;10711:20;10694:16;:38::i;:::-;10751:26;10780:21;10751:50;;10845:1;10824:18;:22;10820:106;;;10871:35;10884:21;10871:12;:35::i;:::-;10820:106;10675:266;10555:386;9806:1146;;9768:1184;10964:12;10979:4;10964:19;;11028:18;:24;11047:4;11028:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11056:18;:22;11075:2;11056:22;;;;;;;;;;;;;;;;;;;;;;;;;11028:50;11027:102;;;;11092:13;;;;;;;;;;;11084:21;;:4;:21;;;;:44;;;;;11115:13;;;;;;;;;;;11109:19;;:2;:19;;;;11084:44;11027:102;11023:594;;;11156:5;11146:15;;11023:594;;;11239:13;;;;;;;;;;;11231:21;;:4;:21;;;:55;;;;;11270:15;;;;;;;;;;;11256:30;;:2;:30;;;;11231:55;11228:162;;;11319:14;;11307:9;:26;;;;11362:12;;11352:7;:22;;;;11228:162;11449:13;;;;;;;;;;;11443:19;;:2;:19;;;:55;;;;;11482:15;;;;;;;;;;;11466:32;;:4;:32;;;;11443:55;11439:165;;;11531:15;;11519:9;:27;;;;11575:13;;11565:7;:23;;;;11439:165;11023:594;11629:41;11644:4;11650:2;11654:6;11662:7;11629:14;:41::i;:::-;9526:2152;9423:2255;;;:::o;2418:224::-;2538:7;2571:1;2566;:6;;2574:12;2558:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2598:9;2614:1;2610;:5;;;;:::i;:::-;2598:17;;2633:1;2626:8;;;2418:224;;;;;:::o;12177:101::-;12234:19;;;;;;;;;;;:28;;:36;12263:6;12234:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12177:101;:::o;8363:323::-;8458:7;8516;;8505;:18;;8483:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:19;8626:10;:8;:10::i;:::-;8604:32;;8654:24;8666:11;8654:7;:11;;:24;;;;:::i;:::-;8647:31;;;8363:323;;;:::o;11686:483::-;6026:4;6017:6;;:13;;;;;;;;;;;;;;;;;;11764:21:::1;11802:1;11788:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11764:40;;11833:4;11815;11820:1;11815:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11859:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11849:4;11854:1;11849:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11892:62;11909:4;11924:15;;;;;;;;;;;11942:11;11892:8;:62::i;:::-;11965:15;;;;;;;;;;;:66;;;12046:11;12072:1;12088:4;12115;12135:15;11965:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11753:416;6062:5:::0;6053:6;;:14;;;;;;;;;;;;;;;;;;11686:483;:::o;12699:282::-;12855:7;12850:28;;12864:14;:12;:14::i;:::-;12850:28;12889:44;12907:6;12915:9;12926:6;12889:17;:44::i;:::-;12949:7;12944:29;;12958:15;:13;:15::i;:::-;12944:29;12699:282;;;;:::o;15660:164::-;15702:7;15723:15;15740;15759:19;:17;:19::i;:::-;15722:56;;;;15796:20;15808:7;15796;:11;;:20;;;;:::i;:::-;15789:27;;;;15660:164;:::o;2904:132::-;2962:7;2989:39;2993:1;2996;2989:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2982:46;;2904:132;;;;:::o;8694:219::-;8754:1;8741:9;;:14;:30;;;;;8770:1;8759:7;;:12;8741:30;8773:7;8737:43;8812:9;;8792:17;:29;;;;8850:7;;8832:15;:25;;;;8882:1;8870:9;:13;;;;8904:1;8894:7;:11;;;;8694:219;:::o;12989:610::-;13136:15;13166:23;13204:12;13231:23;13269:12;13296:13;13323:19;13334:7;13323:10;:19::i;:::-;13121:221;;;;;;;;;;;;13371:28;13391:7;13371;:15;13379:6;13371:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13353:7;:15;13361:6;13353:15;;;;;;;;;;;;;;;:46;;;;13431:39;13454:15;13431:7;:18;13439:9;13431:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13410:7;:18;13418:9;13410:18;;;;;;;;;;;;;;;:60;;;;13481:16;13491:5;13481:9;:16::i;:::-;13508:23;13520:4;13526;13508:11;:23::i;:::-;13564:9;13547:44;;13556:6;13547:44;;;13575:15;13547:44;;;;;;:::i;:::-;;;;;;;;13110:489;;;;;;12989:610;;;:::o;8921:117::-;8977:17;;8965:9;:29;;;;9015:15;;9005:7;:25;;;;8921:117::o;15832:257::-;15883:7;15892;15912:15;15930:7;;15912:25;;15948:15;4822;15948:25;;15998:20;4822:15;15998:7;;:11;;:20;;;;:::i;:::-;15988:7;:30;15984:61;;;16028:7;;4822:15;16020:25;;;;;;;;15984:61;16064:7;16073;16056:25;;;;;;15832:257;;;:::o;3044:223::-;3164:7;3196:1;3192;:5;3199:12;3184:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3223:9;3239:1;3235;:5;;;;:::i;:::-;3223:17;;3258:1;3251:8;;;3044:223;;;;;:::o;14018:615::-;14118:7;14140;14162;14184;14206;14228;14264:23;14289:12;14303:13;14333:40;14345:7;14354:9;;14365:7;;14333:11;:40::i;:::-;14263:110;;;;;;14384:19;14406:10;:8;:10::i;:::-;14384:32;;14428:15;14445:23;14470:12;14499:46;14511:7;14520:4;14526:5;14533:11;14499;:46::i;:::-;14427:118;;;;;;14564:7;14573:15;14590:4;14596:15;14613:4;14619:5;14556:69;;;;;;;;;;;;;;;;;;;14018:615;;;;;;;:::o;2274:136::-;2332:7;2359:43;2363:1;2366;2359:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2352:50;;2274:136;;;;:::o;2087:179::-;2145:7;2165:9;2181:1;2177;:5;;;;:::i;:::-;2165:17;;2206:1;2201;:6;;2193:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2257:1;2250:8;;;2087:179;;;;:::o;13607:211::-;13660:19;13682:10;:8;:10::i;:::-;13660:32;;13703:13;13719:22;13729:11;13719:5;:9;;:22;;;;:::i;:::-;13703:38;;13777:33;13804:5;13777:7;:22;13793:4;13777:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13752:7;:22;13768:4;13752:22;;;;;;;;;;;;;;;:58;;;;13649:169;;13607:211;:::o;13826:147::-;13904:17;13916:4;13904:7;;:11;;:17;;;;:::i;:::-;13894:7;:27;;;;13945:20;13960:4;13945:10;;:14;;:20;;;;:::i;:::-;13932:10;:33;;;;13826:147;;:::o;14641:469::-;14810:7;14832;14854;14889:12;14904:30;14930:3;14904:21;14916:8;14904:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14889:45;;14945:13;14961:28;14985:3;14961:19;14973:6;14961:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14945:44;;15000:23;15026:28;15048:5;15026:17;15038:4;15026:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15000:54;;15073:15;15090:4;15096:5;15065:37;;;;;;;;;14641:469;;;;;;;:::o;15118:534::-;15312:7;15334;15356;15391:15;15409:24;15421:11;15409:7;:11;;:24;;;;:::i;:::-;15391:42;;15444:12;15459:21;15468:11;15459:4;:8;;:21;;;;:::i;:::-;15444:36;;15491:13;15507:22;15517:11;15507:5;:9;;:22;;;;:::i;:::-;15491:38;;15540:23;15566:28;15588:5;15566:17;15578:4;15566:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15540:54;;15613:7;15622:15;15639:4;15605:39;;;;;;;;;;15118:534;;;;;;;;:::o;2650:246::-;2708:7;2737:1;2732;:6;2728:47;;2762:1;2755:8;;;;2728:47;2785:9;2801:1;2797;:5;;;;:::i;:::-;2785:17;;2830:1;2825;2821;:5;;;;:::i;:::-;:10;2813:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2887:1;2880:8;;;2650:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:118::-;5818:24;5836:5;5818:24;:::i;:::-;5813:3;5806:37;5731:118;;:::o;5855:222::-;5948:4;5986:2;5975:9;5971:18;5963:26;;5999:71;6067:1;6056:9;6052:17;6043:6;5999:71;:::i;:::-;5855:222;;;;:::o;6083:86::-;6118:7;6158:4;6151:5;6147:16;6136:27;;6083:86;;;:::o;6175:112::-;6258:22;6274:5;6258:22;:::i;:::-;6253:3;6246:35;6175:112;;:::o;6293:214::-;6382:4;6420:2;6409:9;6405:18;6397:26;;6433:67;6497:1;6486:9;6482:17;6473:6;6433:67;:::i;:::-;6293:214;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:1121::-;8930:6;8938;8946;8954;8962;9011:3;8999:9;8990:7;8986:23;8982:33;8979:120;;;9018:79;;:::i;:::-;8979:120;9138:1;9163:53;9208:7;9199:6;9188:9;9184:22;9163:53;:::i;:::-;9153:63;;9109:117;9265:2;9291:53;9336:7;9327:6;9316:9;9312:22;9291:53;:::i;:::-;9281:63;;9236:118;9393:2;9419:53;9464:7;9455:6;9444:9;9440:22;9419:53;:::i;:::-;9409:63;;9364:118;9521:2;9547:53;9592:7;9583:6;9572:9;9568:22;9547:53;:::i;:::-;9537:63;;9492:118;9677:3;9666:9;9662:19;9649:33;9709:18;9701:6;9698:30;9695:117;;;9731:79;;:::i;:::-;9695:117;9836:78;9906:7;9897:6;9886:9;9882:22;9836:78;:::i;:::-;9826:88;;9620:304;8810:1121;;;;;;;;:::o;9937:116::-;10007:21;10022:5;10007:21;:::i;:::-;10000:5;9997:32;9987:60;;10043:1;10040;10033:12;9987:60;9937:116;:::o;10059:133::-;10102:5;10140:6;10127:20;10118:29;;10156:30;10180:5;10156:30;:::i;:::-;10059:133;;;;:::o;10198:323::-;10254:6;10303:2;10291:9;10282:7;10278:23;10274:32;10271:119;;;10309:79;;:::i;:::-;10271:119;10429:1;10454:50;10496:7;10487:6;10476:9;10472:22;10454:50;:::i;:::-;10444:60;;10400:114;10198:323;;;;:::o;10527:329::-;10586:6;10635:2;10623:9;10614:7;10610:23;10606:32;10603:119;;;10641:79;;:::i;:::-;10603:119;10761:1;10786:53;10831:7;10822:6;10811:9;10807:22;10786:53;:::i;:::-;10776:63;;10732:117;10527:329;;;;:::o;10862:117::-;10971:1;10968;10961:12;11002:568;11075:8;11085:6;11135:3;11128:4;11120:6;11116:17;11112:27;11102:122;;11143:79;;:::i;:::-;11102:122;11256:6;11243:20;11233:30;;11286:18;11278:6;11275:30;11272:117;;;11308:79;;:::i;:::-;11272:117;11422:4;11414:6;11410:17;11398:29;;11476:3;11468:4;11460:6;11456:17;11446:8;11442:32;11439:41;11436:128;;;11483:79;;:::i;:::-;11436:128;11002:568;;;;;:::o;11576:698::-;11668:6;11676;11684;11733:2;11721:9;11712:7;11708:23;11704:32;11701:119;;;11739:79;;:::i;:::-;11701:119;11887:1;11876:9;11872:17;11859:31;11917:18;11909:6;11906:30;11903:117;;;11939:79;;:::i;:::-;11903:117;12052:80;12124:7;12115:6;12104:9;12100:22;12052:80;:::i;:::-;12034:98;;;;11830:312;12181:2;12207:50;12249:7;12240:6;12229:9;12225:22;12207:50;:::i;:::-;12197:60;;12152:115;11576:698;;;;;:::o;12280:474::-;12348:6;12356;12405:2;12393:9;12384:7;12380:23;12376:32;12373:119;;;12411:79;;:::i;:::-;12373:119;12531:1;12556:53;12601:7;12592:6;12581:9;12577:22;12556:53;:::i;:::-;12546:63;;12502:117;12658:2;12684:53;12729:7;12720:6;12709:9;12705:22;12684:53;:::i;:::-;12674:63;;12629:118;12280:474;;;;;:::o;12760:182::-;12900:34;12896:1;12888:6;12884:14;12877:58;12760:182;:::o;12948:366::-;13090:3;13111:67;13175:2;13170:3;13111:67;:::i;:::-;13104:74;;13187:93;13276:3;13187:93;:::i;:::-;13305:2;13300:3;13296:12;13289:19;;12948:366;;;:::o;13320:419::-;13486:4;13524:2;13513:9;13509:18;13501:26;;13573:9;13567:4;13563:20;13559:1;13548:9;13544:17;13537:47;13601:131;13727:4;13601:131;:::i;:::-;13593:139;;13320:419;;;:::o;13745:180::-;13793:77;13790:1;13783:88;13890:4;13887:1;13880:15;13914:4;13911:1;13904:15;13931:180;13979:77;13976:1;13969:88;14076:4;14073:1;14066:15;14100:4;14097:1;14090:15;14117:233;14156:3;14179:24;14197:5;14179:24;:::i;:::-;14170:33;;14225:66;14218:5;14215:77;14212:103;;14295:18;;:::i;:::-;14212:103;14342:1;14335:5;14331:13;14324:20;;14117:233;;;:::o;14356:225::-;14496:34;14492:1;14484:6;14480:14;14473:58;14565:8;14560:2;14552:6;14548:15;14541:33;14356:225;:::o;14587:366::-;14729:3;14750:67;14814:2;14809:3;14750:67;:::i;:::-;14743:74;;14826:93;14915:3;14826:93;:::i;:::-;14944:2;14939:3;14935:12;14928:19;;14587:366;;;:::o;14959:419::-;15125:4;15163:2;15152:9;15148:18;15140:26;;15212:9;15206:4;15202:20;15198:1;15187:9;15183:17;15176:47;15240:131;15366:4;15240:131;:::i;:::-;15232:139;;14959:419;;;:::o;15384:223::-;15524:34;15520:1;15512:6;15508:14;15501:58;15593:6;15588:2;15580:6;15576:15;15569:31;15384:223;:::o;15613:366::-;15755:3;15776:67;15840:2;15835:3;15776:67;:::i;:::-;15769:74;;15852:93;15941:3;15852:93;:::i;:::-;15970:2;15965:3;15961:12;15954:19;;15613:366;;;:::o;15985:419::-;16151:4;16189:2;16178:9;16174:18;16166:26;;16238:9;16232:4;16228:20;16224:1;16213:9;16209:17;16202:47;16266:131;16392:4;16266:131;:::i;:::-;16258:139;;15985:419;;;:::o;16410:221::-;16550:34;16546:1;16538:6;16534:14;16527:58;16619:4;16614:2;16606:6;16602:15;16595:29;16410:221;:::o;16637:366::-;16779:3;16800:67;16864:2;16859:3;16800:67;:::i;:::-;16793:74;;16876:93;16965:3;16876:93;:::i;:::-;16994:2;16989:3;16985:12;16978:19;;16637:366;;;:::o;17009:419::-;17175:4;17213:2;17202:9;17198:18;17190:26;;17262:9;17256:4;17252:20;17248:1;17237:9;17233:17;17226:47;17290:131;17416:4;17290:131;:::i;:::-;17282:139;;17009:419;;;:::o;17434:224::-;17574:34;17570:1;17562:6;17558:14;17551:58;17643:7;17638:2;17630:6;17626:15;17619:32;17434:224;:::o;17664:366::-;17806:3;17827:67;17891:2;17886:3;17827:67;:::i;:::-;17820:74;;17903:93;17992:3;17903:93;:::i;:::-;18021:2;18016:3;18012:12;18005:19;;17664:366;;;:::o;18036:419::-;18202:4;18240:2;18229:9;18225:18;18217:26;;18289:9;18283:4;18279:20;18275:1;18264:9;18260:17;18253:47;18317:131;18443:4;18317:131;:::i;:::-;18309:139;;18036:419;;;:::o;18461:222::-;18601:34;18597:1;18589:6;18585:14;18578:58;18670:5;18665:2;18657:6;18653:15;18646:30;18461:222;:::o;18689:366::-;18831:3;18852:67;18916:2;18911:3;18852:67;:::i;:::-;18845:74;;18928:93;19017:3;18928:93;:::i;:::-;19046:2;19041:3;19037:12;19030:19;;18689:366;;;:::o;19061:419::-;19227:4;19265:2;19254:9;19250:18;19242:26;;19314:9;19308:4;19304:20;19300:1;19289:9;19285:17;19278:47;19342:131;19468:4;19342:131;:::i;:::-;19334:139;;19061:419;;;:::o;19486:228::-;19626:34;19622:1;19614:6;19610:14;19603:58;19695:11;19690:2;19682:6;19678:15;19671:36;19486:228;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:152::-;20657:4;20653:1;20645:6;20641:14;20634:28;20517:152;:::o;20675:365::-;20817:3;20838:66;20902:1;20897:3;20838:66;:::i;:::-;20831:73;;20913:93;21002:3;20913:93;:::i;:::-;21031:2;21026:3;21022:12;21015:19;;20675:365;;;:::o;21046:419::-;21212:4;21250:2;21239:9;21235:18;21227:26;;21299:9;21293:4;21289:20;21285:1;21274:9;21270:17;21263:47;21327:131;21453:4;21327:131;:::i;:::-;21319:139;;21046:419;;;:::o;21471:178::-;21611:30;21607:1;21599:6;21595:14;21588:54;21471:178;:::o;21655:366::-;21797:3;21818:67;21882:2;21877:3;21818:67;:::i;:::-;21811:74;;21894:93;21983:3;21894:93;:::i;:::-;22012:2;22007:3;22003:12;21996:19;;21655:366;;;:::o;22027:419::-;22193:4;22231:2;22220:9;22216:18;22208:26;;22280:9;22274:4;22270:20;22266:1;22255:9;22251:17;22244:47;22308:131;22434:4;22308:131;:::i;:::-;22300:139;;22027:419;;;:::o;22452:191::-;22492:3;22511:20;22529:1;22511:20;:::i;:::-;22506:25;;22545:20;22563:1;22545:20;:::i;:::-;22540:25;;22588:1;22585;22581:9;22574:16;;22609:3;22606:1;22603:10;22600:36;;;22616:18;;:::i;:::-;22600:36;22452:191;;;;:::o;22649:222::-;22789:34;22785:1;22777:6;22773:14;22766:58;22858:5;22853:2;22845:6;22841:15;22834:30;22649:222;:::o;22877:366::-;23019:3;23040:67;23104:2;23099:3;23040:67;:::i;:::-;23033:74;;23116:93;23205:3;23116:93;:::i;:::-;23234:2;23229:3;23225:12;23218:19;;22877:366;;;:::o;23249:419::-;23415:4;23453:2;23442:9;23438:18;23430:26;;23502:9;23496:4;23492:20;23488:1;23477:9;23473:17;23466:47;23530:131;23656:4;23530:131;:::i;:::-;23522:139;;23249:419;;;:::o;23674:194::-;23714:4;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23812:1;23809;23805:9;23797:17;;23836:1;23830:4;23827:11;23824:37;;;23841:18;;:::i;:::-;23824:37;23674:194;;;;:::o;23874:229::-;24014:34;24010:1;24002:6;23998:14;23991:58;24083:12;24078:2;24070:6;24066:15;24059:37;23874:229;:::o;24109:366::-;24251:3;24272:67;24336:2;24331:3;24272:67;:::i;:::-;24265:74;;24348:93;24437:3;24348:93;:::i;:::-;24466:2;24461:3;24457:12;24450:19;;24109:366;;;:::o;24481:419::-;24647:4;24685:2;24674:9;24670:18;24662:26;;24734:9;24728:4;24724:20;24720:1;24709:9;24705:17;24698:47;24762:131;24888:4;24762:131;:::i;:::-;24754:139;;24481:419;;;:::o;24906:143::-;24963:5;24994:6;24988:13;24979:22;;25010:33;25037:5;25010:33;:::i;:::-;24906:143;;;;:::o;25055:351::-;25125:6;25174:2;25162:9;25153:7;25149:23;25145:32;25142:119;;;25180:79;;:::i;:::-;25142:119;25300:1;25325:64;25381:7;25372:6;25361:9;25357:22;25325:64;:::i;:::-;25315:74;;25271:128;25055:351;;;;:::o;25412:85::-;25457:7;25486:5;25475:16;;25412:85;;;:::o;25503:158::-;25561:9;25594:61;25612:42;25621:32;25647:5;25621:32;:::i;:::-;25612:42;:::i;:::-;25594:61;:::i;:::-;25581:74;;25503:158;;;:::o;25667:147::-;25762:45;25801:5;25762:45;:::i;:::-;25757:3;25750:58;25667:147;;:::o;25820:114::-;25887:6;25921:5;25915:12;25905:22;;25820:114;;;:::o;25940:184::-;26039:11;26073:6;26068:3;26061:19;26113:4;26108:3;26104:14;26089:29;;25940:184;;;;:::o;26130:132::-;26197:4;26220:3;26212:11;;26250:4;26245:3;26241:14;26233:22;;26130:132;;;:::o;26268:108::-;26345:24;26363:5;26345:24;:::i;:::-;26340:3;26333:37;26268:108;;:::o;26382:179::-;26451:10;26472:46;26514:3;26506:6;26472:46;:::i;:::-;26550:4;26545:3;26541:14;26527:28;;26382:179;;;;:::o;26567:113::-;26637:4;26669;26664:3;26660:14;26652:22;;26567:113;;;:::o;26716:732::-;26835:3;26864:54;26912:5;26864:54;:::i;:::-;26934:86;27013:6;27008:3;26934:86;:::i;:::-;26927:93;;27044:56;27094:5;27044:56;:::i;:::-;27123:7;27154:1;27139:284;27164:6;27161:1;27158:13;27139:284;;;27240:6;27234:13;27267:63;27326:3;27311:13;27267:63;:::i;:::-;27260:70;;27353:60;27406:6;27353:60;:::i;:::-;27343:70;;27199:224;27186:1;27183;27179:9;27174:14;;27139:284;;;27143:14;27439:3;27432:10;;26840:608;;;26716:732;;;;:::o;27454:831::-;27717:4;27755:3;27744:9;27740:19;27732:27;;27769:71;27837:1;27826:9;27822:17;27813:6;27769:71;:::i;:::-;27850:80;27926:2;27915:9;27911:18;27902:6;27850:80;:::i;:::-;27977:9;27971:4;27967:20;27962:2;27951:9;27947:18;27940:48;28005:108;28108:4;28099:6;28005:108;:::i;:::-;27997:116;;28123:72;28191:2;28180:9;28176:18;28167:6;28123:72;:::i;:::-;28205:73;28273:3;28262:9;28258:19;28249:6;28205:73;:::i;:::-;27454:831;;;;;;;;:::o;28291:180::-;28339:77;28336:1;28329:88;28436:4;28433:1;28426:15;28460:4;28457:1;28450:15;28477:185;28517:1;28534:20;28552:1;28534:20;:::i;:::-;28529:25;;28568:20;28586:1;28568:20;:::i;:::-;28563:25;;28607:1;28597:35;;28612:18;;:::i;:::-;28597:35;28654:1;28651;28647:9;28642:14;;28477:185;;;;:::o;28668:177::-;28808:29;28804:1;28796:6;28792:14;28785:53;28668:177;:::o;28851:366::-;28993:3;29014:67;29078:2;29073:3;29014:67;:::i;:::-;29007:74;;29090:93;29179:3;29090:93;:::i;:::-;29208:2;29203:3;29199:12;29192:19;;28851:366;;;:::o;29223:419::-;29389:4;29427:2;29416:9;29412:18;29404:26;;29476:9;29470:4;29466:20;29462:1;29451:9;29447:17;29440:47;29504:131;29630:4;29504:131;:::i;:::-;29496:139;;29223:419;;;:::o;29648:348::-;29688:7;29711:20;29729:1;29711:20;:::i;:::-;29706:25;;29745:20;29763:1;29745:20;:::i;:::-;29740:25;;29933:1;29865:66;29861:74;29858:1;29855:81;29850:1;29843:9;29836:17;29832:105;29829:131;;;29940:18;;:::i;:::-;29829:131;29988:1;29985;29981:9;29970:20;;29648:348;;;;:::o;30002:220::-;30142:34;30138:1;30130:6;30126:14;30119:58;30211:3;30206:2;30198:6;30194:15;30187:28;30002:220;:::o;30228:366::-;30370:3;30391:67;30455:2;30450:3;30391:67;:::i;:::-;30384:74;;30467:93;30556:3;30467:93;:::i;:::-;30585:2;30580:3;30576:12;30569:19;;30228:366;;;:::o;30600:419::-;30766:4;30804:2;30793:9;30789:18;30781:26;;30853:9;30847:4;30843:20;30839:1;30828:9;30824:17;30817:47;30881:131;31007:4;30881:131;:::i;:::-;30873:139;;30600:419;;;:::o

Swarm Source

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