ETH Price: $2,360.67 (+0.84%)

Token

BOXING CATS (1894)
 

Overview

Max Total Supply

1,000,000,000 1894

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 1894

Value
$0.00
0x9ec25d8108e35ff5acbc5c005331e00f972726da
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:
BOXINGCATS

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 2 : 4_BoxingCats.sol
/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/
/**

Telegram: https://t.me/boxingcats
Website: https://boxingcats.lol/
Taxes 1%
*/

// SPDX-License-Identifier: MIT

pragma solidity >=0.8.2 <0.9.0;

import "@openzeppelin/contracts/utils/math/SafeMath.sol";

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract BOXINGCATS is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private _holderLastTransferTimestamp;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"BOXING CATS";
    string private constant _symbol = unicode"1894";
    uint256 public _maxTxAmount = _tTotal.mul(1).div(100); // 5% of total supply intially
    uint256 public _maxWalletSize = _tTotal.mul(1).div(100); // 5% of total supply intially
    uint256 public _buyTax = 1; // buyTax
    uint256 public _sellTax = 1; //sellTax

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen=false;
    bool private inSwap = false;


    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier swapLock {
        inSwap = true;
        _;
        inSwap = false;
    }

constructor () {
    _balances[_msgSender()] = _tTotal;
    _isExcludedFromFee[owner()] = true;
    _isExcludedFromFee[address(this)] = true;
    
    // The Uniswop router should not be subject to Tax
    uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    _isExcludedFromFee[address(uniswapV2Router)] = true;

    //Marketing wallet receives 1.5% of total supply

    _balances[owner()] = _tTotal;
    emit Transfer(address(0), owner(), _tTotal);  
    
}
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private swapLock {

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

    // Check if trading is open, if it's the owner depositing tokens, or if it's a transfer to the Uniswap pair
    require(tradingOpen || (from == owner() && to == address(this)) || to == uniswapV2Pair, "Trading is not open yet");

    // Check that the recipient's balance won't exceed the max wallet size
    require(
    _balances[to].add(amount) <= _maxWalletSize || 
    (from == owner() && to == address(this)) || 
    to == uniswapV2Pair || 
    (from == address(this) && (to == owner() || to == uniswapV2Pair)), 
    "New balance would exceed the max wallet size.");

    // Check that the sender has enough balance
    require(amount <= _balances[from], "Transfer amount exceeds balance");

    // Check for underflows and overflows
    require(_balances[from] >= amount, "ERC20: transfer amount exceeds balance");
    require(_balances[to] + amount > _balances[to], "ERC20: addition overflow");

    // Calculate tax amount
    uint256 taxAmount;
    if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
        if (from == uniswapV2Pair && _buyTax > 0) {
            taxAmount = amount.mul(_buyTax).div(100);
        } else if (to == uniswapV2Pair && _sellTax > 0) {
            taxAmount = amount.mul(_sellTax).div(100);
        }
    }

    // Subtract tax from the amount
    uint256 sendAmount = amount.sub(taxAmount);

    // Update balances
    _balances[from] = _balances[from].sub(amount);
    _balances[to] = _balances[to].add(sendAmount);
    emit Transfer(from, to, sendAmount);

    // Transfer the tax to the contract wallet and emit Transfer event only if taxAmount is not zero
    if (taxAmount > 0) {
        _balances[owner()] = _balances[owner()].add(taxAmount);
        emit Transfer(from, owner(), taxAmount);
    }
 
}
function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
 //        _buyTax = 1;
 //       _sellTax = 1;
        emit MaxTxAmountUpdated(_tTotal);
}

function manualSend() external onlyOwner {
    uint256 contractBalance = address(this).balance;
    require(contractBalance > 0, "Contract has no ETH to send");
    // Transfer all ETH in the contract to the owner's wallet
    payable(owner()).transfer(contractBalance);
}

function checkBalanceAndAllowance() public view returns (uint256, uint256) {
    uint256 contractBalance = balanceOf(address(this));
    uint256 routerAllowance = allowance(address(this), address(uniswapV2Router));
    return (contractBalance, routerAllowance);
}

