ETH Price: $2,812.99 (+2.65%)
 

Overview

Max Total Supply

100,000,000 sElon

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
myth1c.eth
Balance
1,294,811.055149851 sElon

Value
$0.00
0x48f5fc195c492930c98cdf07c7e7b0496ec9eaa6
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:
SupremeElon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-18
*/

/**

https://t.me/SupremeElon

https://twitter.com/SupremeElon


*/

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

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

    using SafeMath for uint256;

    string private constant _name = "Supreme Elon";
    string private constant _symbol = "sElon";
    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 = 100000000  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 5;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 5;

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

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

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    address payable private _devAddress1 = payable(0x818EE0242E4705EAE179d96aB236f5fC522fd37c);
    address payable private _devAddress2 = payable(0x818EE0242E4705EAE179d96aB236f5fC522fd37c);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 public xo=0;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 2000000 * 10**9;
    uint256 public _maxWalletSize = 2000000 * 10**9;
    uint256 public _swapTokensAtAmount = 100000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAddress1] = true;
        _isExcludedFromFee[_devAddress2] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            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)) {
                xo=xo+1;
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

        _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 {
        _devAddress2.transfer(amount/2);
        _devAddress1.transfer(address(this).balance);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() public onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    

    function manualsend() public onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


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

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

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

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

    receive() external payable {}

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

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

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

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

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

    

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function removeLimits() public {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }


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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xo","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c91906200072f565b6000196200002b919062000796565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573818ee0242e4705eae179d96ab236f5fc522fd37c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073818ee0242e4705eae179d96ab236f5fc522fd37c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006016556000601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff0219169083151502179055506001601760026101000a81548160ff02191690831515021790555066071afd498d000060185566071afd498d0000601955655af3107a4000601a553480156200018757600080fd5b5060006200019a620006c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024f620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000333573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035991906200083b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e791906200083b565b6040518363ffffffff1660e01b8152600401620004069291906200087e565b6020604051808303816000875af115801562000426573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044c91906200083b565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004a2620006cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064f620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006b69190620008bc565b60405180910390a350620008d9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073c82620006f6565b91506200074983620006f6565b9250826200075c576200075b62000700565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a382620006f6565b9150620007b083620006f6565b9250828203905081811115620007cb57620007ca62000767565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080382620007d6565b9050919050565b6200081581620007f6565b81146200082157600080fd5b50565b60008151905062000835816200080a565b92915050565b600060208284031215620008545762000853620007d1565b5b6000620008648482850162000824565b91505092915050565b6200087881620007f6565b82525050565b60006040820190506200089560008301856200086d565b620008a460208301846200086d565b9392505050565b620008b681620006f6565b82525050565b6000602082019050620008d36000830184620008ab565b92915050565b6135e880620008e96000396000f3fe6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f0461461059f578063dd62ed3e146105c8578063f2fde38b14610605578063fea55c571461062e576101a7565b8063a9059cbb1461050e578063bfd792841461054b578063c3c8cd8014610588576101a7565b80638f70ccf7116100c65780638f70ccf7146104665780638f9a55c01461048f57806395d89b41146104ba57806398a5c315146104e5576101a7565b80637d1db4a5146103d35780637f2feddc146103fe5780638da5cb5b1461043b576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461035157806370a0823114610368578063715018a6146103a5578063751039fc146103bc576101a7565b8063313ce567146102d257806349bd5a5e146102fd5780636d8aa8f814610328576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632fd689e3146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610659565b6040516101ce91906126d8565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612798565b610696565b60405161020b91906127f3565b60405180910390f35b34801561022057600080fd5b506102296106b4565b604051610236919061286d565b60405180910390f35b34801561024b57600080fd5b506102546106da565b6040516102619190612897565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906128b2565b6106ea565b60405161029e91906127f3565b60405180910390f35b3480156102b357600080fd5b506102bc6107c3565b6040516102c99190612897565b60405180910390f35b3480156102de57600080fd5b506102e76107c9565b6040516102f49190612921565b60405180910390f35b34801561030957600080fd5b506103126107d2565b60405161031f919061294b565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612992565b6107f8565b005b34801561035d57600080fd5b506103666108aa565b005b34801561037457600080fd5b5061038f600480360381019061038a91906129bf565b610950565b60405161039c9190612897565b60405180910390f35b3480156103b157600080fd5b506103ba6109a1565b005b3480156103c857600080fd5b506103d1610af4565b005b3480156103df57600080fd5b506103e8610b14565b6040516103f59190612897565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906129bf565b610b1a565b6040516104329190612897565b60405180910390f35b34801561044757600080fd5b50610450610b32565b60405161045d919061294b565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612992565b610b5b565b005b34801561049b57600080fd5b506104a4610c0d565b6040516104b19190612897565b60405180910390f35b3480156104c657600080fd5b506104cf610c13565b6040516104dc91906126d8565b60405180910390f35b3480156104f157600080fd5b5061050c600480360381019061050791906129ec565b610c50565b005b34801561051a57600080fd5b5061053560048036038101906105309190612798565b610cef565b60405161054291906127f3565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d91906129bf565b610d0d565b60405161057f91906127f3565b60405180910390f35b34801561059457600080fd5b5061059d610d2d565b005b3480156105ab57600080fd5b506105c660048036038101906105c19190612a7e565b610ddb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190612ade565b610f15565b6040516105fc9190612897565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906129bf565b610f9c565b005b34801561063a57600080fd5b5061064361115d565b6040516106509190612897565b60405180910390f35b60606040518060400160405280600c81526020017f53757072656d6520456c6f6e0000000000000000000000000000000000000000815250905090565b60006106aa6106a3611163565b848461116b565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006106f7848484611334565b6107b884610703611163565b6107b38560405180606001604052806028815260200161358b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769611163565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afc9092919063ffffffff16565b61116b565b600190509392505050565b601a5481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610800611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490612b6a565b60405180910390fd5b80601760026101000a81548160ff02191690831515021790555050565b6108b2611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690612b6a565b60405180910390fd5b600047905061094d81611b60565b50565b600061099a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c41565b9050919050565b6109a9611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90612b6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67016345785d8a000060188190555067016345785d8a0000601981905550565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b63611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612b6a565b60405180910390fd5b80601760006101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f73456c6f6e000000000000000000000000000000000000000000000000000000815250905090565b610c58611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612b6a565b60405180910390fd5b80601a8190555050565b6000610d03610cfc611163565b8484611334565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b610d35611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990612b6a565b60405180910390fd5b6000610dcd30610950565b9050610dd881611caf565b50565b610de3611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790612b6a565b60405180910390fd5b60005b83839050811015610f0f578160056000868685818110610e9657610e95612b8a565b5b9050602002016020810190610eab91906129bf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0790612be8565b915050610e73565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fa4611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612b6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612ca2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190612d34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612dc6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113279190612897565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612eea565b60405180910390fd5b60008111611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90612f7c565b60405180910390fd5b61145d610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114cb575061149b610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117d657601760009054906101000a900460ff1661155a576114ec610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115509061300e565b60405180910390fd5b5b60185481111561159f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115969061307a565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461164d576019548161160184610950565b61160b919061309a565b111561164c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164390613140565b60405180910390fd5b5b600061165830610950565b90506000601a54821015905060185482106116735760185491505b80801561168d5750601760019054906101000a900460ff16155b80156116e75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116ff5750601760029054906101000a900460ff165b80156117555750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ab5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d3576117b982611caf565b600047905060008111156117d1576117d047611b60565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061187d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119305750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561192f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561193e5760009050611aea565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a165760016016546119fd919061309a565b601681905550600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ac15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600a54600c81905550600b54600d8190555060286016541115611ae857600080fd5b5b5b611af684848484611f28565b50505050565b6000838311158290611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b91906126d8565b60405180910390fd5b5060008385611b539190613160565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600283611ba991906131c3565b9081150290604051600060405180830381858888f19350505050158015611bd4573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c3d573d6000803e3d6000fd5b5050565b6000600654821115611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90613266565b60405180910390fd5b6000611c92611f55565b9050611ca78184611f8090919063ffffffff16565b915050919050565b6001601760016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ce757611ce6613286565b5b604051908082528060200260200182016040528015611d155781602001602082028036833780820191505090505b5090503081600081518110611d2d57611d2c612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df891906132ca565b81600181518110611e0c57611e0b612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed79594939291906133f0565b600060405180830381600087803b158015611ef157600080fd5b505af1158015611f05573d6000803e3d6000fd5b50505050506000601760016101000a81548160ff02191690831515021790555050565b80611f3657611f35611fca565b5b611f41848484612007565b80611f4f57611f4e6121d2565b5b50505050565b6000806000611f626121e6565b91509150611f798183611f8090919063ffffffff16565b9250505090565b6000611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612245565b905092915050565b6000600c54148015611fde57506000600d54145b61200557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612019876122a8565b95509550955095509550955061207786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061210c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612158816123b8565b6121628483612475565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121bf9190612897565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061221a67016345785d8a0000600654611f8090919063ffffffff16565b8210156122385760065467016345785d8a0000935093505050612241565b81819350935050505b9091565b6000808311829061228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228391906126d8565b60405180910390fd5b506000838561229b91906131c3565b9050809150509392505050565b60008060008060008060008060006122c58a600c54600d546124af565b92509250925060006122d5611f55565b905060008060006122e88e878787612545565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061235283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b6000808284612369919061309a565b9050838110156123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a590613496565b60405180910390fd5b8091505092915050565b60006123c2611f55565b905060006123d982846125ce90919063ffffffff16565b905061242d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61248a8260065461231090919063ffffffff16565b6006819055506124a58160075461235a90919063ffffffff16565b6007819055505050565b6000806000806124db60646124cd888a6125ce90919063ffffffff16565b611f8090919063ffffffff16565b9050600061250560646124f7888b6125ce90919063ffffffff16565b611f8090919063ffffffff16565b9050600061252e82612520858c61231090919063ffffffff16565b61231090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061255e85896125ce90919063ffffffff16565b9050600061257586896125ce90919063ffffffff16565b9050600061258c87896125ce90919063ffffffff16565b905060006125b5826125a7858761231090919063ffffffff16565b61231090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036125e05760009050612642565b600082846125ee91906134b6565b90508284826125fd91906131c3565b1461263d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126349061356a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612682578082015181840152602081019050612667565b60008484015250505050565b6000601f19601f8301169050919050565b60006126aa82612648565b6126b48185612653565b93506126c4818560208601612664565b6126cd8161268e565b840191505092915050565b600060208201905081810360008301526126f2818461269f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061272f82612704565b9050919050565b61273f81612724565b811461274a57600080fd5b50565b60008135905061275c81612736565b92915050565b6000819050919050565b61277581612762565b811461278057600080fd5b50565b6000813590506127928161276c565b92915050565b600080604083850312156127af576127ae6126fa565b5b60006127bd8582860161274d565b92505060206127ce85828601612783565b9150509250929050565b60008115159050919050565b6127ed816127d8565b82525050565b600060208201905061280860008301846127e4565b92915050565b6000819050919050565b600061283361282e61282984612704565b61280e565b612704565b9050919050565b600061284582612818565b9050919050565b60006128578261283a565b9050919050565b6128678161284c565b82525050565b6000602082019050612882600083018461285e565b92915050565b61289181612762565b82525050565b60006020820190506128ac6000830184612888565b92915050565b6000806000606084860312156128cb576128ca6126fa565b5b60006128d98682870161274d565b93505060206128ea8682870161274d565b92505060406128fb86828701612783565b9150509250925092565b600060ff82169050919050565b61291b81612905565b82525050565b60006020820190506129366000830184612912565b92915050565b61294581612724565b82525050565b6000602082019050612960600083018461293c565b92915050565b61296f816127d8565b811461297a57600080fd5b50565b60008135905061298c81612966565b92915050565b6000602082840312156129a8576129a76126fa565b5b60006129b68482850161297d565b91505092915050565b6000602082840312156129d5576129d46126fa565b5b60006129e38482850161274d565b91505092915050565b600060208284031215612a0257612a016126fa565b5b6000612a1084828501612783565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a3e57612a3d612a19565b5b8235905067ffffffffffffffff811115612a5b57612a5a612a1e565b5b602083019150836020820283011115612a7757612a76612a23565b5b9250929050565b600080600060408486031215612a9757612a966126fa565b5b600084013567ffffffffffffffff811115612ab557612ab46126ff565b5b612ac186828701612a28565b93509350506020612ad48682870161297d565b9150509250925092565b60008060408385031215612af557612af46126fa565b5b6000612b038582860161274d565b9250506020612b148582860161274d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b54602083612653565b9150612b5f82612b1e565b602082019050919050565b60006020820190508181036000830152612b8381612b47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf382612762565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c2557612c24612bb9565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c8c602683612653565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e602483612653565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612db0602283612653565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e42602583612653565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed4602383612653565b9150612edf82612e78565b604082019050919050565b60006020820190508181036000830152612f0381612ec7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f66602983612653565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612ff8603f83612653565b915061300382612f9c565b604082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613064601c83612653565b915061306f8261302e565b602082019050919050565b6000602082019050818103600083015261309381613057565b9050919050565b60006130a582612762565b91506130b083612762565b92508282019050808211156130c8576130c7612bb9565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061312a602383612653565b9150613135826130ce565b604082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b600061316b82612762565b915061317683612762565b925082820390508181111561318e5761318d612bb9565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ce82612762565b91506131d983612762565b9250826131e9576131e8613194565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613250602a83612653565b915061325b826131f4565b604082019050919050565b6000602082019050818103600083015261327f81613243565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506132c481612736565b92915050565b6000602082840312156132e0576132df6126fa565b5b60006132ee848285016132b5565b91505092915050565b6000819050919050565b600061331c613317613312846132f7565b61280e565b612762565b9050919050565b61332c81613301565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61336781612724565b82525050565b6000613379838361335e565b60208301905092915050565b6000602082019050919050565b600061339d82613332565b6133a7818561333d565b93506133b28361334e565b8060005b838110156133e35781516133ca888261336d565b97506133d583613385565b9250506001810190506133b6565b5085935050505092915050565b600060a0820190506134056000830188612888565b6134126020830187613323565b81810360408301526134248186613392565b9050613433606083018561293c565b6134406080830184612888565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613480601b83612653565b915061348b8261344a565b602082019050919050565b600060208201905081810360008301526134af81613473565b9050919050565b60006134c182612762565b91506134cc83612762565b92508282026134da81612762565b915082820484148315176134f1576134f0612bb9565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613554602183612653565b915061355f826134f8565b604082019050919050565b6000602082019050818103600083015261358381613547565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e670ae59032273baef311b420d7314e1c89abe590a7970c985a2e804e3f82e7964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f0461461059f578063dd62ed3e146105c8578063f2fde38b14610605578063fea55c571461062e576101a7565b8063a9059cbb1461050e578063bfd792841461054b578063c3c8cd8014610588576101a7565b80638f70ccf7116100c65780638f70ccf7146104665780638f9a55c01461048f57806395d89b41146104ba57806398a5c315146104e5576101a7565b80637d1db4a5146103d35780637f2feddc146103fe5780638da5cb5b1461043b576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461035157806370a0823114610368578063715018a6146103a5578063751039fc146103bc576101a7565b8063313ce567146102d257806349bd5a5e146102fd5780636d8aa8f814610328576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632fd689e3146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610659565b6040516101ce91906126d8565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612798565b610696565b60405161020b91906127f3565b60405180910390f35b34801561022057600080fd5b506102296106b4565b604051610236919061286d565b60405180910390f35b34801561024b57600080fd5b506102546106da565b6040516102619190612897565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906128b2565b6106ea565b60405161029e91906127f3565b60405180910390f35b3480156102b357600080fd5b506102bc6107c3565b6040516102c99190612897565b60405180910390f35b3480156102de57600080fd5b506102e76107c9565b6040516102f49190612921565b60405180910390f35b34801561030957600080fd5b506103126107d2565b60405161031f919061294b565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612992565b6107f8565b005b34801561035d57600080fd5b506103666108aa565b005b34801561037457600080fd5b5061038f600480360381019061038a91906129bf565b610950565b60405161039c9190612897565b60405180910390f35b3480156103b157600080fd5b506103ba6109a1565b005b3480156103c857600080fd5b506103d1610af4565b005b3480156103df57600080fd5b506103e8610b14565b6040516103f59190612897565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906129bf565b610b1a565b6040516104329190612897565b60405180910390f35b34801561044757600080fd5b50610450610b32565b60405161045d919061294b565b60405180910390f35b34801561047257600080fd5b5061048d60048036038101906104889190612992565b610b5b565b005b34801561049b57600080fd5b506104a4610c0d565b6040516104b19190612897565b60405180910390f35b3480156104c657600080fd5b506104cf610c13565b6040516104dc91906126d8565b60405180910390f35b3480156104f157600080fd5b5061050c600480360381019061050791906129ec565b610c50565b005b34801561051a57600080fd5b5061053560048036038101906105309190612798565b610cef565b60405161054291906127f3565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d91906129bf565b610d0d565b60405161057f91906127f3565b60405180910390f35b34801561059457600080fd5b5061059d610d2d565b005b3480156105ab57600080fd5b506105c660048036038101906105c19190612a7e565b610ddb565b005b3480156105d457600080fd5b506105ef60048036038101906105ea9190612ade565b610f15565b6040516105fc9190612897565b60405180910390f35b34801561061157600080fd5b5061062c600480360381019061062791906129bf565b610f9c565b005b34801561063a57600080fd5b5061064361115d565b6040516106509190612897565b60405180910390f35b60606040518060400160405280600c81526020017f53757072656d6520456c6f6e0000000000000000000000000000000000000000815250905090565b60006106aa6106a3611163565b848461116b565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006106f7848484611334565b6107b884610703611163565b6107b38560405180606001604052806028815260200161358b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610769611163565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611afc9092919063ffffffff16565b61116b565b600190509392505050565b601a5481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610800611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490612b6a565b60405180910390fd5b80601760026101000a81548160ff02191690831515021790555050565b6108b2611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690612b6a565b60405180910390fd5b600047905061094d81611b60565b50565b600061099a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c41565b9050919050565b6109a9611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2d90612b6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67016345785d8a000060188190555067016345785d8a0000601981905550565b60185481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b63611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612b6a565b60405180910390fd5b80601760006101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600581526020017f73456c6f6e000000000000000000000000000000000000000000000000000000815250905090565b610c58611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612b6a565b60405180910390fd5b80601a8190555050565b6000610d03610cfc611163565b8484611334565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b610d35611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990612b6a565b60405180910390fd5b6000610dcd30610950565b9050610dd881611caf565b50565b610de3611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6790612b6a565b60405180910390fd5b60005b83839050811015610f0f578160056000868685818110610e9657610e95612b8a565b5b9050602002016020810190610eab91906129bf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0790612be8565b915050610e73565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610fa4611163565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612b6a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790612ca2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190612d34565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124090612dc6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113279190612897565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612eea565b60405180910390fd5b60008111611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144c90612f7c565b60405180910390fd5b61145d610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114cb575061149b610b32565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117d657601760009054906101000a900460ff1661155a576114ec610b32565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611559576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115509061300e565b60405180910390fd5b5b60185481111561159f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115969061307a565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461164d576019548161160184610950565b61160b919061309a565b111561164c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164390613140565b60405180910390fd5b5b600061165830610950565b90506000601a54821015905060185482106116735760185491505b80801561168d5750601760019054906101000a900460ff16155b80156116e75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116ff5750601760029054906101000a900460ff165b80156117555750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ab5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117d3576117b982611caf565b600047905060008111156117d1576117d047611b60565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061187d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119305750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561192f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561193e5760009050611aea565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a165760016016546119fd919061309a565b601681905550600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ac15750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae957600a54600c81905550600b54600d8190555060286016541115611ae857600080fd5b5b5b611af684848484611f28565b50505050565b6000838311158290611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b91906126d8565b60405180910390fd5b5060008385611b539190613160565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600283611ba991906131c3565b9081150290604051600060405180830381858888f19350505050158015611bd4573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611c3d573d6000803e3d6000fd5b5050565b6000600654821115611c88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7f90613266565b60405180910390fd5b6000611c92611f55565b9050611ca78184611f8090919063ffffffff16565b915050919050565b6001601760016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ce757611ce6613286565b5b604051908082528060200260200182016040528015611d155781602001602082028036833780820191505090505b5090503081600081518110611d2d57611d2c612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df891906132ca565b81600181518110611e0c57611e0b612b8a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7330601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461116b565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ed79594939291906133f0565b600060405180830381600087803b158015611ef157600080fd5b505af1158015611f05573d6000803e3d6000fd5b50505050506000601760016101000a81548160ff02191690831515021790555050565b80611f3657611f35611fca565b5b611f41848484612007565b80611f4f57611f4e6121d2565b5b50505050565b6000806000611f626121e6565b91509150611f798183611f8090919063ffffffff16565b9250505090565b6000611fc283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612245565b905092915050565b6000600c54148015611fde57506000600d54145b61200557600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612019876122a8565b95509550955095509550955061207786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061210c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612158816123b8565b6121628483612475565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121bf9190612897565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a0000905061221a67016345785d8a0000600654611f8090919063ffffffff16565b8210156122385760065467016345785d8a0000935093505050612241565b81819350935050505b9091565b6000808311829061228c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228391906126d8565b60405180910390fd5b506000838561229b91906131c3565b9050809150509392505050565b60008060008060008060008060006122c58a600c54600d546124af565b92509250925060006122d5611f55565b905060008060006122e88e878787612545565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061235283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611afc565b905092915050565b6000808284612369919061309a565b9050838110156123ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a590613496565b60405180910390fd5b8091505092915050565b60006123c2611f55565b905060006123d982846125ce90919063ffffffff16565b905061242d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461235a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61248a8260065461231090919063ffffffff16565b6006819055506124a58160075461235a90919063ffffffff16565b6007819055505050565b6000806000806124db60646124cd888a6125ce90919063ffffffff16565b611f8090919063ffffffff16565b9050600061250560646124f7888b6125ce90919063ffffffff16565b611f8090919063ffffffff16565b9050600061252e82612520858c61231090919063ffffffff16565b61231090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061255e85896125ce90919063ffffffff16565b9050600061257586896125ce90919063ffffffff16565b9050600061258c87896125ce90919063ffffffff16565b905060006125b5826125a7858761231090919063ffffffff16565b61231090919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036125e05760009050612642565b600082846125ee91906134b6565b90508284826125fd91906131c3565b1461263d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126349061356a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612682578082015181840152602081019050612667565b60008484015250505050565b6000601f19601f8301169050919050565b60006126aa82612648565b6126b48185612653565b93506126c4818560208601612664565b6126cd8161268e565b840191505092915050565b600060208201905081810360008301526126f2818461269f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061272f82612704565b9050919050565b61273f81612724565b811461274a57600080fd5b50565b60008135905061275c81612736565b92915050565b6000819050919050565b61277581612762565b811461278057600080fd5b50565b6000813590506127928161276c565b92915050565b600080604083850312156127af576127ae6126fa565b5b60006127bd8582860161274d565b92505060206127ce85828601612783565b9150509250929050565b60008115159050919050565b6127ed816127d8565b82525050565b600060208201905061280860008301846127e4565b92915050565b6000819050919050565b600061283361282e61282984612704565b61280e565b612704565b9050919050565b600061284582612818565b9050919050565b60006128578261283a565b9050919050565b6128678161284c565b82525050565b6000602082019050612882600083018461285e565b92915050565b61289181612762565b82525050565b60006020820190506128ac6000830184612888565b92915050565b6000806000606084860312156128cb576128ca6126fa565b5b60006128d98682870161274d565b93505060206128ea8682870161274d565b92505060406128fb86828701612783565b9150509250925092565b600060ff82169050919050565b61291b81612905565b82525050565b60006020820190506129366000830184612912565b92915050565b61294581612724565b82525050565b6000602082019050612960600083018461293c565b92915050565b61296f816127d8565b811461297a57600080fd5b50565b60008135905061298c81612966565b92915050565b6000602082840312156129a8576129a76126fa565b5b60006129b68482850161297d565b91505092915050565b6000602082840312156129d5576129d46126fa565b5b60006129e38482850161274d565b91505092915050565b600060208284031215612a0257612a016126fa565b5b6000612a1084828501612783565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a3e57612a3d612a19565b5b8235905067ffffffffffffffff811115612a5b57612a5a612a1e565b5b602083019150836020820283011115612a7757612a76612a23565b5b9250929050565b600080600060408486031215612a9757612a966126fa565b5b600084013567ffffffffffffffff811115612ab557612ab46126ff565b5b612ac186828701612a28565b93509350506020612ad48682870161297d565b9150509250925092565b60008060408385031215612af557612af46126fa565b5b6000612b038582860161274d565b9250506020612b148582860161274d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b54602083612653565b9150612b5f82612b1e565b602082019050919050565b60006020820190508181036000830152612b8381612b47565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bf382612762565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c2557612c24612bb9565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c8c602683612653565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e602483612653565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612db0602283612653565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e42602583612653565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed4602383612653565b9150612edf82612e78565b604082019050919050565b60006020820190508181036000830152612f0381612ec7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f66602983612653565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612ff8603f83612653565b915061300382612f9c565b604082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613064601c83612653565b915061306f8261302e565b602082019050919050565b6000602082019050818103600083015261309381613057565b9050919050565b60006130a582612762565b91506130b083612762565b92508282019050808211156130c8576130c7612bb9565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061312a602383612653565b9150613135826130ce565b604082019050919050565b600060208201905081810360008301526131598161311d565b9050919050565b600061316b82612762565b915061317683612762565b925082820390508181111561318e5761318d612bb9565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131ce82612762565b91506131d983612762565b9250826131e9576131e8613194565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613250602a83612653565b915061325b826131f4565b604082019050919050565b6000602082019050818103600083015261327f81613243565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506132c481612736565b92915050565b6000602082840312156132e0576132df6126fa565b5b60006132ee848285016132b5565b91505092915050565b6000819050919050565b600061331c613317613312846132f7565b61280e565b612762565b9050919050565b61332c81613301565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61336781612724565b82525050565b6000613379838361335e565b60208301905092915050565b6000602082019050919050565b600061339d82613332565b6133a7818561333d565b93506133b28361334e565b8060005b838110156133e35781516133ca888261336d565b97506133d583613385565b9250506001810190506133b6565b5085935050505092915050565b600060a0820190506134056000830188612888565b6134126020830187613323565b81810360408301526134248186613392565b9050613433606083018561293c565b6134406080830184612888565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613480601b83612653565b915061348b8261344a565b602082019050919050565b600060208201905081810360008301526134af81613473565b9050919050565b60006134c182612762565b91506134cc83612762565b92508282026134da81612762565b915082820484148315176134f1576134f0612bb9565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613554602183612653565b915061355f826134f8565b604082019050919050565b6000602082019050818103600083015261358381613547565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e670ae59032273baef311b420d7314e1c89abe590a7970c985a2e804e3f82e7964736f6c63430008110033

Deployed Bytecode Sourcemap

4147:12697:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6653:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7578:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5484:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6930:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7779:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5812:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6839:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5532:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16348:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12546:151;;;;;;;;;;;;;:::i;:::-;;7033:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1634:148;;;;;;;;;;;;;:::i;:::-;;16488:107;;;;;;;;;;;;;:::i;:::-;;5706:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5238:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1420:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12269:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5758:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16157:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7179:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5200:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12378:152;;;;;;;;;;;;;:::i;:::-;;16605:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7386:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1790:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5567:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6653:83;6690:13;6723:5;;;;;;;;;;;;;;;;;6716:12;;6653:83;:::o;7578:193::-;7680:4;7702:39;7711:12;:10;:12::i;:::-;7725:7;7734:6;7702:8;:39::i;:::-;7759:4;7752:11;;7578:193;;;;:::o;5484:41::-;;;;;;;;;;;;;:::o;6930:95::-;6983:7;4702:18;7003:14;;6930:95;:::o;7779:446::-;7911:4;7928:36;7938:6;7946:9;7957:6;7928:9;:36::i;:::-;7975:220;7998:6;8019:12;:10;:12::i;:::-;8046:138;8102:6;8046:138;;;;;;;;;;;;;;;;;:11;:19;8058:6;8046:19;;;;;;;;;;;;;;;:33;8066:12;:10;:12::i;:::-;8046:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7975:8;:220::i;:::-;8213:4;8206:11;;7779:446;;;;;:::o;5812:51::-;;;;:::o;6839:83::-;6880:5;4376:1;6898:16;;6839:83;:::o;5532:28::-;;;;;;;;;;;;;:::o;16348:101::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16429:12:::1;16415:11;;:26;;;;;;;;;;;;;;;;;;16348:101:::0;:::o;12546:151::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12596:26:::1;12625:21;12596:50;;12657:32;12670:18;12657:12;:32::i;:::-;12585:112;12546:151::o:0;7033:138::-;7099:7;7126:37;7146:7;:16;7154:7;7146:16;;;;;;;;;;;;;;;;7126:19;:37::i;:::-;7119:44;;7033:138;;;:::o;1634:148::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1741:1:::1;1704:40;;1725:6;::::0;::::1;;;;;;;;1704:40;;;;;;;;;;;;1772:1;1755:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1634:148::o:0;16488:107::-;4702:18;16530:12;:22;;;;4702:18;16563:14;:24;;;;16488:107::o;5706:45::-;;;;:::o;5238:43::-;;;;;;;;;;;;;;;;;:::o;1420:79::-;1458:7;1485:6;;;;;;;;;;;1478:13;;1420:79;:::o;12269:101::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12350:12:::1;12336:11;;:26;;;;;;;;;;;;;;;;;;12269:101:::0;:::o;5758:47::-;;;;:::o;6744:87::-;6783:13;6816:7;;;;;;;;;;;;;;;;;6809:14;;6744:87;:::o;16157:139::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16270:18:::1;16248:19;:40;;;;16157:139:::0;:::o;7179:199::-;7284:4;7306:42;7316:12;:10;:12::i;:::-;7330:9;7341:6;7306:9;:42::i;:::-;7366:4;7359:11;;7179:199;;;;:::o;5200:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12378:152::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12428:23:::1;12454:24;12472:4;12454:9;:24::i;:::-;12428:50;;12489:33;12506:15;12489:16;:33::i;:::-;12417:113;12378:152::o:0;16605:234::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16722:9:::1;16718:114;16741:8;;:15;;16737:1;:19;16718:114;;;16812:8;16778:18;:31;16797:8;;16806:1;16797:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;16778:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;16758:3;;;;;:::i;:::-;;;;16718:114;;;;16605:234:::0;;;:::o;7386:184::-;7503:7;7535:11;:18;7547:5;7535:18;;;;;;;;;;;;;;;:27;7554:7;7535:27;;;;;;;;;;;;;;;;7528:34;;7386:184;;;;:::o;1790:244::-;1557:12;:10;:12::i;:::-;1547:22;;:6;;;;;;;;;;:22;;;1539:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1899:1:::1;1879:22;;:8;:22;;::::0;1871:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1989:8;1960:38;;1981:6;::::0;::::1;;;;;;;;1960:38;;;;;;;;;;;;2018:8;2009:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1790:244:::0;:::o;5567:19::-;;;;:::o;179:98::-;232:7;259:10;252:17;;179:98;:::o;8916:369::-;9060:1;9043:19;;:5;:19;;;9035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9141:1;9122:21;;:7;:21;;;9114:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9223:6;9193:11;:18;9205:5;9193:18;;;;;;;;;;;;;;;:27;9212:7;9193:27;;;;;;;;;;;;;;;:36;;;;9261:7;9245:32;;9254:5;9245:32;;;9270:6;9245:32;;;;;;:::i;:::-;;;;;;;;8916:369;;;:::o;9293:2318::-;9431:1;9415:18;;:4;:18;;;9407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9508:1;9494:16;;:2;:16;;;9486:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9578:1;9569:6;:10;9561:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9650:7;:5;:7::i;:::-;9642:15;;:4;:15;;;;:32;;;;;9667:7;:5;:7::i;:::-;9661:13;;:2;:13;;;;9642:32;9638:1187;;;9731:11;;;;;;;;;;;9726:144;;9779:7;:5;:7::i;:::-;9771:15;;:4;:15;;;9763:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9726:144;9904:12;;9894:6;:22;;9886:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9975:13;;;;;;;;;;;9969:19;;:2;:19;;;9966:149;;10043:14;;10033:6;10017:13;10027:2;10017:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10009:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9966:149;10143:28;10174:24;10192:4;10174:9;:24::i;:::-;10143:55;;10213:12;10252:19;;10228:20;:43;;10213:58;;10315:12;;10291:20;:36;10288:124;;10384:12;;10361:35;;10288:124;10432:7;:18;;;;;10444:6;;;;;;;;;;;10443:7;10432:18;:43;;;;;10462:13;;;;;;;;;;;10454:21;;:4;:21;;;;10432:43;:58;;;;;10479:11;;;;;;;;;;;10432:58;:87;;;;;10495:18;:24;10514:4;10495:24;;;;;;;;;;;;;;;;;;;;;;;;;10494:25;10432:87;:114;;;;;10524:18;:22;10543:2;10524:22;;;;;;;;;;;;;;;;;;;;;;;;;10523:23;10432:114;10428:386;;;10567:38;10584:20;10567:16;:38::i;:::-;10624:26;10653:21;10624:50;;10718:1;10697:18;:22;10693:106;;;10744:35;10757:21;10744:12;:35::i;:::-;10693:106;10548:266;10428:386;9676:1149;;9638:1187;10837:12;10852:4;10837:19;;10901:18;:24;10920:4;10901:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10929:18;:22;10948:2;10929:22;;;;;;;;;;;;;;;;;;;;;;;;;10901:50;10900:102;;;;10965:13;;;;;;;;;;;10957:21;;:4;:21;;;;:44;;;;;10988:13;;;;;;;;;;;10982:19;;:2;:19;;;;10957:44;10900:102;10896:654;;;11029:5;11019:15;;10896:654;;;11112:13;;;;;;;;;;;11104:21;;:4;:21;;;:55;;;;;11143:15;;;;;;;;;;;11129:30;;:2;:30;;;;11104:55;11101:188;;;11186:1;11183:2;;:4;;;;:::i;:::-;11180:2;:7;;;;11218:14;;11206:9;:26;;;;11261:12;;11251:7;:22;;;;11101:188;11348:13;;;;;;;;;;;11342:19;;:2;:19;;;:55;;;;;11381:15;;;;;;;;;;;11365:32;;:4;:32;;;;11342:55;11338:199;;;11430:15;;11418:9;:27;;;;11474:13;;11464:7;:23;;;;11518:2;11514;;:6;;11506:15;;;;;;11338:199;10896:654;11562:41;11577:4;11583:2;11587:6;11595:7;11562:14;:41::i;:::-;9396:2215;9293:2318;;;:::o;2398:224::-;2518:7;2551:1;2546;:6;;2554:12;2538:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2578:9;2594:1;2590;:5;;;;:::i;:::-;2578:17;;2613:1;2606:8;;;2398:224;;;;;:::o;12110:151::-;12167:12;;;;;;;;;;;:21;;:31;12196:1;12189:6;:8;;;;:::i;:::-;12167:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12209:12;;;;;;;;;;;:21;;:44;12231:21;12209:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12110:151;:::o;8233:323::-;8328:7;8386;;8375;:18;;8353:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8474:19;8496:10;:8;:10::i;:::-;8474:32;;8524:24;8536:11;8524:7;:11;;:24;;;;:::i;:::-;8517:31;;;8233:323;;;:::o;11619:483::-;5966:4;5957:6;;:13;;;;;;;;;;;;;;;;;;11697:21:::1;11735:1;11721:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11697:40;;11766:4;11748;11753:1;11748:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11792:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11782:4;11787:1;11782:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11825:62;11842:4;11857:15;;;;;;;;;;;11875:11;11825:8;:62::i;:::-;11898:15;;;;;;;;;;;:66;;;11979:11;12005:1;12021:4;12048;12068:15;11898:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11686:416;6002:5:::0;5993:6;;:14;;;;;;;;;;;;;;;;;;11619:483;:::o;12707:282::-;12863:7;12858:28;;12872:14;:12;:14::i;:::-;12858:28;12897:44;12915:6;12923:9;12934:6;12897:17;:44::i;:::-;12957:7;12952:29;;12966:15;:13;:15::i;:::-;12952:29;12707:282;;;;:::o;15668:164::-;15710:7;15731:15;15748;15767:19;:17;:19::i;:::-;15730:56;;;;15804:20;15816:7;15804;:11;;:20;;;;:::i;:::-;15797:27;;;;15668:164;:::o;2884:132::-;2942:7;2969:39;2973:1;2976;2969:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2962:46;;2884:132;;;;:::o;8564:219::-;8624:1;8611:9;;:14;:30;;;;;8640:1;8629:7;;:12;8611:30;8643:7;8607:43;8682:9;;8662:17;:29;;;;8720:7;;8702:15;:25;;;;8752:1;8740:9;:13;;;;8774:1;8764:7;:11;;;;8564:219;:::o;12997:610::-;13144:15;13174:23;13212:12;13239:23;13277:12;13304:13;13331:19;13342:7;13331:10;:19::i;:::-;13129:221;;;;;;;;;;;;13379:28;13399:7;13379;:15;13387:6;13379:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13361:7;:15;13369:6;13361:15;;;;;;;;;;;;;;;:46;;;;13439:39;13462:15;13439:7;:18;13447:9;13439:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13418:7;:18;13426:9;13418:18;;;;;;;;;;;;;;;:60;;;;13489:16;13499:5;13489:9;:16::i;:::-;13516:23;13528:4;13534;13516:11;:23::i;:::-;13572:9;13555:44;;13564:6;13555:44;;;13583:15;13555:44;;;;;;:::i;:::-;;;;;;;;13118:489;;;;;;12997:610;;;:::o;8791:117::-;8847:17;;8835:9;:29;;;;8885:15;;8875:7;:25;;;;8791:117::o;15840:257::-;15891:7;15900;15920:15;15938:7;;15920:25;;15956:15;4702:18;15956:25;;16006:20;4702:18;16006:7;;:11;;:20;;;;:::i;:::-;15996:7;:30;15992:61;;;16036:7;;4702:18;16028:25;;;;;;;;15992:61;16072:7;16081;16064:25;;;;;;15840:257;;;:::o;3024:223::-;3144:7;3176:1;3172;:5;3179:12;3164:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3203:9;3219:1;3215;:5;;;;:::i;:::-;3203:17;;3238:1;3231:8;;;3024:223;;;;;:::o;14026:615::-;14126:7;14148;14170;14192;14214;14236;14272:23;14297:12;14311:13;14341:40;14353:7;14362:9;;14373:7;;14341:11;:40::i;:::-;14271:110;;;;;;14392:19;14414:10;:8;:10::i;:::-;14392:32;;14436:15;14453:23;14478:12;14507:46;14519:7;14528:4;14534:5;14541:11;14507;:46::i;:::-;14435:118;;;;;;14572:7;14581:15;14598:4;14604:15;14621:4;14627:5;14564:69;;;;;;;;;;;;;;;;;;;14026:615;;;;;;;:::o;2254:136::-;2312:7;2339:43;2343:1;2346;2339:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2332:50;;2254:136;;;;:::o;2067:179::-;2125:7;2145:9;2161:1;2157;:5;;;;:::i;:::-;2145:17;;2186:1;2181;:6;;2173:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2237:1;2230:8;;;2067:179;;;;:::o;13615:211::-;13668:19;13690:10;:8;:10::i;:::-;13668:32;;13711:13;13727:22;13737:11;13727:5;:9;;:22;;;;:::i;:::-;13711:38;;13785:33;13812:5;13785:7;:22;13801:4;13785:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13760:7;:22;13776:4;13760:22;;;;;;;;;;;;;;;:58;;;;13657:169;;13615:211;:::o;13834:147::-;13912:17;13924:4;13912:7;;:11;;:17;;;;:::i;:::-;13902:7;:27;;;;13953:20;13968:4;13953:10;;:14;;:20;;;;:::i;:::-;13940:10;:33;;;;13834:147;;:::o;14649:469::-;14818:7;14840;14862;14897:12;14912:30;14938:3;14912:21;14924:8;14912:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14897:45;;14953:13;14969:28;14993:3;14969:19;14981:6;14969:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14953:44;;15008:23;15034:28;15056:5;15034:17;15046:4;15034:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15008:54;;15081:15;15098:4;15104:5;15073:37;;;;;;;;;14649:469;;;;;;;:::o;15126:534::-;15320:7;15342;15364;15399:15;15417:24;15429:11;15417:7;:11;;:24;;;;:::i;:::-;15399:42;;15452:12;15467:21;15476:11;15467:4;:8;;:21;;;;:::i;:::-;15452:36;;15499:13;15515:22;15525:11;15515:5;:9;;:22;;;;:::i;:::-;15499:38;;15548:23;15574:28;15596:5;15574:17;15586:4;15574:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15548:54;;15621:7;15630:15;15647:4;15613:39;;;;;;;;;;15126:534;;;;;;;;:::o;2630:246::-;2688:7;2717:1;2712;:6;2708:47;;2742:1;2735:8;;;;2708:47;2765:9;2781:1;2777;:5;;;;:::i;:::-;2765:17;;2810:1;2805;2801;:5;;;;:::i;:::-;:10;2793:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2867:1;2860:8;;;2630: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;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:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:116::-;6248:21;6263:5;6248:21;:::i;:::-;6241:5;6238:32;6228:60;;6284:1;6281;6274:12;6228:60;6178:116;:::o;6300:133::-;6343:5;6381:6;6368:20;6359:29;;6397:30;6421:5;6397:30;:::i;:::-;6300:133;;;;:::o;6439:323::-;6495:6;6544:2;6532:9;6523:7;6519:23;6515:32;6512:119;;;6550:79;;:::i;:::-;6512:119;6670:1;6695:50;6737:7;6728:6;6717:9;6713:22;6695:50;:::i;:::-;6685:60;;6641:114;6439:323;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:117::-;7547:1;7544;7537:12;7561:117;7670:1;7667;7660:12;7684:117;7793:1;7790;7783:12;7824:568;7897:8;7907:6;7957:3;7950:4;7942:6;7938:17;7934:27;7924:122;;7965:79;;:::i;:::-;7924:122;8078:6;8065:20;8055:30;;8108:18;8100:6;8097:30;8094:117;;;8130:79;;:::i;:::-;8094:117;8244:4;8236:6;8232:17;8220:29;;8298:3;8290:4;8282:6;8278:17;8268:8;8264:32;8261:41;8258:128;;;8305:79;;:::i;:::-;8258:128;7824:568;;;;;:::o;8398:698::-;8490:6;8498;8506;8555:2;8543:9;8534:7;8530:23;8526:32;8523:119;;;8561:79;;:::i;:::-;8523:119;8709:1;8698:9;8694:17;8681:31;8739:18;8731:6;8728:30;8725:117;;;8761:79;;:::i;:::-;8725:117;8874:80;8946:7;8937:6;8926:9;8922:22;8874:80;:::i;:::-;8856:98;;;;8652:312;9003:2;9029:50;9071:7;9062:6;9051:9;9047:22;9029:50;:::i;:::-;9019:60;;8974:115;8398:698;;;;;:::o;9102:474::-;9170:6;9178;9227:2;9215:9;9206:7;9202:23;9198:32;9195:119;;;9233:79;;:::i;:::-;9195:119;9353:1;9378:53;9423:7;9414:6;9403:9;9399:22;9378:53;:::i;:::-;9368:63;;9324:117;9480:2;9506:53;9551:7;9542:6;9531:9;9527:22;9506:53;:::i;:::-;9496:63;;9451:118;9102:474;;;;;:::o;9582:182::-;9722:34;9718:1;9710:6;9706:14;9699:58;9582:182;:::o;9770:366::-;9912:3;9933:67;9997:2;9992:3;9933:67;:::i;:::-;9926:74;;10009:93;10098:3;10009:93;:::i;:::-;10127:2;10122:3;10118:12;10111:19;;9770:366;;;:::o;10142:419::-;10308:4;10346:2;10335:9;10331:18;10323:26;;10395:9;10389:4;10385:20;10381:1;10370:9;10366:17;10359:47;10423:131;10549:4;10423:131;:::i;:::-;10415:139;;10142:419;;;:::o;10567:180::-;10615:77;10612:1;10605:88;10712:4;10709:1;10702:15;10736:4;10733:1;10726:15;10753:180;10801:77;10798:1;10791:88;10898:4;10895:1;10888:15;10922:4;10919:1;10912:15;10939:233;10978:3;11001:24;11019:5;11001:24;:::i;:::-;10992:33;;11047:66;11040:5;11037:77;11034:103;;11117:18;;:::i;:::-;11034:103;11164:1;11157:5;11153:13;11146:20;;10939:233;;;:::o;11178:225::-;11318:34;11314:1;11306:6;11302:14;11295:58;11387:8;11382:2;11374:6;11370:15;11363:33;11178:225;:::o;11409:366::-;11551:3;11572:67;11636:2;11631:3;11572:67;:::i;:::-;11565:74;;11648:93;11737:3;11648:93;:::i;:::-;11766:2;11761:3;11757:12;11750:19;;11409:366;;;:::o;11781:419::-;11947:4;11985:2;11974:9;11970:18;11962:26;;12034:9;12028:4;12024:20;12020:1;12009:9;12005:17;11998:47;12062:131;12188:4;12062:131;:::i;:::-;12054:139;;11781:419;;;:::o;12206:223::-;12346:34;12342:1;12334:6;12330:14;12323:58;12415:6;12410:2;12402:6;12398:15;12391:31;12206:223;:::o;12435:366::-;12577:3;12598:67;12662:2;12657:3;12598:67;:::i;:::-;12591:74;;12674:93;12763:3;12674:93;:::i;:::-;12792:2;12787:3;12783:12;12776:19;;12435:366;;;:::o;12807:419::-;12973:4;13011:2;13000:9;12996:18;12988:26;;13060:9;13054:4;13050:20;13046:1;13035:9;13031:17;13024:47;13088:131;13214:4;13088:131;:::i;:::-;13080:139;;12807:419;;;:::o;13232:221::-;13372:34;13368:1;13360:6;13356:14;13349:58;13441:4;13436:2;13428:6;13424:15;13417:29;13232:221;:::o;13459:366::-;13601:3;13622:67;13686:2;13681:3;13622:67;:::i;:::-;13615:74;;13698:93;13787:3;13698:93;:::i;:::-;13816:2;13811:3;13807:12;13800:19;;13459:366;;;:::o;13831:419::-;13997:4;14035:2;14024:9;14020:18;14012:26;;14084:9;14078:4;14074:20;14070:1;14059:9;14055:17;14048:47;14112:131;14238:4;14112:131;:::i;:::-;14104:139;;13831:419;;;:::o;14256:224::-;14396:34;14392:1;14384:6;14380:14;14373:58;14465:7;14460:2;14452:6;14448:15;14441:32;14256:224;:::o;14486:366::-;14628:3;14649:67;14713:2;14708:3;14649:67;:::i;:::-;14642:74;;14725:93;14814:3;14725:93;:::i;:::-;14843:2;14838:3;14834:12;14827:19;;14486:366;;;:::o;14858:419::-;15024:4;15062:2;15051:9;15047:18;15039:26;;15111:9;15105:4;15101:20;15097:1;15086:9;15082:17;15075:47;15139:131;15265:4;15139:131;:::i;:::-;15131:139;;14858:419;;;:::o;15283:222::-;15423:34;15419:1;15411:6;15407:14;15400:58;15492:5;15487:2;15479:6;15475:15;15468:30;15283:222;:::o;15511:366::-;15653:3;15674:67;15738:2;15733:3;15674:67;:::i;:::-;15667:74;;15750:93;15839:3;15750:93;:::i;:::-;15868:2;15863:3;15859:12;15852:19;;15511:366;;;:::o;15883:419::-;16049:4;16087:2;16076:9;16072:18;16064:26;;16136:9;16130:4;16126:20;16122:1;16111:9;16107:17;16100:47;16164:131;16290:4;16164:131;:::i;:::-;16156:139;;15883:419;;;:::o;16308:228::-;16448:34;16444:1;16436:6;16432:14;16425:58;16517:11;16512:2;16504:6;16500:15;16493:36;16308:228;:::o;16542:366::-;16684:3;16705:67;16769:2;16764:3;16705:67;:::i;:::-;16698:74;;16781:93;16870:3;16781:93;:::i;:::-;16899:2;16894:3;16890:12;16883:19;;16542:366;;;:::o;16914:419::-;17080:4;17118:2;17107:9;17103:18;17095:26;;17167:9;17161:4;17157:20;17153:1;17142:9;17138:17;17131:47;17195:131;17321:4;17195:131;:::i;:::-;17187:139;;16914:419;;;:::o;17339:250::-;17479:34;17475:1;17467:6;17463:14;17456:58;17548:33;17543:2;17535:6;17531:15;17524:58;17339:250;:::o;17595:366::-;17737:3;17758:67;17822:2;17817:3;17758:67;:::i;:::-;17751:74;;17834:93;17923:3;17834:93;:::i;:::-;17952:2;17947:3;17943:12;17936:19;;17595:366;;;:::o;17967:419::-;18133:4;18171:2;18160:9;18156:18;18148:26;;18220:9;18214:4;18210:20;18206:1;18195:9;18191:17;18184:47;18248:131;18374:4;18248:131;:::i;:::-;18240:139;;17967:419;;;:::o;18392:178::-;18532:30;18528:1;18520:6;18516:14;18509:54;18392:178;:::o;18576:366::-;18718:3;18739:67;18803:2;18798:3;18739:67;:::i;:::-;18732:74;;18815:93;18904:3;18815:93;:::i;:::-;18933:2;18928:3;18924:12;18917:19;;18576:366;;;:::o;18948:419::-;19114:4;19152:2;19141:9;19137:18;19129:26;;19201:9;19195:4;19191:20;19187:1;19176:9;19172:17;19165:47;19229:131;19355:4;19229:131;:::i;:::-;19221:139;;18948:419;;;:::o;19373:191::-;19413:3;19432:20;19450:1;19432:20;:::i;:::-;19427:25;;19466:20;19484:1;19466:20;:::i;:::-;19461:25;;19509:1;19506;19502:9;19495:16;;19530:3;19527:1;19524:10;19521:36;;;19537:18;;:::i;:::-;19521:36;19373:191;;;;:::o;19570:222::-;19710:34;19706:1;19698:6;19694:14;19687:58;19779:5;19774:2;19766:6;19762:15;19755:30;19570:222;:::o;19798:366::-;19940:3;19961:67;20025:2;20020:3;19961:67;:::i;:::-;19954:74;;20037:93;20126:3;20037:93;:::i;:::-;20155:2;20150:3;20146:12;20139:19;;19798:366;;;:::o;20170:419::-;20336:4;20374:2;20363:9;20359:18;20351:26;;20423:9;20417:4;20413:20;20409:1;20398:9;20394:17;20387:47;20451:131;20577:4;20451:131;:::i;:::-;20443:139;;20170:419;;;:::o;20595:194::-;20635:4;20655:20;20673:1;20655:20;:::i;:::-;20650:25;;20689:20;20707:1;20689:20;:::i;:::-;20684:25;;20733:1;20730;20726:9;20718:17;;20757:1;20751:4;20748:11;20745:37;;;20762:18;;:::i;:::-;20745:37;20595:194;;;;:::o;20795:180::-;20843:77;20840:1;20833:88;20940:4;20937:1;20930:15;20964:4;20961:1;20954:15;20981:185;21021:1;21038:20;21056:1;21038:20;:::i;:::-;21033:25;;21072:20;21090:1;21072:20;:::i;:::-;21067:25;;21111:1;21101:35;;21116:18;;:::i;:::-;21101:35;21158:1;21155;21151:9;21146:14;;20981:185;;;;:::o;21172:229::-;21312:34;21308:1;21300:6;21296:14;21289:58;21381:12;21376:2;21368:6;21364:15;21357:37;21172:229;:::o;21407:366::-;21549:3;21570:67;21634:2;21629:3;21570:67;:::i;:::-;21563:74;;21646:93;21735:3;21646:93;:::i;:::-;21764:2;21759:3;21755:12;21748:19;;21407:366;;;:::o;21779:419::-;21945:4;21983:2;21972:9;21968:18;21960:26;;22032:9;22026:4;22022:20;22018:1;22007:9;22003:17;21996:47;22060:131;22186:4;22060:131;:::i;:::-;22052:139;;21779:419;;;:::o;22204:180::-;22252:77;22249:1;22242:88;22349:4;22346:1;22339:15;22373:4;22370:1;22363:15;22390:143;22447:5;22478:6;22472:13;22463:22;;22494:33;22521:5;22494:33;:::i;:::-;22390:143;;;;:::o;22539:351::-;22609:6;22658:2;22646:9;22637:7;22633:23;22629:32;22626:119;;;22664:79;;:::i;:::-;22626:119;22784:1;22809:64;22865:7;22856:6;22845:9;22841:22;22809:64;:::i;:::-;22799:74;;22755:128;22539:351;;;;:::o;22896:85::-;22941:7;22970:5;22959:16;;22896:85;;;:::o;22987:158::-;23045:9;23078:61;23096:42;23105:32;23131:5;23105:32;:::i;:::-;23096:42;:::i;:::-;23078:61;:::i;:::-;23065:74;;22987:158;;;:::o;23151:147::-;23246:45;23285:5;23246:45;:::i;:::-;23241:3;23234:58;23151:147;;:::o;23304:114::-;23371:6;23405:5;23399:12;23389:22;;23304:114;;;:::o;23424:184::-;23523:11;23557:6;23552:3;23545:19;23597:4;23592:3;23588:14;23573:29;;23424:184;;;;:::o;23614:132::-;23681:4;23704:3;23696:11;;23734:4;23729:3;23725:14;23717:22;;23614:132;;;:::o;23752:108::-;23829:24;23847:5;23829:24;:::i;:::-;23824:3;23817:37;23752:108;;:::o;23866:179::-;23935:10;23956:46;23998:3;23990:6;23956:46;:::i;:::-;24034:4;24029:3;24025:14;24011:28;;23866:179;;;;:::o;24051:113::-;24121:4;24153;24148:3;24144:14;24136:22;;24051:113;;;:::o;24200:732::-;24319:3;24348:54;24396:5;24348:54;:::i;:::-;24418:86;24497:6;24492:3;24418:86;:::i;:::-;24411:93;;24528:56;24578:5;24528:56;:::i;:::-;24607:7;24638:1;24623:284;24648:6;24645:1;24642:13;24623:284;;;24724:6;24718:13;24751:63;24810:3;24795:13;24751:63;:::i;:::-;24744:70;;24837:60;24890:6;24837:60;:::i;:::-;24827:70;;24683:224;24670:1;24667;24663:9;24658:14;;24623:284;;;24627:14;24923:3;24916:10;;24324:608;;;24200:732;;;;:::o;24938:831::-;25201:4;25239:3;25228:9;25224:19;25216:27;;25253:71;25321:1;25310:9;25306:17;25297:6;25253:71;:::i;:::-;25334:80;25410:2;25399:9;25395:18;25386:6;25334:80;:::i;:::-;25461:9;25455:4;25451:20;25446:2;25435:9;25431:18;25424:48;25489:108;25592:4;25583:6;25489:108;:::i;:::-;25481:116;;25607:72;25675:2;25664:9;25660:18;25651:6;25607:72;:::i;:::-;25689:73;25757:3;25746:9;25742:19;25733:6;25689:73;:::i;:::-;24938:831;;;;;;;;:::o;25775:177::-;25915:29;25911:1;25903:6;25899:14;25892:53;25775:177;:::o;25958:366::-;26100:3;26121:67;26185:2;26180:3;26121:67;:::i;:::-;26114:74;;26197:93;26286:3;26197:93;:::i;:::-;26315:2;26310:3;26306:12;26299:19;;25958:366;;;:::o;26330:419::-;26496:4;26534:2;26523:9;26519:18;26511:26;;26583:9;26577:4;26573:20;26569:1;26558:9;26554:17;26547:47;26611:131;26737:4;26611:131;:::i;:::-;26603:139;;26330:419;;;:::o;26755:410::-;26795:7;26818:20;26836:1;26818:20;:::i;:::-;26813:25;;26852:20;26870:1;26852:20;:::i;:::-;26847:25;;26907:1;26904;26900:9;26929:30;26947:11;26929:30;:::i;:::-;26918:41;;27108:1;27099:7;27095:15;27092:1;27089:22;27069:1;27062:9;27042:83;27019:139;;27138:18;;:::i;:::-;27019:139;26803:362;26755:410;;;;:::o;27171:220::-;27311:34;27307:1;27299:6;27295:14;27288:58;27380:3;27375:2;27367:6;27363:15;27356:28;27171:220;:::o;27397:366::-;27539:3;27560:67;27624:2;27619:3;27560:67;:::i;:::-;27553:74;;27636:93;27725:3;27636:93;:::i;:::-;27754:2;27749:3;27745:12;27738:19;;27397:366;;;:::o;27769:419::-;27935:4;27973:2;27962:9;27958:18;27950:26;;28022:9;28016:4;28012:20;28008:1;27997:9;27993:17;27986:47;28050:131;28176:4;28050:131;:::i;:::-;28042:139;;27769:419;;;:::o

Swarm Source

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