ETH Price: $2,443.79 (-0.30%)

Token

1 (ONE)
 

Overview

Max Total Supply

1 ONE

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000001 ONE

Value
$0.00
0x146f1175b6abc0dbc17cf7c1d674328253867404
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:
OneToken

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-06-12
*/

/**


░░███╗░░
░████║░░
██╔██║░░
╚═╝██║░░
███████╗
╚══════╝

Total Supply: 1

It all adds up to 1
One represents the singularity of the universe

Website: https://www.onetoken.vip

Twitter: https://twitter.com/OneERC20

Telegram: https://t.me/OneERC20TG

*********

**/


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

 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address internal _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 OneToken  is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "1";
    string private constant _symbol = "ONE";
    uint8 private constant _decimals = 18;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromMax;
    uint256 private constant MAX = ~uint256(0);

    uint256 private constant _tTotal = 1 * 10**18;

    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _taxFeeOnBuy = 25;  
    uint256 private _taxFeeOnSell = 30;
 
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    address payable private _marketingAddress = payable(0x930140EEa0866B62b73c3d46674226F2eDA40101);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    address private lpLock = 0x663A5C229c09b049E36dCc11a9B0d4a8Eb9db214;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(100).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
 
    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[_marketingAddress] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromFee[lpLock] = true;

        _isExcludedFromMax[owner()] = true;
        _isExcludedFromMax[address(this)] = true;
        _isExcludedFromMax[_marketingAddress] = true;
        _isExcludedFromMax[address(_uniswapV2Router)] = true;
        _isExcludedFromMax[lpLock] = true; 


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

    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_taxFee == 0) return;
 
        _previoustaxFee = _taxFee;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _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(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair && !_isExcludedFromMax[to] && !_isExcludedFromMax[from]) {
                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)) {
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require( _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unsetBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
   function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 tTransferAmount,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        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);
    }
 
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tTeam) =
            _getTValues(tAmount, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount) =
            _getRValues(tAmount, tTeam, currentRate);
        return (rAmount, rTransferAmount, tTransferAmount, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256
        )
    {
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tTeam);
        return (tTransferAmount, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTeam);
        return (rAmount, rTransferAmount);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public {
        require( _msgSender() == _marketingAddress);
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        require(amountPercent>0);
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unsetBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000b3a565b6000196200002b919062000ba1565b6007556019600855601e600955600954600a55600a54600b5573930140eea0866b62b73c3d46674226f2eda40101600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073663a5c229c09b049e36dcc11a9b0d4a8eb9db214601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060156101000a81548160ff0219169083151502179055506001601060166101000a81548160ff0219169083151502179055506200016160646200014d6064670de0b6b3a76400006200099360201b620012c81790919060201c565b62000a1660201b620013421790919060201c565b601155620001a160646200018d6002670de0b6b3a76400006200099360201b620012c81790919060201c565b62000a1660201b620013421790919060201c565b601255620001e26103e8620001ce6001670de0b6b3a76400006200099360201b620012c81790919060201c565b62000a1660201b620013421790919060201c565b601355348015620001f257600080fd5b5060006200020562000a6860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002ba62000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c4919062000c46565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200042c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000452919062000c46565b6040518363ffffffff1660e01b81526004016200047192919062000c89565b6020604051808303816000875af115801562000491573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b7919062000c46565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200050d62000a7060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006200071862000a7060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200091d62000a6860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a764000060405162000984919062000cc7565b60405180910390a35062000ebd565b6000808303620009a7576000905062000a10565b60008284620009b7919062000ce4565b9050828482620009c8919062000d2f565b1462000a0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a029062000dee565b60405180910390fd5b809150505b92915050565b600062000a6083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a9960201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000ae3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ada919062000e99565b60405180910390fd5b506000838562000af4919062000d2f565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000b478262000b01565b915062000b548362000b01565b92508262000b675762000b6662000b0b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bae8262000b01565b915062000bbb8362000b01565b925082820390508181111562000bd65762000bd562000b72565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c0e8262000be1565b9050919050565b62000c208162000c01565b811462000c2c57600080fd5b50565b60008151905062000c408162000c15565b92915050565b60006020828403121562000c5f5762000c5e62000bdc565b5b600062000c6f8482850162000c2f565b91505092915050565b62000c838162000c01565b82525050565b600060408201905062000ca0600083018562000c78565b62000caf602083018462000c78565b9392505050565b62000cc18162000b01565b82525050565b600060208201905062000cde600083018462000cb6565b92915050565b600062000cf18262000b01565b915062000cfe8362000b01565b925082820262000d0e8162000b01565b9150828204841483151762000d285762000d2762000b72565b5b5092915050565b600062000d3c8262000b01565b915062000d498362000b01565b92508262000d5c5762000d5b62000b0b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000dd660218362000d67565b915062000de38262000d78565b604082019050919050565b6000602082019050818103600083015262000e098162000dc7565b9050919050565b600081519050919050565b60005b8381101562000e3b57808201518184015260208101905062000e1e565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e658262000e10565b62000e71818562000d67565b935062000e8381856020860162000e1b565b62000e8e8162000e47565b840191505092915050565b6000602082019050818103600083015262000eb5818462000e58565b905092915050565b6137f98062000ecd6000396000f3fe6080604052600436106101a05760003560e01c8063751039fc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd801461059d578063dd62ed3e146105b4578063ea1644d5146105f1578063f2fde38b1461061a576101a7565b8063a9059cbb146104fa578063b515566a14610537578063bfd7928414610560576101a7565b80638f70ccf7116100c65780638f70ccf7146104525780638f9a55c01461047b57806395d89b41146104a657806398a5c315146104d1576101a7565b8063751039fc146103e55780637d1db4a5146103fc5780638da5cb5b14610427576101a7565b80632fd689e31161015957806352f7c9881161013357806352f7c988146103515780636fc3eaec1461037a57806370a0823114610391578063715018a6146103ce576101a7565b80632fd689e3146102d0578063313ce567146102fb57806349bd5a5e14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632b89628b146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610643565b6040516101ce91906127dc565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906128a6565b610680565b60405161020b9190612901565b60405180910390f35b34801561022057600080fd5b5061022961069e565b604051610236919061297b565b60405180910390f35b34801561024b57600080fd5b506102546106c4565b60405161026191906129a5565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906129c0565b6106d4565b60405161029e9190612901565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a13565b6107ad565b005b3480156102dc57600080fd5b506102e561089d565b6040516102f291906129a5565b60405180910390f35b34801561030757600080fd5b506103106108a3565b60405161031d9190612a5c565b60405180910390f35b34801561033257600080fd5b5061033b6108ac565b6040516103489190612a86565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190612aa1565b6108d2565b005b34801561038657600080fd5b5061038f610979565b005b34801561039d57600080fd5b506103b860048036038101906103b39190612a13565b6109eb565b6040516103c591906129a5565b60405180910390f35b3480156103da57600080fd5b506103e3610a3c565b005b3480156103f157600080fd5b506103fa610b8f565b005b34801561040857600080fd5b50610411610c44565b60405161041e91906129a5565b60405180910390f35b34801561043357600080fd5b5061043c610c4a565b6040516104499190612a86565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612b0d565b610c73565b005b34801561048757600080fd5b50610490610d25565b60405161049d91906129a5565b60405180910390f35b3480156104b257600080fd5b506104bb610d2b565b6040516104c891906127dc565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612b3a565b610d68565b005b34801561050657600080fd5b50610521600480360381019061051c91906128a6565b610dd3565b60405161052e9190612901565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612caf565b610df1565b005b34801561056c57600080fd5b5061058760048036038101906105829190612a13565b610f1b565b6040516105949190612901565b60405180910390f35b3480156105a957600080fd5b506105b2610f3b565b005b3480156105c057600080fd5b506105db60048036038101906105d69190612cf8565b610fb5565b6040516105e891906129a5565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612b3a565b61103c565b005b34801561062657600080fd5b50610641600480360381019061063c9190612a13565b611107565b005b60606040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250905090565b600061069461068d61138c565b8484611394565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006106e184848461155d565b6107a2846106ed61138c565b61079d8560405180606001604052806028815260200161379c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075361138c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e399092919063ffffffff16565b611394565b600190509392505050565b6107b561138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990612d84565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b60006012905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108da61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612d84565b60405180910390fd5b81600881905550806009819055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ba61138c565b73ffffffffffffffffffffffffffffffffffffffff16146109da57600080fd5b60004790506109e881611e9d565b50565b6000610a35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f09565b9050919050565b610a4461138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612d84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9761138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90612d84565b60405180910390fd5b670de0b6b3a7640000601181905550670de0b6b3a7640000601281905550565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c7b61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff90612d84565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60125481565b60606040518060400160405280600381526020017f4f4e450000000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da961138c565b73ffffffffffffffffffffffffffffffffffffffff1614610dc957600080fd5b8060138190555050565b6000610de7610de061138c565b848461155d565b6001905092915050565b610df961138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d90612d84565b60405180910390fd5b60005b8151811015610f17576001600c6000848481518110610eab57610eaa612da4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0f90612e02565b915050610e89565b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7c61138c565b73ffffffffffffffffffffffffffffffffffffffff1614610f9c57600080fd5b6000610fa7306109eb565b9050610fb281611f77565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61104461138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612d84565b60405180910390fd5b600081116110de57600080fd5b606481670de0b6b3a76400006110f49190612e4a565b6110fe9190612ebb565b60128190555050565b61110f61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612d84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612f5e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036112da576000905061133c565b600082846112e89190612e4a565b90508284826112f79190612ebb565b14611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612ff0565b60405180910390fd5b809150505b92915050565b600061138483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121f0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613082565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613114565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155091906129a5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c3906131a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290613238565b60405180910390fd5b6000811161167e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611675906132ca565b60405180910390fd5b611686610c4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116f457506116c4610c4a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57601060149054906101000a900460ff1661178357611715610c4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611782576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117799061335c565b60405180910390fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118275750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d906133ee565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561190e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119645750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119c15760125481611976846109eb565b611980919061340e565b106119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b7906134b4565b60405180910390fd5b5b60006119cc306109eb565b90506000601354821015905060115482106119e75760115491505b808015611a015750601060159054906101000a900460ff16155b8015611a5b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a735750601060169054906101000a900460ff165b8015611ac95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b1f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b4757611b2d82611f77565b60004790506000811115611b4557611b4447611e9d565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bf15750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ca45750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ca35750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cb25760009050611e27565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d5d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d6c57600854600a819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e175750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e2657600954600a819055505b5b611e3384848484612253565b50505050565b6000838311158290611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7891906127dc565b60405180910390fd5b5060008385611e9091906134d4565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f05573d6000803e3d6000fd5b5050565b6000600754821115611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f479061357a565b60405180910390fd5b6000611f5a612280565b9050611f6f818461134290919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611faf57611fae612b6c565b5b604051908082528060200260200182016040528015611fdd5781602001602082028036833780820191505090505b5090503081600081518110611ff557611ff4612da4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c091906135af565b816001815181106120d4576120d3612da4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611394565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161219f9594939291906136d5565b600060405180830381600087803b1580156121b957600080fd5b505af11580156121cd573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083118290612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e91906127dc565b60405180910390fd5b50600083856122469190612ebb565b9050809150509392505050565b80612261576122606122ab565b5b61226c8484846122ca565b8061227a57612279612482565b5b50505050565b600080600061228d61248d565b915091506122a4818361134290919063ffffffff16565b9250505090565b6000600a5403156122c857600a54600b819055506000600a819055505b565b6000806000806122d9856124ec565b935093509350935061233384600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253b90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c883600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258590919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612414816125e3565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161247191906129a5565b60405180910390a350505050505050565b600b54600a81905550565b600080600060075490506000670de0b6b3a764000090506124c1670de0b6b3a764000060075461134290919063ffffffff16565b8210156124df57600754670de0b6b3a76400009350935050506124e8565b81819350935050505b9091565b60008060008060008061250187600a546126a0565b91509150600061250f612280565b905060008061251f8a85856126f3565b9150915081818686985098509850985050505050509193509193565b600061257d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e39565b905092915050565b6000808284612594919061340e565b9050838110156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061377b565b60405180910390fd5b8091505092915050565b60006125ed612280565b9050600061260482846112c890919063ffffffff16565b905061265881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006126cb60646126bd86886112c890919063ffffffff16565b61134290919063ffffffff16565b905060006126e2828761253b90919063ffffffff16565b905080829350935050509250929050565b600080600061270b84876112c890919063ffffffff16565b9050600061272285876112c890919063ffffffff16565b90506000612739828461253b90919063ffffffff16565b9050828194509450505050935093915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278657808201518184015260208101905061276b565b60008484015250505050565b6000601f19601f8301169050919050565b60006127ae8261274c565b6127b88185612757565b93506127c8818560208601612768565b6127d181612792565b840191505092915050565b600060208201905081810360008301526127f681846127a3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283d82612812565b9050919050565b61284d81612832565b811461285857600080fd5b50565b60008135905061286a81612844565b92915050565b6000819050919050565b61288381612870565b811461288e57600080fd5b50565b6000813590506128a08161287a565b92915050565b600080604083850312156128bd576128bc612808565b5b60006128cb8582860161285b565b92505060206128dc85828601612891565b9150509250929050565b60008115159050919050565b6128fb816128e6565b82525050565b600060208201905061291660008301846128f2565b92915050565b6000819050919050565b600061294161293c61293784612812565b61291c565b612812565b9050919050565b600061295382612926565b9050919050565b600061296582612948565b9050919050565b6129758161295a565b82525050565b6000602082019050612990600083018461296c565b92915050565b61299f81612870565b82525050565b60006020820190506129ba6000830184612996565b92915050565b6000806000606084860312156129d9576129d8612808565b5b60006129e78682870161285b565b93505060206129f88682870161285b565b9250506040612a0986828701612891565b9150509250925092565b600060208284031215612a2957612a28612808565b5b6000612a378482850161285b565b91505092915050565b600060ff82169050919050565b612a5681612a40565b82525050565b6000602082019050612a716000830184612a4d565b92915050565b612a8081612832565b82525050565b6000602082019050612a9b6000830184612a77565b92915050565b60008060408385031215612ab857612ab7612808565b5b6000612ac685828601612891565b9250506020612ad785828601612891565b9150509250929050565b612aea816128e6565b8114612af557600080fd5b50565b600081359050612b0781612ae1565b92915050565b600060208284031215612b2357612b22612808565b5b6000612b3184828501612af8565b91505092915050565b600060208284031215612b5057612b4f612808565b5b6000612b5e84828501612891565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ba482612792565b810181811067ffffffffffffffff82111715612bc357612bc2612b6c565b5b80604052505050565b6000612bd66127fe565b9050612be28282612b9b565b919050565b600067ffffffffffffffff821115612c0257612c01612b6c565b5b602082029050602081019050919050565b600080fd5b6000612c2b612c2684612be7565b612bcc565b90508083825260208201905060208402830185811115612c4e57612c4d612c13565b5b835b81811015612c775780612c63888261285b565b845260208401935050602081019050612c50565b5050509392505050565b600082601f830112612c9657612c95612b67565b5b8135612ca6848260208601612c18565b91505092915050565b600060208284031215612cc557612cc4612808565b5b600082013567ffffffffffffffff811115612ce357612ce261280d565b5b612cef84828501612c81565b91505092915050565b60008060408385031215612d0f57612d0e612808565b5b6000612d1d8582860161285b565b9250506020612d2e8582860161285b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d6e602083612757565b9150612d7982612d38565b602082019050919050565b60006020820190508181036000830152612d9d81612d61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e0d82612870565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3f57612e3e612dd3565b5b600182019050919050565b6000612e5582612870565b9150612e6083612870565b9250828202612e6e81612870565b91508282048414831517612e8557612e84612dd3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ec682612870565b9150612ed183612870565b925082612ee157612ee0612e8c565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f48602683612757565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fda602183612757565b9150612fe582612f7e565b604082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061306c602483612757565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fe602283612757565b9150613109826130a2565b604082019050919050565b6000602082019050818103600083015261312d816130f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613190602583612757565b915061319b82613134565b604082019050919050565b600060208201905081810360008301526131bf81613183565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613222602383612757565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132b4602983612757565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613346603f83612757565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006133d8602383612757565b91506133e38261337c565b604082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b600061341982612870565b915061342483612870565b925082820190508082111561343c5761343b612dd3565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061349e602383612757565b91506134a982613442565b604082019050919050565b600060208201905081810360008301526134cd81613491565b9050919050565b60006134df82612870565b91506134ea83612870565b925082820390508181111561350257613501612dd3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613564602a83612757565b915061356f82613508565b604082019050919050565b6000602082019050818103600083015261359381613557565b9050919050565b6000815190506135a981612844565b92915050565b6000602082840312156135c5576135c4612808565b5b60006135d38482850161359a565b91505092915050565b6000819050919050565b60006136016135fc6135f7846135dc565b61291c565b612870565b9050919050565b613611816135e6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61364c81612832565b82525050565b600061365e8383613643565b60208301905092915050565b6000602082019050919050565b600061368282613617565b61368c8185613622565b935061369783613633565b8060005b838110156136c85781516136af8882613652565b97506136ba8361366a565b92505060018101905061369b565b5085935050505092915050565b600060a0820190506136ea6000830188612996565b6136f76020830187613608565b81810360408301526137098186613677565b90506137186060830185612a77565b6137256080830184612996565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613765601b83612757565b91506137708261372f565b602082019050919050565b6000602082019050818103600083015261379481613758565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d97bb4dae160c7d984f8d9d4e6f265e0cf1c45b0d09684e4be8b14ec72fd64064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063751039fc116100ec578063a9059cbb1161008a578063c3c8cd8011610064578063c3c8cd801461059d578063dd62ed3e146105b4578063ea1644d5146105f1578063f2fde38b1461061a576101a7565b8063a9059cbb146104fa578063b515566a14610537578063bfd7928414610560576101a7565b80638f70ccf7116100c65780638f70ccf7146104525780638f9a55c01461047b57806395d89b41146104a657806398a5c315146104d1576101a7565b8063751039fc146103e55780637d1db4a5146103fc5780638da5cb5b14610427576101a7565b80632fd689e31161015957806352f7c9881161013357806352f7c988146103515780636fc3eaec1461037a57806370a0823114610391578063715018a6146103ce576101a7565b80632fd689e3146102d0578063313ce567146102fb57806349bd5a5e14610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632b89628b146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610643565b6040516101ce91906127dc565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906128a6565b610680565b60405161020b9190612901565b60405180910390f35b34801561022057600080fd5b5061022961069e565b604051610236919061297b565b60405180910390f35b34801561024b57600080fd5b506102546106c4565b60405161026191906129a5565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906129c0565b6106d4565b60405161029e9190612901565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612a13565b6107ad565b005b3480156102dc57600080fd5b506102e561089d565b6040516102f291906129a5565b60405180910390f35b34801561030757600080fd5b506103106108a3565b60405161031d9190612a5c565b60405180910390f35b34801561033257600080fd5b5061033b6108ac565b6040516103489190612a86565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190612aa1565b6108d2565b005b34801561038657600080fd5b5061038f610979565b005b34801561039d57600080fd5b506103b860048036038101906103b39190612a13565b6109eb565b6040516103c591906129a5565b60405180910390f35b3480156103da57600080fd5b506103e3610a3c565b005b3480156103f157600080fd5b506103fa610b8f565b005b34801561040857600080fd5b50610411610c44565b60405161041e91906129a5565b60405180910390f35b34801561043357600080fd5b5061043c610c4a565b6040516104499190612a86565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612b0d565b610c73565b005b34801561048757600080fd5b50610490610d25565b60405161049d91906129a5565b60405180910390f35b3480156104b257600080fd5b506104bb610d2b565b6040516104c891906127dc565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f39190612b3a565b610d68565b005b34801561050657600080fd5b50610521600480360381019061051c91906128a6565b610dd3565b60405161052e9190612901565b60405180910390f35b34801561054357600080fd5b5061055e60048036038101906105599190612caf565b610df1565b005b34801561056c57600080fd5b5061058760048036038101906105829190612a13565b610f1b565b6040516105949190612901565b60405180910390f35b3480156105a957600080fd5b506105b2610f3b565b005b3480156105c057600080fd5b506105db60048036038101906105d69190612cf8565b610fb5565b6040516105e891906129a5565b60405180910390f35b3480156105fd57600080fd5b5061061860048036038101906106139190612b3a565b61103c565b005b34801561062657600080fd5b50610641600480360381019061063c9190612a13565b611107565b005b60606040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250905090565b600061069461068d61138c565b8484611394565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006106e184848461155d565b6107a2846106ed61138c565b61079d8560405180606001604052806028815260200161379c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061075361138c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e399092919063ffffffff16565b611394565b600190509392505050565b6107b561138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990612d84565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60135481565b60006012905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108da61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90612d84565b60405180910390fd5b81600881905550806009819055505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ba61138c565b73ffffffffffffffffffffffffffffffffffffffff16146109da57600080fd5b60004790506109e881611e9d565b50565b6000610a35600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f09565b9050919050565b610a4461138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac890612d84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b9761138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90612d84565b60405180910390fd5b670de0b6b3a7640000601181905550670de0b6b3a7640000601281905550565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c7b61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cff90612d84565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60125481565b60606040518060400160405280600381526020017f4f4e450000000000000000000000000000000000000000000000000000000000815250905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da961138c565b73ffffffffffffffffffffffffffffffffffffffff1614610dc957600080fd5b8060138190555050565b6000610de7610de061138c565b848461155d565b6001905092915050565b610df961138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7d90612d84565b60405180910390fd5b60005b8151811015610f17576001600c6000848481518110610eab57610eaa612da4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f0f90612e02565b915050610e89565b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f7c61138c565b73ffffffffffffffffffffffffffffffffffffffff1614610f9c57600080fd5b6000610fa7306109eb565b9050610fb281611f77565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61104461138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c890612d84565b60405180910390fd5b600081116110de57600080fd5b606481670de0b6b3a76400006110f49190612e4a565b6110fe9190612ebb565b60128190555050565b61110f61138c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390612d84565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612f5e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008083036112da576000905061133c565b600082846112e89190612e4a565b90508284826112f79190612ebb565b14611337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132e90612ff0565b60405180910390fd5b809150505b92915050565b600061138483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121f0565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fa90613082565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611472576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146990613114565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155091906129a5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c3906131a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290613238565b60405180910390fd5b6000811161167e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611675906132ca565b60405180910390fd5b611686610c4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116f457506116c4610c4a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b4a57601060149054906101000a900460ff1661178357611715610c4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611782576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117799061335c565b60405180910390fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118275750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185d906133ee565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561190e5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119645750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119c15760125481611976846109eb565b611980919061340e565b106119c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b7906134b4565b60405180910390fd5b5b60006119cc306109eb565b90506000601354821015905060115482106119e75760115491505b808015611a015750601060159054906101000a900460ff16155b8015611a5b5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a735750601060169054906101000a900460ff165b8015611ac95750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b1f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b4757611b2d82611f77565b60004790506000811115611b4557611b4447611e9d565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611bf15750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ca45750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ca35750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611cb25760009050611e27565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611d5d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d6c57600854600a819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e175750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e2657600954600a819055505b5b611e3384848484612253565b50505050565b6000838311158290611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7891906127dc565b60405180910390fd5b5060008385611e9091906134d4565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f05573d6000803e3d6000fd5b5050565b6000600754821115611f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f479061357a565b60405180910390fd5b6000611f5a612280565b9050611f6f818461134290919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611faf57611fae612b6c565b5b604051908082528060200260200182016040528015611fdd5781602001602082028036833780820191505090505b5090503081600081518110611ff557611ff4612da4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c091906135af565b816001815181106120d4576120d3612da4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213b30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611394565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161219f9594939291906136d5565b600060405180830381600087803b1580156121b957600080fd5b505af11580156121cd573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b60008083118290612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e91906127dc565b60405180910390fd5b50600083856122469190612ebb565b9050809150509392505050565b80612261576122606122ab565b5b61226c8484846122ca565b8061227a57612279612482565b5b50505050565b600080600061228d61248d565b915091506122a4818361134290919063ffffffff16565b9250505090565b6000600a5403156122c857600a54600b819055506000600a819055505b565b6000806000806122d9856124ec565b935093509350935061233384600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253b90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123c883600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258590919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612414816125e3565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161247191906129a5565b60405180910390a350505050505050565b600b54600a81905550565b600080600060075490506000670de0b6b3a764000090506124c1670de0b6b3a764000060075461134290919063ffffffff16565b8210156124df57600754670de0b6b3a76400009350935050506124e8565b81819350935050505b9091565b60008060008060008061250187600a546126a0565b91509150600061250f612280565b905060008061251f8a85856126f3565b9150915081818686985098509850985050505050509193509193565b600061257d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e39565b905092915050565b6000808284612594919061340e565b9050838110156125d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d09061377b565b60405180910390fd5b8091505092915050565b60006125ed612280565b9050600061260482846112c890919063ffffffff16565b905061265881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461258590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60008060006126cb60646126bd86886112c890919063ffffffff16565b61134290919063ffffffff16565b905060006126e2828761253b90919063ffffffff16565b905080829350935050509250929050565b600080600061270b84876112c890919063ffffffff16565b9050600061272285876112c890919063ffffffff16565b90506000612739828461253b90919063ffffffff16565b9050828194509450505050935093915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278657808201518184015260208101905061276b565b60008484015250505050565b6000601f19601f8301169050919050565b60006127ae8261274c565b6127b88185612757565b93506127c8818560208601612768565b6127d181612792565b840191505092915050565b600060208201905081810360008301526127f681846127a3565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283d82612812565b9050919050565b61284d81612832565b811461285857600080fd5b50565b60008135905061286a81612844565b92915050565b6000819050919050565b61288381612870565b811461288e57600080fd5b50565b6000813590506128a08161287a565b92915050565b600080604083850312156128bd576128bc612808565b5b60006128cb8582860161285b565b92505060206128dc85828601612891565b9150509250929050565b60008115159050919050565b6128fb816128e6565b82525050565b600060208201905061291660008301846128f2565b92915050565b6000819050919050565b600061294161293c61293784612812565b61291c565b612812565b9050919050565b600061295382612926565b9050919050565b600061296582612948565b9050919050565b6129758161295a565b82525050565b6000602082019050612990600083018461296c565b92915050565b61299f81612870565b82525050565b60006020820190506129ba6000830184612996565b92915050565b6000806000606084860312156129d9576129d8612808565b5b60006129e78682870161285b565b93505060206129f88682870161285b565b9250506040612a0986828701612891565b9150509250925092565b600060208284031215612a2957612a28612808565b5b6000612a378482850161285b565b91505092915050565b600060ff82169050919050565b612a5681612a40565b82525050565b6000602082019050612a716000830184612a4d565b92915050565b612a8081612832565b82525050565b6000602082019050612a9b6000830184612a77565b92915050565b60008060408385031215612ab857612ab7612808565b5b6000612ac685828601612891565b9250506020612ad785828601612891565b9150509250929050565b612aea816128e6565b8114612af557600080fd5b50565b600081359050612b0781612ae1565b92915050565b600060208284031215612b2357612b22612808565b5b6000612b3184828501612af8565b91505092915050565b600060208284031215612b5057612b4f612808565b5b6000612b5e84828501612891565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ba482612792565b810181811067ffffffffffffffff82111715612bc357612bc2612b6c565b5b80604052505050565b6000612bd66127fe565b9050612be28282612b9b565b919050565b600067ffffffffffffffff821115612c0257612c01612b6c565b5b602082029050602081019050919050565b600080fd5b6000612c2b612c2684612be7565b612bcc565b90508083825260208201905060208402830185811115612c4e57612c4d612c13565b5b835b81811015612c775780612c63888261285b565b845260208401935050602081019050612c50565b5050509392505050565b600082601f830112612c9657612c95612b67565b5b8135612ca6848260208601612c18565b91505092915050565b600060208284031215612cc557612cc4612808565b5b600082013567ffffffffffffffff811115612ce357612ce261280d565b5b612cef84828501612c81565b91505092915050565b60008060408385031215612d0f57612d0e612808565b5b6000612d1d8582860161285b565b9250506020612d2e8582860161285b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612d6e602083612757565b9150612d7982612d38565b602082019050919050565b60006020820190508181036000830152612d9d81612d61565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e0d82612870565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e3f57612e3e612dd3565b5b600182019050919050565b6000612e5582612870565b9150612e6083612870565b9250828202612e6e81612870565b91508282048414831517612e8557612e84612dd3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ec682612870565b9150612ed183612870565b925082612ee157612ee0612e8c565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f48602683612757565b9150612f5382612eec565b604082019050919050565b60006020820190508181036000830152612f7781612f3b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fda602183612757565b9150612fe582612f7e565b604082019050919050565b6000602082019050818103600083015261300981612fcd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061306c602483612757565b915061307782613010565b604082019050919050565b6000602082019050818103600083015261309b8161305f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130fe602283612757565b9150613109826130a2565b604082019050919050565b6000602082019050818103600083015261312d816130f1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613190602583612757565b915061319b82613134565b604082019050919050565b600060208201905081810360008301526131bf81613183565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613222602383612757565b915061322d826131c6565b604082019050919050565b6000602082019050818103600083015261325181613215565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132b4602983612757565b91506132bf82613258565b604082019050919050565b600060208201905081810360008301526132e3816132a7565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613346603f83612757565b9150613351826132ea565b604082019050919050565b6000602082019050818103600083015261337581613339565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006133d8602383612757565b91506133e38261337c565b604082019050919050565b60006020820190508181036000830152613407816133cb565b9050919050565b600061341982612870565b915061342483612870565b925082820190508082111561343c5761343b612dd3565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061349e602383612757565b91506134a982613442565b604082019050919050565b600060208201905081810360008301526134cd81613491565b9050919050565b60006134df82612870565b91506134ea83612870565b925082820390508181111561350257613501612dd3565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613564602a83612757565b915061356f82613508565b604082019050919050565b6000602082019050818103600083015261359381613557565b9050919050565b6000815190506135a981612844565b92915050565b6000602082840312156135c5576135c4612808565b5b60006135d38482850161359a565b91505092915050565b6000819050919050565b60006136016135fc6135f7846135dc565b61291c565b612870565b9050919050565b613611816135e6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61364c81612832565b82525050565b600061365e8383613643565b60208301905092915050565b6000602082019050919050565b600061368282613617565b61368c8185613622565b935061369783613633565b8060005b838110156136c85781516136af8882613652565b97506136ba8361366a565b92505060018101905061369b565b5085935050505092915050565b600060a0820190506136ea6000830188612996565b6136f76020830187613608565b81810360408301526137098186613677565b90506137186060830185612a77565b6137256080830184612996565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613765601b83612757565b91506137708261372f565b602082019050919050565b6000602082019050818103600083015261379481613758565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203d97bb4dae160c7d984f8d9d4e6f265e0cf1c45b0d09684e4be8b14ec72fd64064736f6c63430008120033

Deployed Bytecode Sourcemap

4484:12272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7074:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8006:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7354:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8208:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13156:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5892:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7262:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5547:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16091:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12774:197;;;;;;;;;;;;;:::i;:::-;;7458:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1958:148;;;;;;;;;;;;;:::i;:::-;;16631:118;;;;;;;;;;;;;:::i;:::-;;5767:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1742:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12457:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5829:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7166:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16262:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7605:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12980:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5351:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12567:198;;;;;;;;;;;;;:::i;:::-;;7813:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16454:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2115:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7074:83;7111:13;7144:5;;;;;;;;;;;;;;;;;7137:12;;7074:83;:::o;8006:193::-;8108:4;8130:39;8139:12;:10;:12::i;:::-;8153:7;8162:6;8130:8;:39::i;:::-;8187:4;8180:11;;8006:193;;;;:::o;5499:41::-;;;;;;;;;;;;;:::o;7354:95::-;7407:7;5088:10;7427:14;;7354:95;:::o;8208:446::-;8340:4;8357:36;8367:6;8375:9;8386:6;8357:9;:36::i;:::-;8404:220;8427:6;8448:12;:10;:12::i;:::-;8475:138;8531:6;8475:138;;;;;;;;;;;;;;;;;:11;:19;8487:6;8475:19;;;;;;;;;;;;;;;:33;8495:12;:10;:12::i;:::-;8475:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8404:8;:220::i;:::-;8642:4;8635:11;;8208:446;;;;;:::o;13156:90::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13233:5:::1;13218:4;:12;13223:6;13218:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13156:90:::0;:::o;5892:61::-;;;;:::o;7262:83::-;7303:5;4700:2;7321:16;;7262:83;:::o;5547:28::-;;;;;;;;;;;;;:::o;16091:162::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16193:11:::1;16178:12;:26;;;;16231:12;16215:13;:28;;;;16091:162:::0;;:::o;12774:197::-;12841:17;;;;;;;;;;;12825:33;;:12;:10;:12::i;:::-;:33;;;12816:43;;;;;;12870:26;12899:21;12870:50;;12931:32;12944:18;12931:12;:32::i;:::-;12805:166;12774:197::o;7458:138::-;7524:7;7551:37;7571:7;:16;7579:7;7571:16;;;;;;;;;;;;;;;;7551:19;:37::i;:::-;7544:44;;7458:138;;;:::o;1958:148::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2065:1:::1;2028:40;;2049:6;::::0;::::1;;;;;;;;2028:40;;;;;;;;;;;;2096:1;2079:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1958:148::o:0;16631:118::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5088:10:::1;16684:12;:22;;;;5088:10;16717:14;:24;;;;16631:118::o:0;5767:55::-;;;;:::o;1742:79::-;1780:7;1807:6;;;;;;;;;;;1800:13;;1742:79;:::o;12457:101::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12538:12:::1;12524:11;;:26;;;;;;;;;;;;;;;;;;12457:101:::0;:::o;5829:55::-;;;;:::o;7166:87::-;7205:13;7238:7;;;;;;;;;;;;;;;;;7231:14;;7166:87;:::o;16262:183::-;16368:17;;;;;;;;;;;16352:33;;:12;:10;:12::i;:::-;:33;;;16343:43;;;;;;16419:18;16397:19;:40;;;;16262:183;:::o;7605:199::-;7710:4;7732:42;7742:12;:10;:12::i;:::-;7756:9;7767:6;7732:9;:42::i;:::-;7792:4;7785:11;;7605:199;;;;:::o;12980:167::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13054:9:::1;13049:91;13073:5;:12;13069:1;:16;13049:91;;;13124:4;13107;:14;13112:5;13118:1;13112:8;;;;;;;;:::i;:::-;;;;;;;;13107:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13087:3;;;;;:::i;:::-;;;;13049:91;;;;12980:167:::0;:::o;5351:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12567:198::-;12634:17;;;;;;;;;;;12618:33;;:12;:10;:12::i;:::-;:33;;;12609:43;;;;;;12663:23;12689:24;12707:4;12689:9;:24::i;:::-;12663:50;;12724:33;12741:15;12724:16;:33::i;:::-;12598:167;12567:198::o;7813:184::-;7930:7;7962:11;:18;7974:5;7962:18;;;;;;;;;;;;;;;:27;7981:7;7962:27;;;;;;;;;;;;;;;;7955:34;;7813:184;;;;:::o;16454:169::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16553:1:::1;16539:13;:15;16531:24;;;::::0;::::1;;16612:3;16594:13;5088:10;16584:23;;;;:::i;:::-;16583:32;;;;:::i;:::-;16566:14;:49;;;;16454:169:::0;:::o;2115:244::-;1880:12;:10;:12::i;:::-;1870:22;;:6;;;;;;;;;;:22;;;1862:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2224:1:::1;2204:22;;:8;:22;;::::0;2196:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2314:8;2285:38;;2306:6;::::0;::::1;;;;;;;;2285:38;;;;;;;;;;;;2343:8;2334:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2115:244:::0;:::o;2959:246::-;3017:7;3046:1;3041;:6;3037:47;;3071:1;3064:8;;;;3037:47;3094:9;3110:1;3106;:5;;;;:::i;:::-;3094:17;;3139:1;3134;3130;:5;;;;:::i;:::-;:10;3122:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3196:1;3189:8;;;2959:246;;;;;:::o;3214:132::-;3272:7;3299:39;3303:1;3306;3299:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3292:46;;3214:132;;;;:::o;490:98::-;543:7;570:10;563:17;;490:98;:::o;9226:369::-;9370:1;9353:19;;:5;:19;;;9345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9451:1;9432:21;;:7;:21;;;9424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9533:6;9503:11;:18;9515:5;9503:18;;;;;;;;;;;;;;;:27;9522:7;9503:27;;;;;;;;;;;;;;;:36;;;;9571:7;9555:32;;9564:5;9555:32;;;9580:6;9555:32;;;;;;:::i;:::-;;;;;;;;9226:369;;;:::o;9604:2244::-;9742:1;9726:18;;:4;:18;;;9718:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9819:1;9805:16;;:2;:16;;;9797:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9889:1;9880:6;:10;9872:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9962:7;:5;:7::i;:::-;9954:15;;:4;:15;;;;:32;;;;;9979:7;:5;:7::i;:::-;9973:13;;:2;:13;;;;9954:32;9950:1256;;;10044:11;;;;;;;;;;;10039:144;;10092:7;:5;:7::i;:::-;10084:15;;:4;:15;;;10076:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10039:144;10222:4;:10;10227:4;10222:10;;;;;;;;;;;;;;;;;;;;;;;;;10221:11;:24;;;;;10237:4;:8;10242:2;10237:8;;;;;;;;;;;;;;;;;;;;;;;;;10236:9;10221:24;10213:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10312:13;;;;;;;;;;;10306:19;;:2;:19;;;;:46;;;;;10330:18;:22;10349:2;10330:22;;;;;;;;;;;;;;;;;;;;;;;;;10329:23;10306:46;:75;;;;;10357:18;:24;10376:4;10357:24;;;;;;;;;;;;;;;;;;;;;;;;;10356:25;10306:75;10303:202;;;10435:14;;10426:6;10410:13;10420:2;10410:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10402:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10303:202;10522:28;10553:24;10571:4;10553:9;:24::i;:::-;10522:55;;10592:12;10631:19;;10607:20;:43;;10592:58;;10695:12;;10671:20;:36;10668:124;;10764:12;;10741:35;;10668:124;10813:7;:18;;;;;10825:6;;;;;;;;;;;10824:7;10813:18;:43;;;;;10843:13;;;;;;;;;;;10835:21;;:4;:21;;;;10813:43;:58;;;;;10860:11;;;;;;;;;;;10813:58;:87;;;;;10876:18;:24;10895:4;10876:24;;;;;;;;;;;;;;;;;;;;;;;;;10875:25;10813:87;:114;;;;;10905:18;:22;10924:2;10905:22;;;;;;;;;;;;;;;;;;;;;;;;;10904:23;10813:114;10809:386;;;10948:38;10965:20;10948:16;:38::i;:::-;11005:26;11034:21;11005:50;;11099:1;11078:18;:22;11074:106;;;11125:35;11138:21;11125:12;:35::i;:::-;11074:106;10929:266;10809:386;9988:1218;;9950:1256;11220:12;11235:4;11220:19;;11285:18;:24;11304:4;11285:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11313:18;:22;11332:2;11313:22;;;;;;;;;;;;;;;;;;;;;;;;;11285:50;11284:102;;;;11349:13;;;;;;;;;;;11341:21;;:4;:21;;;;:44;;;;;11372:13;;;;;;;;;;;11366:19;;:2;:19;;;;11341:44;11284:102;11280:506;;;11413:5;11403:15;;11280:506;;;11497:13;;;;;;;;;;;11489:21;;:4;:21;;;:55;;;;;11528:15;;;;;;;;;;;11514:30;;:2;:30;;;;11489:55;11486:117;;;11575:12;;11565:7;:22;;;;11486:117;11663:13;;;;;;;;;;;11657:19;;:2;:19;;;:55;;;;;11696:15;;;;;;;;;;;11680:32;;:4;:32;;;;11657:55;11653:119;;;11743:13;;11733:7;:23;;;;11653:119;11280:506;11799:41;11814:4;11820:2;11824:6;11832:7;11799:14;:41::i;:::-;9707:2141;9604:2244;;;:::o;2726:224::-;2846:7;2879:1;2874;:6;;2882:12;2866:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2906:9;2922:1;2918;:5;;;;:::i;:::-;2906:17;;2941:1;2934:8;;;2726:224;;;;;:::o;12349:99::-;12406:17;;;;;;;;;;;:26;;:34;12433:6;12406:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12349:99;:::o;8663:323::-;8758:7;8816;;8805;:18;;8783:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8904:19;8926:10;:8;:10::i;:::-;8904:32;;8954:24;8966:11;8954:7;:11;;:24;;;;:::i;:::-;8947:31;;;8663:323;;;:::o;11857:483::-;6057:4;6048:6;;:13;;;;;;;;;;;;;;;;;;11935:21:::1;11973:1;11959:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11935:40;;12004:4;11986;11991:1;11986:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12030:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12020:4;12025:1;12020:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12063:62;12080:4;12095:15;;;;;;;;;;;12113:11;12063:8;:62::i;:::-;12136:15;;;;;;;;;;;:66;;;12217:11;12243:1;12259:4;12286;12306:15;12136:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11924:416;6093:5:::0;6084:6;;:14;;;;;;;;;;;;;;;;;;11857:483;:::o;3355:223::-;3475:7;3507:1;3503;:5;3510:12;3495:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3534:9;3550:1;3546;:5;;;;:::i;:::-;3534:17;;3569:1;3562:8;;;3355:223;;;;;:::o;13254:282::-;13410:7;13405:28;;13419:14;:12;:14::i;:::-;13405:28;13444:44;13462:6;13470:9;13481:6;13444:17;:44::i;:::-;13504:7;13499:29;;13513:15;:13;:15::i;:::-;13499:29;13254:282;;;;:::o;15652:164::-;15694:7;15715:15;15732;15751:19;:17;:19::i;:::-;15714:56;;;;15788:20;15800:7;15788;:11;;:20;;;;:::i;:::-;15781:27;;;;15652:164;:::o;8995:136::-;9053:1;9042:7;;:12;9038:25;9056:7;9038:25;9094:7;;9076:15;:25;;;;9122:1;9112:7;:11;;;;8995:136;:::o;13545:522::-;13692:15;13722:23;13760;13798:13;13825:19;13836:7;13825:10;:19::i;:::-;13677:167;;;;;;;;13873:28;13893:7;13873;:15;13881:6;13873:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13855:7;:15;13863:6;13855:15;;;;;;;;;;;;;;;:46;;;;13933:39;13956:15;13933:7;:18;13941:9;13933:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13912:7;:18;13920:9;13912:18;;;;;;;;;;;;;;;:60;;;;13983:16;13993:5;13983:9;:16::i;:::-;14032:9;14015:44;;14024:6;14015:44;;;14043:15;14015:44;;;;;;:::i;:::-;;;;;;;;13666:401;;;;13545:522;;;:::o;9140:77::-;9194:15;;9184:7;:25;;;;9140:77::o;15825:257::-;15876:7;15885;15905:15;15923:7;;15905:25;;15941:15;5088:10;15941:25;;15991:20;5088:10;15991:7;;:11;;:20;;;;:::i;:::-;15981:7;:30;15977:61;;;16021:7;;5088:10;16013:25;;;;;;;;15977:61;16057:7;16066;16049:25;;;;;;15825:257;;;:::o;14337:514::-;14437:7;14459;14481;14503;14539:23;14564:13;14594:29;14606:7;14615;;14594:11;:29::i;:::-;14538:85;;;;14634:19;14656:10;:8;:10::i;:::-;14634:32;;14678:15;14695:23;14735:40;14747:7;14756:5;14763:11;14735;:40::i;:::-;14677:98;;;;14794:7;14803:15;14820;14837:5;14786:57;;;;;;;;;;;;;14337:514;;;;;:::o;2581:136::-;2639:7;2666:43;2670:1;2673;2666:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2659:50;;2581:136;;;;:::o;2393:179::-;2451:7;2471:9;2487:1;2483;:5;;;;:::i;:::-;2471:17;;2512:1;2507;:6;;2499:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2563:1;2556:8;;;2393:179;;;;:::o;14076:211::-;14129:19;14151:10;:8;:10::i;:::-;14129:32;;14172:13;14188:22;14198:11;14188:5;:9;;:22;;;;:::i;:::-;14172:38;;14246:33;14273:5;14246:7;:22;14262:4;14246:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14221:7;:22;14237:4;14221:22;;;;;;;;;;;;;;;:58;;;;14118:169;;14076:211;:::o;14860:348::-;15002:7;15024;15059:13;15075:28;15099:3;15075:19;15087:6;15075:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15059:44;;15114:23;15140:18;15152:5;15140:7;:11;;:18;;;;:::i;:::-;15114:44;;15177:15;15194:5;15169:31;;;;;;14860:348;;;;;:::o;15217:426::-;15388:7;15410;15445:15;15463:24;15475:11;15463:7;:11;;:24;;;;:::i;:::-;15445:42;;15498:13;15514:22;15524:11;15514:5;:9;;:22;;;;:::i;:::-;15498:38;;15547:23;15573:18;15585:5;15573:7;:11;;:18;;;;:::i;:::-;15547:44;;15610:7;15619:15;15602:33;;;;;;;15217:426;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:329::-;5455:6;5504:2;5492:9;5483:7;5479:23;5475:32;5472:119;;;5510:79;;:::i;:::-;5472:119;5630:1;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5601:117;5396:329;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:116::-;7063:21;7078:5;7063:21;:::i;:::-;7056:5;7053:32;7043:60;;7099:1;7096;7089:12;7043:60;6993:116;:::o;7115:133::-;7158:5;7196:6;7183:20;7174:29;;7212:30;7236:5;7212:30;:::i;:::-;7115:133;;;;:::o;7254:323::-;7310:6;7359:2;7347:9;7338:7;7334:23;7330:32;7327:119;;;7365:79;;:::i;:::-;7327:119;7485:1;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7456:114;7254:323;;;;:::o;7583:329::-;7642:6;7691:2;7679:9;7670:7;7666:23;7662:32;7659:119;;;7697:79;;:::i;:::-;7659:119;7817:1;7842:53;7887:7;7878:6;7867:9;7863:22;7842:53;:::i;:::-;7832:63;;7788:117;7583:329;;;;:::o;7918:117::-;8027:1;8024;8017:12;8041:180;8089:77;8086:1;8079:88;8186:4;8183:1;8176:15;8210:4;8207:1;8200:15;8227:281;8310:27;8332:4;8310:27;:::i;:::-;8302:6;8298:40;8440:6;8428:10;8425:22;8404:18;8392:10;8389:34;8386:62;8383:88;;;8451:18;;:::i;:::-;8383:88;8491:10;8487:2;8480:22;8270:238;8227:281;;:::o;8514:129::-;8548:6;8575:20;;:::i;:::-;8565:30;;8604:33;8632:4;8624:6;8604:33;:::i;:::-;8514:129;;;:::o;8649:311::-;8726:4;8816:18;8808:6;8805:30;8802:56;;;8838:18;;:::i;:::-;8802:56;8888:4;8880:6;8876:17;8868:25;;8948:4;8942;8938:15;8930:23;;8649:311;;;:::o;8966:117::-;9075:1;9072;9065:12;9106:710;9202:5;9227:81;9243:64;9300:6;9243:64;:::i;:::-;9227:81;:::i;:::-;9218:90;;9328:5;9357:6;9350:5;9343:21;9391:4;9384:5;9380:16;9373:23;;9444:4;9436:6;9432:17;9424:6;9420:30;9473:3;9465:6;9462:15;9459:122;;;9492:79;;:::i;:::-;9459:122;9607:6;9590:220;9624:6;9619:3;9616:15;9590:220;;;9699:3;9728:37;9761:3;9749:10;9728:37;:::i;:::-;9723:3;9716:50;9795:4;9790:3;9786:14;9779:21;;9666:144;9650:4;9645:3;9641:14;9634:21;;9590:220;;;9594:21;9208:608;;9106:710;;;;;:::o;9839:370::-;9910:5;9959:3;9952:4;9944:6;9940:17;9936:27;9926:122;;9967:79;;:::i;:::-;9926:122;10084:6;10071:20;10109:94;10199:3;10191:6;10184:4;10176:6;10172:17;10109:94;:::i;:::-;10100:103;;9916:293;9839:370;;;;:::o;10215:539::-;10299:6;10348:2;10336:9;10327:7;10323:23;10319:32;10316:119;;;10354:79;;:::i;:::-;10316:119;10502:1;10491:9;10487:17;10474:31;10532:18;10524:6;10521:30;10518:117;;;10554:79;;:::i;:::-;10518:117;10659:78;10729:7;10720:6;10709:9;10705:22;10659:78;:::i;:::-;10649:88;;10445:302;10215:539;;;;:::o;10760:474::-;10828:6;10836;10885:2;10873:9;10864:7;10860:23;10856:32;10853:119;;;10891:79;;:::i;:::-;10853:119;11011:1;11036:53;11081:7;11072:6;11061:9;11057:22;11036:53;:::i;:::-;11026:63;;10982:117;11138:2;11164:53;11209:7;11200:6;11189:9;11185:22;11164:53;:::i;:::-;11154:63;;11109:118;10760:474;;;;;:::o;11240:182::-;11380:34;11376:1;11368:6;11364:14;11357:58;11240:182;:::o;11428:366::-;11570:3;11591:67;11655:2;11650:3;11591:67;:::i;:::-;11584:74;;11667:93;11756:3;11667:93;:::i;:::-;11785:2;11780:3;11776:12;11769:19;;11428:366;;;:::o;11800:419::-;11966:4;12004:2;11993:9;11989:18;11981:26;;12053:9;12047:4;12043:20;12039:1;12028:9;12024:17;12017:47;12081:131;12207:4;12081:131;:::i;:::-;12073:139;;11800:419;;;:::o;12225:180::-;12273:77;12270:1;12263:88;12370:4;12367:1;12360:15;12394:4;12391:1;12384:15;12411:180;12459:77;12456:1;12449:88;12556:4;12553:1;12546:15;12580:4;12577:1;12570:15;12597:233;12636:3;12659:24;12677:5;12659:24;:::i;:::-;12650:33;;12705:66;12698:5;12695:77;12692:103;;12775:18;;:::i;:::-;12692:103;12822:1;12815:5;12811:13;12804:20;;12597:233;;;:::o;12836:410::-;12876:7;12899:20;12917:1;12899:20;:::i;:::-;12894:25;;12933:20;12951:1;12933:20;:::i;:::-;12928:25;;12988:1;12985;12981:9;13010:30;13028:11;13010:30;:::i;:::-;12999:41;;13189:1;13180:7;13176:15;13173:1;13170:22;13150:1;13143:9;13123:83;13100:139;;13219:18;;:::i;:::-;13100:139;12884:362;12836:410;;;;:::o;13252:180::-;13300:77;13297:1;13290:88;13397:4;13394:1;13387:15;13421:4;13418:1;13411:15;13438:185;13478:1;13495:20;13513:1;13495:20;:::i;:::-;13490:25;;13529:20;13547:1;13529:20;:::i;:::-;13524:25;;13568:1;13558:35;;13573:18;;:::i;:::-;13558:35;13615:1;13612;13608:9;13603:14;;13438:185;;;;:::o;13629:225::-;13769:34;13765:1;13757:6;13753:14;13746:58;13838:8;13833:2;13825:6;13821:15;13814:33;13629:225;:::o;13860:366::-;14002:3;14023:67;14087:2;14082:3;14023:67;:::i;:::-;14016:74;;14099:93;14188:3;14099:93;:::i;:::-;14217:2;14212:3;14208:12;14201:19;;13860:366;;;:::o;14232:419::-;14398:4;14436:2;14425:9;14421:18;14413:26;;14485:9;14479:4;14475:20;14471:1;14460:9;14456:17;14449:47;14513:131;14639:4;14513:131;:::i;:::-;14505:139;;14232:419;;;:::o;14657:220::-;14797:34;14793:1;14785:6;14781:14;14774:58;14866:3;14861:2;14853:6;14849:15;14842:28;14657:220;:::o;14883:366::-;15025:3;15046:67;15110:2;15105:3;15046:67;:::i;:::-;15039:74;;15122:93;15211:3;15122:93;:::i;:::-;15240:2;15235:3;15231:12;15224:19;;14883:366;;;:::o;15255:419::-;15421:4;15459:2;15448:9;15444:18;15436:26;;15508:9;15502:4;15498:20;15494:1;15483:9;15479:17;15472:47;15536:131;15662:4;15536:131;:::i;:::-;15528:139;;15255:419;;;:::o;15680:223::-;15820:34;15816:1;15808:6;15804:14;15797:58;15889:6;15884:2;15876:6;15872:15;15865:31;15680:223;:::o;15909:366::-;16051:3;16072:67;16136:2;16131:3;16072:67;:::i;:::-;16065:74;;16148:93;16237:3;16148:93;:::i;:::-;16266:2;16261:3;16257:12;16250:19;;15909:366;;;:::o;16281:419::-;16447:4;16485:2;16474:9;16470:18;16462:26;;16534:9;16528:4;16524:20;16520:1;16509:9;16505:17;16498:47;16562:131;16688:4;16562:131;:::i;:::-;16554:139;;16281:419;;;:::o;16706:221::-;16846:34;16842:1;16834:6;16830:14;16823:58;16915:4;16910:2;16902:6;16898:15;16891:29;16706:221;:::o;16933:366::-;17075:3;17096:67;17160:2;17155:3;17096:67;:::i;:::-;17089:74;;17172:93;17261:3;17172:93;:::i;:::-;17290:2;17285:3;17281:12;17274:19;;16933:366;;;:::o;17305:419::-;17471:4;17509:2;17498:9;17494:18;17486:26;;17558:9;17552:4;17548:20;17544:1;17533:9;17529:17;17522:47;17586:131;17712:4;17586:131;:::i;:::-;17578:139;;17305:419;;;:::o;17730:224::-;17870:34;17866:1;17858:6;17854:14;17847:58;17939:7;17934:2;17926:6;17922:15;17915:32;17730:224;:::o;17960:366::-;18102:3;18123:67;18187:2;18182:3;18123:67;:::i;:::-;18116:74;;18199:93;18288:3;18199:93;:::i;:::-;18317:2;18312:3;18308:12;18301:19;;17960:366;;;:::o;18332:419::-;18498:4;18536:2;18525:9;18521:18;18513:26;;18585:9;18579:4;18575:20;18571:1;18560:9;18556:17;18549:47;18613:131;18739:4;18613:131;:::i;:::-;18605:139;;18332:419;;;:::o;18757:222::-;18897:34;18893:1;18885:6;18881:14;18874:58;18966:5;18961:2;18953:6;18949:15;18942:30;18757:222;:::o;18985:366::-;19127:3;19148:67;19212:2;19207:3;19148:67;:::i;:::-;19141:74;;19224:93;19313:3;19224:93;:::i;:::-;19342:2;19337:3;19333:12;19326:19;;18985:366;;;:::o;19357:419::-;19523:4;19561:2;19550:9;19546:18;19538:26;;19610:9;19604:4;19600:20;19596:1;19585:9;19581:17;19574:47;19638:131;19764:4;19638:131;:::i;:::-;19630:139;;19357:419;;;:::o;19782:228::-;19922:34;19918:1;19910:6;19906:14;19899:58;19991:11;19986:2;19978:6;19974:15;19967:36;19782:228;:::o;20016:366::-;20158:3;20179:67;20243:2;20238:3;20179:67;:::i;:::-;20172:74;;20255:93;20344:3;20255:93;:::i;:::-;20373:2;20368:3;20364:12;20357:19;;20016:366;;;:::o;20388:419::-;20554:4;20592:2;20581:9;20577:18;20569:26;;20641:9;20635:4;20631:20;20627:1;20616:9;20612:17;20605:47;20669:131;20795:4;20669:131;:::i;:::-;20661:139;;20388:419;;;:::o;20813:250::-;20953:34;20949:1;20941:6;20937:14;20930:58;21022:33;21017:2;21009:6;21005:15;20998:58;20813:250;:::o;21069:366::-;21211:3;21232:67;21296:2;21291:3;21232:67;:::i;:::-;21225:74;;21308:93;21397:3;21308:93;:::i;:::-;21426:2;21421:3;21417:12;21410:19;;21069:366;;;:::o;21441:419::-;21607:4;21645:2;21634:9;21630:18;21622:26;;21694:9;21688:4;21684:20;21680:1;21669:9;21665:17;21658:47;21722:131;21848:4;21722:131;:::i;:::-;21714:139;;21441:419;;;:::o;21866:222::-;22006:34;22002:1;21994:6;21990:14;21983:58;22075:5;22070:2;22062:6;22058:15;22051:30;21866:222;:::o;22094:366::-;22236:3;22257:67;22321:2;22316:3;22257:67;:::i;:::-;22250:74;;22333:93;22422:3;22333:93;:::i;:::-;22451:2;22446:3;22442:12;22435:19;;22094:366;;;:::o;22466:419::-;22632:4;22670:2;22659:9;22655:18;22647:26;;22719:9;22713:4;22709:20;22705:1;22694:9;22690:17;22683:47;22747:131;22873:4;22747:131;:::i;:::-;22739:139;;22466:419;;;:::o;22891:191::-;22931:3;22950:20;22968:1;22950:20;:::i;:::-;22945:25;;22984:20;23002:1;22984:20;:::i;:::-;22979:25;;23027:1;23024;23020:9;23013:16;;23048:3;23045:1;23042:10;23039:36;;;23055:18;;:::i;:::-;23039:36;22891:191;;;;:::o;23088:222::-;23228:34;23224:1;23216:6;23212:14;23205:58;23297:5;23292:2;23284:6;23280:15;23273:30;23088:222;:::o;23316:366::-;23458:3;23479:67;23543:2;23538:3;23479:67;:::i;:::-;23472:74;;23555:93;23644:3;23555:93;:::i;:::-;23673:2;23668:3;23664:12;23657:19;;23316:366;;;:::o;23688:419::-;23854:4;23892:2;23881:9;23877:18;23869:26;;23941:9;23935:4;23931:20;23927:1;23916:9;23912:17;23905:47;23969:131;24095:4;23969:131;:::i;:::-;23961:139;;23688:419;;;:::o;24113:194::-;24153:4;24173:20;24191:1;24173:20;:::i;:::-;24168:25;;24207:20;24225:1;24207:20;:::i;:::-;24202:25;;24251:1;24248;24244:9;24236:17;;24275:1;24269:4;24266:11;24263:37;;;24280:18;;:::i;:::-;24263:37;24113:194;;;;:::o;24313:229::-;24453:34;24449:1;24441:6;24437:14;24430:58;24522:12;24517:2;24509:6;24505:15;24498:37;24313:229;:::o;24548:366::-;24690:3;24711:67;24775:2;24770:3;24711:67;:::i;:::-;24704:74;;24787:93;24876:3;24787:93;:::i;:::-;24905:2;24900:3;24896:12;24889:19;;24548:366;;;:::o;24920:419::-;25086:4;25124:2;25113:9;25109:18;25101:26;;25173:9;25167:4;25163:20;25159:1;25148:9;25144:17;25137:47;25201:131;25327:4;25201:131;:::i;:::-;25193:139;;24920:419;;;:::o;25345:143::-;25402:5;25433:6;25427:13;25418:22;;25449:33;25476:5;25449:33;:::i;:::-;25345:143;;;;:::o;25494:351::-;25564:6;25613:2;25601:9;25592:7;25588:23;25584:32;25581:119;;;25619:79;;:::i;:::-;25581:119;25739:1;25764:64;25820:7;25811:6;25800:9;25796:22;25764:64;:::i;:::-;25754:74;;25710:128;25494:351;;;;:::o;25851:85::-;25896:7;25925:5;25914:16;;25851:85;;;:::o;25942:158::-;26000:9;26033:61;26051:42;26060:32;26086:5;26060:32;:::i;:::-;26051:42;:::i;:::-;26033:61;:::i;:::-;26020:74;;25942:158;;;:::o;26106:147::-;26201:45;26240:5;26201:45;:::i;:::-;26196:3;26189:58;26106:147;;:::o;26259:114::-;26326:6;26360:5;26354:12;26344:22;;26259:114;;;:::o;26379:184::-;26478:11;26512:6;26507:3;26500:19;26552:4;26547:3;26543:14;26528:29;;26379:184;;;;:::o;26569:132::-;26636:4;26659:3;26651:11;;26689:4;26684:3;26680:14;26672:22;;26569:132;;;:::o;26707:108::-;26784:24;26802:5;26784:24;:::i;:::-;26779:3;26772:37;26707:108;;:::o;26821:179::-;26890:10;26911:46;26953:3;26945:6;26911:46;:::i;:::-;26989:4;26984:3;26980:14;26966:28;;26821:179;;;;:::o;27006:113::-;27076:4;27108;27103:3;27099:14;27091:22;;27006:113;;;:::o;27155:732::-;27274:3;27303:54;27351:5;27303:54;:::i;:::-;27373:86;27452:6;27447:3;27373:86;:::i;:::-;27366:93;;27483:56;27533:5;27483:56;:::i;:::-;27562:7;27593:1;27578:284;27603:6;27600:1;27597:13;27578:284;;;27679:6;27673:13;27706:63;27765:3;27750:13;27706:63;:::i;:::-;27699:70;;27792:60;27845:6;27792:60;:::i;:::-;27782:70;;27638:224;27625:1;27622;27618:9;27613:14;;27578:284;;;27582:14;27878:3;27871:10;;27279:608;;;27155:732;;;;:::o;27893:831::-;28156:4;28194:3;28183:9;28179:19;28171:27;;28208:71;28276:1;28265:9;28261:17;28252:6;28208:71;:::i;:::-;28289:80;28365:2;28354:9;28350:18;28341:6;28289:80;:::i;:::-;28416:9;28410:4;28406:20;28401:2;28390:9;28386:18;28379:48;28444:108;28547:4;28538:6;28444:108;:::i;:::-;28436:116;;28562:72;28630:2;28619:9;28615:18;28606:6;28562:72;:::i;:::-;28644:73;28712:3;28701:9;28697:19;28688:6;28644:73;:::i;:::-;27893:831;;;;;;;;:::o;28730:177::-;28870:29;28866:1;28858:6;28854:14;28847:53;28730:177;:::o;28913:366::-;29055:3;29076:67;29140:2;29135:3;29076:67;:::i;:::-;29069:74;;29152:93;29241:3;29152:93;:::i;:::-;29270:2;29265:3;29261:12;29254:19;;28913:366;;;:::o;29285:419::-;29451:4;29489:2;29478:9;29474:18;29466:26;;29538:9;29532:4;29528:20;29524:1;29513:9;29509:17;29502:47;29566:131;29692:4;29566:131;:::i;:::-;29558:139;;29285:419;;;:::o

Swarm Source

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