function addLiquidity() external onlyOwner() {
    require(!tradingOpen, "Trading is already open");

    uint256 contractTokenBalance = balanceOf(address(this));
    uint256 contractEthBalance = address(this).balance;

   // Check that the contract has enough tokens
    require(contractTokenBalance > 0, "Contract has no tokens to add as liquidity");
    
    // Check that the contract has enough ETH
    require(contractEthBalance > 0, "Contract has no ETH to add as liquidity");

   uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

  // create the pair on uniswop
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
 
   // Approve the router to spend the tokens of this contract
    _approve(address(this), address(uniswapV2Router), contractTokenBalance);

    // Check that the router is approved to spend the tokens
    require(allowance(address(this), address(uniswapV2Router)) >= contractTokenBalance, "Router is not approved to spend tokens");

    // Temporarily remove max wallet size for owner and Uniswap pair
    uint256 initialMaxWalletSize = _maxWalletSize;
    _maxWalletSize = _tTotal;

    // Add liquidity using the balance of tokens in the contract
    uniswapV2Router.addLiquidityETH{value: contractEthBalance}(address(this), contractTokenBalance, 0, 0, owner(), block.timestamp);

    // Restore max wallet size
    _maxWalletSize = initialMaxWalletSize;

    IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);
}

function openTrading() external onlyOwner() {
    require(!tradingOpen, "Trading is already open");
    tradingOpen = true;
}
    receive() external payable {}
}

File 2 of 2 : SafeMath.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/SafeMath.sol)

pragma solidity ^0.8.0;

// CAUTION
// This version of SafeMath should only be used with Solidity 0.8 or later,
// because it relies on the compiler's built in overflow checks.

/**
 * @dev Wrappers over Solidity's arithmetic operations.
 *
 * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
 * now has built in overflow checking.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // 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 (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkBalanceAndAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200005960646200004560016009600a620000209190620005e5565b633b9aca0062000031919062000722565b620004c360201b620012b11790919060201c565b620004db60201b620012c71790919060201c565b600555620000b160646200009d60016009600a620000789190620005e5565b633b9aca0062000089919062000722565b620004c360201b620012b11790919060201c565b620004db60201b620012c71790919060201c565b600655600160075560016008556000600a60146101000a81548160ff0219169083151502179055506000600a60156101000a81548160ff0219169083151502179055503480156200010157600080fd5b50600062000114620004f360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001c29190620005e5565b633b9aca00620001d3919062000722565b60016000620001e7620004f360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200023b620004fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a620003c39190620005e5565b633b9aca00620003d4919062000722565b60016000620003e8620004fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000436620004fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004959190620005e5565b633b9aca00620004a6919062000722565b604051620004b5919062000535565b60405180910390a362000805565b60008183620004d3919062000722565b905092915050565b60008183620004eb919062000552565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200052f8162000783565b82525050565b60006020820190506200054c600083018462000524565b92915050565b60006200055f8262000783565b91506200056c8362000783565b9250826200057f576200057e620007c9565b5b828204905092915050565b6000808291508390505b6001851115620005dc57808604811115620005b457620005b36200079a565b5b6001851615620005c45780820291505b8081029050620005d485620007f8565b945062000594565b94509492505050565b6000620005f28262000783565b9150620005ff836200078d565b92506200062e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000636565b905092915050565b6000826200064857600190506200071b565b816200065857600090506200071b565b81600181146200067157600281146200067c57620006b2565b60019150506200071b565b60ff8411156200069157620006906200079a565b5b8360020a915084821115620006ab57620006aa6200079a565b5b506200071b565b5060208310610133831016604e8410600b8410161715620006ec5782820a905083811115620006e657620006e56200079a565b5b6200071b565b620006fb84848460016200058a565b925090508184048111156200071557620007146200079a565b5b81810290505b9392505050565b60006200072f8262000783565b91506200073c8362000783565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200077857620007776200079a565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b6130b680620008156000396000f3fe6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c9567bf911610064578063c9567bf9146103d5578063ca9ec199146103ec578063dd62ed3e14610417578063e8078d9414610454578063f42938901461046b5761012a565b80638da5cb5b146102eb5780638f9a55c01461031657806390c547541461034157806395d89b411461036d578063a9059cbb146103985761012a565b806342a11095116100e757806342a110951461022a57806370a0823114610255578063715018a614610292578063751039fc146102a95780637d1db4a5146102c05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610482565b60405161015191906125ce565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061217d565b6104bf565b60405161018e91906125b3565b60405180910390f35b3480156101a357600080fd5b506101ac6104dd565b6040516101b991906127f0565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e4919061212e565b610501565b6040516101f691906125b3565b60405180910390f35b34801561020b57600080fd5b506102146105da565b6040516102219190612834565b60405180910390f35b34801561023657600080fd5b5061023f6105e3565b60405161024c91906127f0565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906120a0565b6105e9565b60405161028991906127f0565b60405180910390f35b34801561029e57600080fd5b506102a7610632565b005b3480156102b557600080fd5b506102be610785565b005b3480156102cc57600080fd5b506102d56108b5565b6040516102e291906127f0565b60405180910390f35b3480156102f757600080fd5b506103006108bb565b60405161030d91906124e5565b60405180910390f35b34801561032257600080fd5b5061032b6108e4565b60405161033891906127f0565b60405180910390f35b34801561034d57600080fd5b506103566108ea565b60405161036492919061280b565b60405180910390f35b34801561037957600080fd5b50610382610936565b60405161038f91906125ce565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061217d565b610973565b6040516103cc91906125b3565b60405180910390f35b3480156103e157600080fd5b506103ea610991565b005b3480156103f857600080fd5b50610401610a93565b60405161040e91906127f0565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906120f2565b610a99565b60405161044b91906127f0565b60405180910390f35b34801561046057600080fd5b50610469610b20565b005b34801561047757600080fd5b50610480611183565b005b60606040518060400160405280600b81526020017f424f58494e472043415453000000000000000000000000000000000000000000815250905090565b60006104d36104cc6112dd565b84846112e5565b6001905092915050565b60006009600a6104ed9190612945565b633b9aca006104fc9190612a63565b905090565b600061050e8484846114b0565b6105cf8461051a6112dd565b6105ca8560405180606001604052806028815260200161305960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105806112dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb69092919063ffffffff16565b6112e5565b600190509392505050565b60006009905090565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61063a6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be90612730565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61078d6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190612730565b60405180910390fd5b6009600a6108289190612945565b633b9aca006108379190612a63565b6005819055506009600a61084b9190612945565b633b9aca0061085a9190612a63565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61088f9190612945565b633b9aca0061089e9190612a63565b6040516108ab91906127f0565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60008060006108f8306105e9565b9050600061092830600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a99565b905081819350935050509091565b60606040518060400160405280600481526020017f3138393400000000000000000000000000000000000000000000000000000000815250905090565b60006109876109806112dd565b84846114b0565b6001905092915050565b6109996112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612730565b60405180910390fd5b600a60149054906101000a900460ff1615610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90612630565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b286112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90612730565b60405180910390fd5b600a60149054906101000a900460ff1615610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90612630565b60405180910390fd5b6000610c10306105e9565b9050600047905060008211610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190612750565b60405180910390fd5b60008111610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612790565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5a57600080fd5b505afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9291906120c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1657600080fd5b505afa158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906120c9565b6040518363ffffffff1660e01b8152600401610e6b929190612500565b602060405180830381600087803b158015610e8557600080fd5b505af1158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd91906120c9565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e5565b81610f5730600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a99565b1015610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f90612650565b60405180910390fd5b600060065490506009600a610fad9190612945565b633b9aca00610fbc9190612a63565b600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008061100e6108bb565b426040518863ffffffff1660e01b815260040161103096959493929190612552565b6060604051808303818588803b15801561104957600080fd5b505af115801561105d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108291906121e2565b50505080600681905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112b929190612529565b602060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d91906121b9565b50505050565b61118b6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612730565b60405180910390fd5b600047905060008111611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906126f0565b60405180910390fd5b6112686108bb565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112ad573d6000803e3d6000fd5b5050565b600081836112bf9190612a63565b905092915050565b600081836112d591906128c1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906127d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90612610565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a391906127f0565b60405180910390a3505050565b6001600a60156101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561153b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611532906127b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a2906125f0565b60405180910390fd5b600081116115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590612770565b60405180910390fd5b600a60149054906101000a900460ff1680611672575061160c6108bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116ca5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906126b0565b60405180910390fd5b60065461175e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b1115806117d4575061176e6108bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d357503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b8061182c5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118f857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f757506118706108bb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118f65750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612710565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b0906126d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290612670565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac6919061286b565b11611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90612690565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bac5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cd557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c1057506000600754115b15611c4457611c3d6064611c2f600754856112b190919063ffffffff16565b6112c790919063ffffffff16565b9050611cd4565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca357506000600854115b15611cd357611cd06064611cc2600854856112b190919063ffffffff16565b6112c790919063ffffffff16565b90505b5b5b6000611cea828461202190919063ffffffff16565b9050611d3e83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd381600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7391906127f0565b60405180910390a36000821115611f9457611edd8260016000611e946108bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b60016000611ee96108bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2f6108bb565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8b91906127f0565b60405180910390a35b50506000600a60156101000a81548160ff021916908315150217905550505050565b6000838311158290611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff591906125ce565b60405180910390fd5b5082840390509392505050565b60008183612019919061286b565b905092915050565b6000818361202f9190612abd565b905092915050565b60008135905061204681613013565b92915050565b60008151905061205b81613013565b92915050565b6000815190506120708161302a565b92915050565b60008135905061208581613041565b92915050565b60008151905061209a81613041565b92915050565b6000602082840312156120b257600080fd5b60006120c084828501612037565b91505092915050565b6000602082840312156120db57600080fd5b60006120e98482850161204c565b91505092915050565b6000806040838503121561210557600080fd5b600061211385828601612037565b925050602061212485828601612037565b9150509250929050565b60008060006060848603121561214357600080fd5b600061215186828701612037565b935050602061216286828701612037565b925050604061217386828701612076565b9150509250925092565b6000806040838503121561219057600080fd5b600061219e85828601612037565b92505060206121af85828601612076565b9150509250929050565b6000602082840312156121cb57600080fd5b60006121d984828501612061565b91505092915050565b6000806000606084860312156121f757600080fd5b60006122058682870161208b565b93505060206122168682870161208b565b92505060406122278682870161208b565b9150509250925092565b61223a81612af1565b82525050565b61224981612b03565b82525050565b61225881612b46565b82525050565b60006122698261284f565b612273818561285a565b9350612283818560208601612b58565b61228c81612be9565b840191505092915050565b60006122a460238361285a565b91506122af82612c07565b604082019050919050565b60006122c760228361285a565b91506122d282612c56565b604082019050919050565b60006122ea60178361285a565b91506122f582612ca5565b602082019050919050565b600061230d60268361285a565b915061231882612cce565b604082019050919050565b600061233060268361285a565b915061233b82612d1d565b604082019050919050565b600061235360188361285a565b915061235e82612d6c565b602082019050919050565b600061237660178361285a565b915061238182612d95565b602082019050919050565b6000612399601f8361285a565b91506123a482612dbe565b602082019050919050565b60006123bc601b8361285a565b91506123c782612de7565b602082019050919050565b60006123df602d8361285a565b91506123ea82612e10565b604082019050919050565b600061240260208361285a565b915061240d82612e5f565b602082019050919050565b6000612425602a8361285a565b915061243082612e88565b604082019050919050565b600061244860298361285a565b915061245382612ed7565b604082019050919050565b600061246b60278361285a565b915061247682612f26565b604082019050919050565b600061248e60258361285a565b915061249982612f75565b604082019050919050565b60006124b160248361285a565b91506124bc82612fc4565b604082019050919050565b6124d081612b2f565b82525050565b6124df81612b39565b82525050565b60006020820190506124fa6000830184612231565b92915050565b60006040820190506125156000830185612231565b6125226020830184612231565b9392505050565b600060408201905061253e6000830185612231565b61254b60208301846124c7565b9392505050565b600060c0820190506125676000830189612231565b61257460208301886124c7565b612581604083018761224f565b61258e606083018661224f565b61259b6080830185612231565b6125a860a08301846124c7565b979650505050505050565b60006020820190506125c86000830184612240565b92915050565b600060208201905081810360008301526125e8818461225e565b905092915050565b6000602082019050818103600083015261260981612297565b9050919050565b60006020820190508181036000830152612629816122ba565b9050919050565b60006020820190508181036000830152612649816122dd565b9050919050565b6000602082019050818103600083015261266981612300565b9050919050565b6000602082019050818103600083015261268981612323565b9050919050565b600060208201905081810360008301526126a981612346565b9050919050565b600060208201905081810360008301526126c981612369565b9050919050565b600060208201905081810360008301526126e98161238c565b9050919050565b60006020820190508181036000830152612709816123af565b9050919050565b60006020820190508181036000830152612729816123d2565b9050919050565b60006020820190508181036000830152612749816123f5565b9050919050565b6000602082019050818103600083015261276981612418565b9050919050565b600060208201905081810360008301526127898161243b565b9050919050565b600060208201905081810360008301526127a98161245e565b9050919050565b600060208201905081810360008301526127c981612481565b9050919050565b600060208201905081810360008301526127e9816124a4565b9050919050565b600060208201905061280560008301846124c7565b92915050565b600060408201905061282060008301856124c7565b61282d60208301846124c7565b9392505050565b600060208201905061284960008301846124d6565b92915050565b600081519050919050565b600082825260208201905092915050565b600061287682612b2f565b915061288183612b2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128b6576128b5612b8b565b5b828201905092915050565b60006128cc82612b2f565b91506128d783612b2f565b9250826128e7576128e6612bba565b5b828204905092915050565b6000808291508390505b600185111561293c5780860481111561291857612917612b8b565b5b60018516156129275780820291505b808102905061293585612bfa565b94506128fc565b94509492505050565b600061295082612b2f565b915061295b83612b39565b92506129887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612990565b905092915050565b6000826129a05760019050612a5c565b816129ae5760009050612a5c565b81600181146129c457600281146129ce576129fd565b6001915050612a5c565b60ff8411156129e0576129df612b8b565b5b8360020a9150848211156129f7576129f6612b8b565b5b50612a5c565b5060208310610133831016604e8410600b8410161715612a325782820a905083811115612a2d57612a2c612b8b565b5b612a5c565b612a3f84848460016128f2565b92509050818404811115612a5657612a55612b8b565b5b81810290505b9392505050565b6000612a6e82612b2f565b9150612a7983612b2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ab257612ab1612b8b565b5b828202905092915050565b6000612ac882612b2f565b9150612ad383612b2f565b925082821015612ae657612ae5612b8b565b5b828203905092915050565b6000612afc82612b0f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b5182612b2f565b9050919050565b60005b83811015612b76578082015181840152602081019050612b5b565b83811115612b85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e642060008201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206164646974696f6e206f766572666c6f770000000000000000600082015250565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f436f6e747261637420686173206e6f2045544820746f2073656e640000000000600082015250565b7f4e65772062616c616e636520776f756c642065786365656420746865206d617860008201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2061646420617360008201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c6960008201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61301c81612af1565b811461302757600080fd5b50565b61303381612b03565b811461303e57600080fd5b50565b61304a81612b2f565b811461305557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208803a87281b6fae0cfda32cd5ad911f57763c8e1e95da1351135ca19fc150e6964736f6c63430008020033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80638da5cb5b116100a0578063c9567bf911610064578063c9567bf9146103d5578063ca9ec199146103ec578063dd62ed3e14610417578063e8078d9414610454578063f42938901461046b5761012a565b80638da5cb5b146102eb5780638f9a55c01461031657806390c547541461034157806395d89b411461036d578063a9059cbb146103985761012a565b806342a11095116100e757806342a110951461022a57806370a0823114610255578063715018a614610292578063751039fc146102a95780637d1db4a5146102c05761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610482565b60405161015191906125ce565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c919061217d565b6104bf565b60405161018e91906125b3565b60405180910390f35b3480156101a357600080fd5b506101ac6104dd565b6040516101b991906127f0565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e4919061212e565b610501565b6040516101f691906125b3565b60405180910390f35b34801561020b57600080fd5b506102146105da565b6040516102219190612834565b60405180910390f35b34801561023657600080fd5b5061023f6105e3565b60405161024c91906127f0565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906120a0565b6105e9565b60405161028991906127f0565b60405180910390f35b34801561029e57600080fd5b506102a7610632565b005b3480156102b557600080fd5b506102be610785565b005b3480156102cc57600080fd5b506102d56108b5565b6040516102e291906127f0565b60405180910390f35b3480156102f757600080fd5b506103006108bb565b60405161030d91906124e5565b60405180910390f35b34801561032257600080fd5b5061032b6108e4565b60405161033891906127f0565b60405180910390f35b34801561034d57600080fd5b506103566108ea565b60405161036492919061280b565b60405180910390f35b34801561037957600080fd5b50610382610936565b60405161038f91906125ce565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061217d565b610973565b6040516103cc91906125b3565b60405180910390f35b3480156103e157600080fd5b506103ea610991565b005b3480156103f857600080fd5b50610401610a93565b60405161040e91906127f0565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906120f2565b610a99565b60405161044b91906127f0565b60405180910390f35b34801561046057600080fd5b50610469610b20565b005b34801561047757600080fd5b50610480611183565b005b60606040518060400160405280600b81526020017f424f58494e472043415453000000000000000000000000000000000000000000815250905090565b60006104d36104cc6112dd565b84846112e5565b6001905092915050565b60006009600a6104ed9190612945565b633b9aca006104fc9190612a63565b905090565b600061050e8484846114b0565b6105cf8461051a6112dd565b6105ca8560405180606001604052806028815260200161305960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105806112dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb69092919063ffffffff16565b6112e5565b600190509392505050565b60006009905090565b60075481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61063a6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be90612730565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61078d6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081190612730565b60405180910390fd5b6009600a6108289190612945565b633b9aca006108379190612a63565b6005819055506009600a61084b9190612945565b633b9aca0061085a9190612a63565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61088f9190612945565b633b9aca0061089e9190612a63565b6040516108ab91906127f0565b60405180910390a1565b60055481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60008060006108f8306105e9565b9050600061092830600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a99565b905081819350935050509091565b60606040518060400160405280600481526020017f3138393400000000000000000000000000000000000000000000000000000000815250905090565b60006109876109806112dd565b84846114b0565b6001905092915050565b6109996112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612730565b60405180910390fd5b600a60149054906101000a900460ff1615610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90612630565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60085481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b286112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bac90612730565b60405180910390fd5b600a60149054906101000a900460ff1615610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90612630565b60405180910390fd5b6000610c10306105e9565b9050600047905060008211610c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5190612750565b60405180910390fd5b60008111610c9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9490612790565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d5a57600080fd5b505afa158015610d6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d9291906120c9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e1657600080fd5b505afa158015610e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4e91906120c9565b6040518363ffffffff1660e01b8152600401610e6b929190612500565b602060405180830381600087803b158015610e8557600080fd5b505af1158015610e99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebd91906120c9565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f2a30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112e5565b81610f5730600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a99565b1015610f98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8f90612650565b60405180910390fd5b600060065490506009600a610fad9190612945565b633b9aca00610fbc9190612a63565b600681905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008061100e6108bb565b426040518863ffffffff1660e01b815260040161103096959493929190612552565b6060604051808303818588803b15801561104957600080fd5b505af115801561105d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061108291906121e2565b50505080600681905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161112b929190612529565b602060405180830381600087803b15801561114557600080fd5b505af1158015611159573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117d91906121b9565b50505050565b61118b6112dd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f90612730565b60405180910390fd5b600047905060008111611260576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611257906126f0565b60405180910390fd5b6112686108bb565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112ad573d6000803e3d6000fd5b5050565b600081836112bf9190612a63565b905092915050565b600081836112d591906128c1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906127d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bc90612610565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a391906127f0565b60405180910390a3505050565b6001600a60156101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561153b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611532906127b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a2906125f0565b60405180910390fd5b600081116115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590612770565b60405180910390fd5b600a60149054906101000a900460ff1680611672575061160c6108bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167157503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b806116ca5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611709576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611700906126b0565b60405180910390fd5b60065461175e82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b1115806117d4575061176e6108bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117d357503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b8061182c5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806118f857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118f757506118706108bb565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118f65750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b5b611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612710565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111156119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b0906126d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3290612670565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac6919061286b565b11611b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afd90612690565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bac5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cd557600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c1057506000600754115b15611c4457611c3d6064611c2f600754856112b190919063ffffffff16565b6112c790919063ffffffff16565b9050611cd4565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca357506000600854115b15611cd357611cd06064611cc2600854856112b190919063ffffffff16565b6112c790919063ffffffff16565b90505b5b5b6000611cea828461202190919063ffffffff16565b9050611d3e83600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dd381600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7391906127f0565b60405180910390a36000821115611f9457611edd8260016000611e946108bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461200b90919063ffffffff16565b60016000611ee96108bb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2f6108bb565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f8b91906127f0565b60405180910390a35b50506000600a60156101000a81548160ff021916908315150217905550505050565b6000838311158290611ffe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff591906125ce565b60405180910390fd5b5082840390509392505050565b60008183612019919061286b565b905092915050565b6000818361202f9190612abd565b905092915050565b60008135905061204681613013565b92915050565b60008151905061205b81613013565b92915050565b6000815190506120708161302a565b92915050565b60008135905061208581613041565b92915050565b60008151905061209a81613041565b92915050565b6000602082840312156120b257600080fd5b60006120c084828501612037565b91505092915050565b6000602082840312156120db57600080fd5b60006120e98482850161204c565b91505092915050565b6000806040838503121561210557600080fd5b600061211385828601612037565b925050602061212485828601612037565b9150509250929050565b60008060006060848603121561214357600080fd5b600061215186828701612037565b935050602061216286828701612037565b925050604061217386828701612076565b9150509250925092565b6000806040838503121561219057600080fd5b600061219e85828601612037565b92505060206121af85828601612076565b9150509250929050565b6000602082840312156121cb57600080fd5b60006121d984828501612061565b91505092915050565b6000806000606084860312156121f757600080fd5b60006122058682870161208b565b93505060206122168682870161208b565b92505060406122278682870161208b565b9150509250925092565b61223a81612af1565b82525050565b61224981612b03565b82525050565b61225881612b46565b82525050565b60006122698261284f565b612273818561285a565b9350612283818560208601612b58565b61228c81612be9565b840191505092915050565b60006122a460238361285a565b91506122af82612c07565b604082019050919050565b60006122c760228361285a565b91506122d282612c56565b604082019050919050565b60006122ea60178361285a565b91506122f582612ca5565b602082019050919050565b600061230d60268361285a565b915061231882612cce565b604082019050919050565b600061233060268361285a565b915061233b82612d1d565b604082019050919050565b600061235360188361285a565b915061235e82612d6c565b602082019050919050565b600061237660178361285a565b915061238182612d95565b602082019050919050565b6000612399601f8361285a565b91506123a482612dbe565b602082019050919050565b60006123bc601b8361285a565b91506123c782612de7565b602082019050919050565b60006123df602d8361285a565b91506123ea82612e10565b604082019050919050565b600061240260208361285a565b915061240d82612e5f565b602082019050919050565b6000612425602a8361285a565b915061243082612e88565b604082019050919050565b600061244860298361285a565b915061245382612ed7565b604082019050919050565b600061246b60278361285a565b915061247682612f26565b604082019050919050565b600061248e60258361285a565b915061249982612f75565b604082019050919050565b60006124b160248361285a565b91506124bc82612fc4565b604082019050919050565b6124d081612b2f565b82525050565b6124df81612b39565b82525050565b60006020820190506124fa6000830184612231565b92915050565b60006040820190506125156000830185612231565b6125226020830184612231565b9392505050565b600060408201905061253e6000830185612231565b61254b60208301846124c7565b9392505050565b600060c0820190506125676000830189612231565b61257460208301886124c7565b612581604083018761224f565b61258e606083018661224f565b61259b6080830185612231565b6125a860a08301846124c7565b979650505050505050565b60006020820190506125c86000830184612240565b92915050565b600060208201905081810360008301526125e8818461225e565b905092915050565b6000602082019050818103600083015261260981612297565b9050919050565b60006020820190508181036000830152612629816122ba565b9050919050565b60006020820190508181036000830152612649816122dd565b9050919050565b6000602082019050818103600083015261266981612300565b9050919050565b6000602082019050818103600083015261268981612323565b9050919050565b600060208201905081810360008301526126a981612346565b9050919050565b600060208201905081810360008301526126c981612369565b9050919050565b600060208201905081810360008301526126e98161238c565b9050919050565b60006020820190508181036000830152612709816123af565b9050919050565b60006020820190508181036000830152612729816123d2565b9050919050565b60006020820190508181036000830152612749816123f5565b9050919050565b6000602082019050818103600083015261276981612418565b9050919050565b600060208201905081810360008301526127898161243b565b9050919050565b600060208201905081810360008301526127a98161245e565b9050919050565b600060208201905081810360008301526127c981612481565b9050919050565b600060208201905081810360008301526127e9816124a4565b9050919050565b600060208201905061280560008301846124c7565b92915050565b600060408201905061282060008301856124c7565b61282d60208301846124c7565b9392505050565b600060208201905061284960008301846124d6565b92915050565b600081519050919050565b600082825260208201905092915050565b600061287682612b2f565b915061288183612b2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156128b6576128b5612b8b565b5b828201905092915050565b60006128cc82612b2f565b91506128d783612b2f565b9250826128e7576128e6612bba565b5b828204905092915050565b6000808291508390505b600185111561293c5780860481111561291857612917612b8b565b5b60018516156129275780820291505b808102905061293585612bfa565b94506128fc565b94509492505050565b600061295082612b2f565b915061295b83612b39565b92506129887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612990565b905092915050565b6000826129a05760019050612a5c565b816129ae5760009050612a5c565b81600181146129c457600281146129ce576129fd565b6001915050612a5c565b60ff8411156129e0576129df612b8b565b5b8360020a9150848211156129f7576129f6612b8b565b5b50612a5c565b5060208310610133831016604e8410600b8410161715612a325782820a905083811115612a2d57612a2c612b8b565b5b612a5c565b612a3f84848460016128f2565b92509050818404811115612a5657612a55612b8b565b5b81810290505b9392505050565b6000612a6e82612b2f565b9150612a7983612b2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ab257612ab1612b8b565b5b828202905092915050565b6000612ac882612b2f565b9150612ad383612b2f565b925082821015612ae657612ae5612b8b565b5b828203905092915050565b6000612afc82612b0f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b5182612b2f565b9050919050565b60005b83811015612b76578082015181840152602081019050612b5b565b83811115612b85576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f526f75746572206973206e6f7420617070726f76656420746f207370656e642060008201527f746f6b656e730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206164646974696f6e206f766572666c6f770000000000000000600082015250565b7f54726164696e67206973206e6f74206f70656e20796574000000000000000000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f436f6e747261637420686173206e6f2045544820746f2073656e640000000000600082015250565b7f4e65772062616c616e636520776f756c642065786365656420746865206d617860008201527f2077616c6c65742073697a652e00000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f436f6e747261637420686173206e6f20746f6b656e7320746f2061646420617360008201527f206c697175696469747900000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f436f6e747261637420686173206e6f2045544820746f20616464206173206c6960008201527f7175696469747900000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b61301c81612af1565b811461302757600080fd5b50565b61303381612b03565b811461303e57600080fd5b50565b61304a81612b2f565b811461305557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208803a87281b6fae0cfda32cd5ad911f57763c8e1e95da1351135ca19fc150e6964736f6c63430008020033

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.