ETH Price: $2,236.36 (-1.69%)
Gas: 0.23 Gwei
 

Overview

Max Total Supply

1,000,000,000 RTC

Holders

7

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
RTC

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2025-05-14
*/

// SPDX-License-Identifier: MIT

  /*
    Website: https://retardcoin.tech/
    Telegram: https://t.me/retardcointech

    The dummist crypto you'll EVUR buy!!1!
  */
  
  pragma solidity ^0.8.26;

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

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

  interface IERC20 {
      function totalSupply() external view returns (uint256);
      function balanceOf(address account) external view returns (uint256);
      function transfer(address to, 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 from,
          address to,
          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);
  }

  interface IERC20Metadata is IERC20 {
      function name() external view returns (string memory);
      function symbol() external view returns (string memory);
      function decimals() external view returns (uint8);
  }

  contract ERC20 is Context, IERC20, IERC20Metadata {
      mapping(address => uint256) private _balances;
      mapping(address => mapping(address => uint256)) private _allowances;

      uint256 private _totalSupply;

      string private _name;
      string private _symbol;

      constructor(string memory name_, string memory symbol_) {
          _name = name_;
          _symbol = symbol_;
      }

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

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

      function decimals() public view virtual override returns (uint8) {
          return 18;
      }

      function totalSupply() public view virtual override returns (uint256) {
          return _totalSupply;
      }

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

      function transfer(address to, uint256 amount) public virtual override returns (bool) {
          address owner = _msgSender();
          _transfer(owner, to, amount);
          return true;
      }

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

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

      function transferFrom(
          address from,
          address to,
          uint256 amount
      ) public virtual override returns (bool) {
          address spender = _msgSender();
          _spendAllowance(from, spender, amount);
          _transfer(from, to, amount);
          return true;
      }

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

      function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
          address owner = _msgSender();
          uint256 currentAllowance = _allowances[owner][spender];
          require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
          unchecked {
              _approve(owner, spender, currentAllowance - subtractedValue);
          }

          return true;
      }

      function _transfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {
          require(from != address(0), "ERC20: transfer from the zero address");
          require(to != address(0), "ERC20: transfer to the zero address");

          _beforeTokenTransfer(from, to, amount);

          uint256 fromBalance = _balances[from];
          require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
          unchecked {
              _balances[from] = fromBalance - amount;
          }
          _balances[to] += amount;

          emit Transfer(from, to, amount);

          _afterTokenTransfer(from, to, amount);
      }

      function _mint(address account, uint256 amount) internal virtual {
          require(account != address(0), "ERC20: mint to the zero address");

          _beforeTokenTransfer(address(0), account, amount);

          _totalSupply += amount;
          _balances[account] += amount;
          emit Transfer(address(0), account, amount);

          _afterTokenTransfer(address(0), account, amount);
      }

      function _burn(address account, uint256 amount) internal virtual {
          require(account != address(0), "ERC20: burn from the zero address");

          _beforeTokenTransfer(account, address(0), amount);

          uint256 accountBalance = _balances[account];
          require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
          unchecked {
              _balances[account] = accountBalance - amount;
          }
          _totalSupply -= amount;

          emit Transfer(account, address(0), amount);

          _afterTokenTransfer(account, address(0), amount);
      }

      function _approve(
          address owner,
          address spender,
          uint256 amount
      ) internal virtual {
          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 _spendAllowance(
          address owner,
          address spender,
          uint256 amount
      ) internal virtual {
          uint256 currentAllowance = allowance(owner, spender);
          if (currentAllowance != type(uint256).max) {
              require(currentAllowance >= amount, "ERC20: insufficient allowance");
              unchecked {
                  _approve(owner, spender, currentAllowance - amount);
              }
          }
      }

      function _beforeTokenTransfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {}

      function _afterTokenTransfer(
          address from,
          address to,
          uint256 amount
      ) internal virtual {}
  }

  abstract contract Ownable is Context {
      address private _owner;

      event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

      constructor() {
          _transferOwnership(_msgSender());
      }

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

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

      function renounceOwnership() public virtual onlyOwner {
          _transferOwnership(address(0));
      }

      function transferOwnership(address newOwner) public virtual onlyOwner {
          require(newOwner != address(0), "Ownable: new owner is the zero address");
          _transferOwnership(newOwner);
      }

      function _transferOwnership(address newOwner) internal virtual {
          address oldOwner = _owner;
          _owner = newOwner;
          emit OwnershipTransferred(oldOwner, newOwner);
      }
  }

  library SafeMath {
      function add(uint256 a, uint256 b) internal pure returns (uint256) {
          return a + b;
      }

      function sub(uint256 a, uint256 b) internal pure returns (uint256) {
          return a - b;
      }

      function mul(uint256 a, uint256 b) internal pure returns (uint256) {
          return a * b;
      }

      function div(uint256 a, uint256 b) internal pure returns (uint256) {
          return a / b;
      }

      function sub(
          uint256 a,
          uint256 b,
          string memory errorMessage
      ) internal pure returns (uint256) {
          unchecked {
              require(b <= a, errorMessage);
              return a - b;
          }
      }

      function div(
          uint256 a,
          uint256 b,
          string memory errorMessage
      ) internal pure returns (uint256) {
          unchecked {
              require(b > 0, errorMessage);
              return a / b;
          }
      }
  }

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

  interface IUniswapV2Router02 {
      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);
      function swapExactTokensForETHSupportingFeeOnTransferTokens(
          uint amountIn,
          uint amountOutMin,
          address[] calldata path,
          address to,
          uint deadline
      ) external;
  }

contract RTC is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 private constant _router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

    address public uniV2Pair;
    address public immutable feeRecipientAddr;

    uint256 public maxSwap;
    uint256 public maxHoldingsLimit;
    uint256 public feeTokenThreshold;
    uint256 private _swapMaxMultiplier = 3;
    uint256 private _swapMinDivisor = 7;
    mapping(uint256 => uint256) private _swapBlocks;

    bool private _inSwap;
    mapping (address => bool) private _excludedLimits;

    constructor() ERC20("Retard Coin", "RTC") payable {
        uint256 totalSupply = 1000000000 * 1e18;

        uint256 caSupply = totalSupply.mul(2).div(100);

        maxSwap = totalSupply.mul(5).div(1000);
        maxHoldingsLimit = totalSupply.mul(15).div(1000);
        feeTokenThreshold = totalSupply.mul(5).div(1000);

        feeRecipientAddr = 0x59DD3dC89f5Bcca9C06dca47c6F0493998f14754;

        _excludedLimits[feeRecipientAddr] = true;
        _excludedLimits[msg.sender] = true;
        _excludedLimits[tx.origin] = true;
        _excludedLimits[address(this)] = true;
        _excludedLimits[address(0xdead)] = true;

        _mint(address(this), caSupply);

        _mint(tx.origin, totalSupply.sub(caSupply));

    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "Transfer from the zero address not allowed.");
        require(to != address(0), "Transfer to the zero address not allowed.");
        require(amount > 0, 'Transfer amount must be greater than zero.');

        bool excluded = _excludedLimits[from] || _excludedLimits[to];
        require(uniV2Pair != address(0) || excluded, "Liquidity pair not yet created.");

        bool isSell = to == uniV2Pair;
        bool isBuy = from == uniV2Pair;

        if ((isBuy || isSell) && maxSwap > 0 && !excluded)
            require(amount <= maxSwap, "Swap value exceeds max swap amount, try again with less swap value.");

        if (!isSell && maxHoldingsLimit > 0 && !excluded)
            require(balanceOf(to) + amount <= maxHoldingsLimit, "Balance exceeds max holdings amount, consider using a second wallet.");

        if (
          balanceOf(address(this)) >= feeTokenThreshold &&
          !_inSwap && isSell &&
          !excluded && shouldSwapBack(amount)
        ) {
            _inSwap = true;
            _swapBackTokenFees();
            _inSwap = false;
        }

        super._transfer(from, to, amount);
    }

    function shouldSwapBack(uint256 amount) private returns (bool) {
        return amount >= (_swapMinDivisor == 0 ? 0 : feeTokenThreshold / _swapMinDivisor) && _swapBlocks[block.number]++ < 2;
      }

    function _swapBackTokenFees() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance == 0) return;
        if (contractBalance > feeTokenThreshold) contractBalance = feeTokenThreshold;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();

        _approve(address(this), address(_router), contractBalance);

        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractBalance,
            0,
            path,
            feeRecipientAddr,
            block.timestamp
        );
    }

    function enableTrade() external onlyOwner {
        uniV2Pair = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }

    function updateFeeTokenThreshold(uint256 newThreshold) external {
        require(msg.sender == feeRecipientAddr || msg.sender == owner());
        require(newThreshold >= totalSupply().mul(1).div(100000), "Swap threshold cannot be lower than 0.001% total supply.");
        require(newThreshold <= totalSupply().mul(2).div(100), "Swap threshold cannot be higher than 2% total supply.");
        feeTokenThreshold = newThreshold;
    }

    function disableAllLimits() external onlyOwner {
        maxHoldingsLimit = 0;
        maxSwap = 0;
    }

    function disableHoldingLimit() external onlyOwner {
        maxHoldingsLimit = 0;
    }

    function removeMaxSwap() external onlyOwner {
        maxSwap = 0;
    }

    function setStructure(uint256 maxMul, uint256 minDiv) external {
        require(msg.sender == feeRecipientAddr || msg.sender == owner());
        require(maxMul <= 4 && minDiv != 0);
        _swapMaxMultiplier = maxMul;
        _swapMinDivisor = minDiv;
    }

    function withdrawStuckETH() external  {
        require(msg.sender == feeRecipientAddr || msg.sender == owner());
        payable(msg.sender).transfer(address(this).balance);
    }

    function withdrawStuckERC20(IERC20 token) external  {
      require(msg.sender == feeRecipientAddr || msg.sender == owner());
        token.transfer(msg.sender, token.balanceOf(address(this)));
    }

    receive() external payable {}
  }

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","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"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":[],"name":"disableAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeRecipientAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeTokenThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"maxHoldingsLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxMul","type":"uint256"},{"internalType":"uint256","name":"minDiv","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateFeeTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526003600a556007600b556040518060400160405280600b81526020017f52657461726420436f696e0000000000000000000000000000000000000000008152506040518060400160405280600381526020017f52544300000000000000000000000000000000000000000000000000000000008152508160039081610089919061085a565b508060049081610099919061085a565b5050506100b86100ad6103aa60201b60201c565b6103b160201b60201c565b5f6b033b2e3c9fd0803ce800000090505f6100f060646100e260028561047460201b90919060201c565b61048960201b90919060201c565b905061011a6103e861010c60058561047460201b90919060201c565b61048960201b90919060201c565b6007819055506101486103e861013a600f8561047460201b90919060201c565b61048960201b90919060201c565b6008819055506101766103e861016860058561047460201b90919060201c565b61048960201b90919060201c565b6009819055507359dd3dc89f5bcca9c06dca47c6f0493998f1475473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600e5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610381308261049e60201b60201c565b6103a332610398838561060160201b90919060201c565b61049e60201b60201c565b5050610afa565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81836104819190610956565b905092915050565b5f818361049691906109c4565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361050c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050390610a4e565b60405180910390fd5b61051d5f838361061660201b60201c565b8060025f82825461052e9190610a6c565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105809190610a6c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105e49190610aae565b60405180910390a36105fd5f838361061b60201b60201c565b5050565b5f818361060e9190610ac7565b905092915050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061069b57607f821691505b6020821081036106ae576106ad610657565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106d5565b61071a86836106d5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61075e61075961075484610732565b61073b565b610732565b9050919050565b5f819050919050565b61077783610744565b61078b61078382610765565b8484546106e1565b825550505050565b5f90565b61079f610793565b6107aa81848461076e565b505050565b5b818110156107cd576107c25f82610797565b6001810190506107b0565b5050565b601f821115610812576107e3816106b4565b6107ec846106c6565b810160208510156107fb578190505b61080f610807856106c6565b8301826107af565b50505b505050565b5f82821c905092915050565b5f6108325f1984600802610817565b1980831691505092915050565b5f61084a8383610823565b9150826002028217905092915050565b61086382610620565b67ffffffffffffffff81111561087c5761087b61062a565b5b6108868254610684565b6108918282856107d1565b5f60209050601f8311600181146108c2575f84156108b0578287015190505b6108ba858261083f565b865550610921565b601f1984166108d0866106b4565b5f5b828110156108f7578489015182556001820191506020850194506020810190506108d2565b868310156109145784890151610910601f891682610823565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61096082610732565b915061096b83610732565b925082820261097981610732565b915082820484148315176109905761098f610929565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6109ce82610732565b91506109d983610732565b9250826109e9576109e8610997565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a38601f836109f4565b9150610a4382610a04565b602082019050919050565b5f6020820190508181035f830152610a6581610a2c565b9050919050565b5f610a7682610732565b9150610a8183610732565b9250828201905080821115610a9957610a98610929565b5b92915050565b610aa881610732565b82525050565b5f602082019050610ac15f830184610a9f565b92915050565b5f610ad182610732565b9150610adc83610732565b9250828203905081811115610af457610af3610929565b5b92915050565b6080516132f1610b355f395f8181610a7c01528181610f3a01528181610f6401528181611220015281816113a00152611e7601526132f15ff3fe60806040526004361061019e575f3560e01c8063715018a6116100eb578063c4918b4e11610089578063dd62ed3e11610063578063dd62ed3e14610573578063f2fde38b146105af578063f442d3fb146105d7578063f5648a4f146105ff576101a5565b8063c4918b4e1461050b578063d18afa8514610535578063dad169bb1461055d576101a5565b806395d89b41116100c557806395d89b411461043f578063a457c2d714610469578063a9059cbb146104a5578063b60e06df146104e1576101a5565b8063715018a6146103d55780638bcea939146103eb5780638da5cb5b14610415576101a5565b80631ffc2998116101585780633950935111610132578063395093511461031f5780633963510b1461035b5780635564ad711461038357806370a0823114610399576101a5565b80631ffc29981461028f57806323b872dd146102b9578063313ce567146102f5576101a5565b806299d386146101a957806303f90771146101bf57806306fdde03146101d5578063095ea7b3146101ff5780630f51076f1461023b57806318160ddd14610265576101a5565b366101a557005b5f80fd5b3480156101b4575f80fd5b506101bd610615565b005b3480156101ca575f80fd5b506101d361084c565b005b3480156101e0575f80fd5b506101e96108d8565b6040516101f691906121d7565b60405180910390f35b34801561020a575f80fd5b5061022560048036038101906102209190612288565b610968565b60405161023291906122e0565b60405180910390f35b348015610246575f80fd5b5061024f61098a565b60405161025c9190612308565b60405180910390f35b348015610270575f80fd5b50610279610990565b6040516102869190612308565b60405180910390f35b34801561029a575f80fd5b506102a3610999565b6040516102b09190612308565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190612321565b61099f565b6040516102ec91906122e0565b60405180910390f35b348015610300575f80fd5b506103096109cd565b604051610316919061238c565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612288565b6109d5565b60405161035291906122e0565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c91906123e0565b610a7a565b005b34801561038e575f80fd5b50610397610c04565b005b3480156103a4575f80fd5b506103bf60048036038101906103ba919061240b565b610c89565b6040516103cc9190612308565b60405180910390f35b3480156103e0575f80fd5b506103e9610cce565b005b3480156103f6575f80fd5b506103ff610d55565b60405161040c9190612445565b60405180910390f35b348015610420575f80fd5b50610429610d7a565b6040516104369190612445565b60405180910390f35b34801561044a575f80fd5b50610453610da2565b60405161046091906121d7565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612288565b610e32565b60405161049c91906122e0565b60405180910390f35b3480156104b0575f80fd5b506104cb60048036038101906104c69190612288565b610f16565b6040516104d891906122e0565b60405180910390f35b3480156104ec575f80fd5b506104f5610f38565b6040516105029190612445565b60405180910390f35b348015610516575f80fd5b5061051f610f5c565b60405161052c9190612308565b60405180910390f35b348015610540575f80fd5b5061055b6004803603810190610556919061245e565b610f62565b005b348015610568575f80fd5b50610571611021565b005b34801561057e575f80fd5b506105996004803603810190610594919061249c565b6110a6565b6040516105a69190612308565b60405180910390f35b3480156105ba575f80fd5b506105d560048036038101906105d0919061240b565b611128565b005b3480156105e2575f80fd5b506105fd60048036038101906105f891906124da565b61121e565b005b34801561060a575f80fd5b5061061361139e565b005b61061d611478565b73ffffffffffffffffffffffffffffffffffffffff1661063b610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610691576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106889061254f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107129190612581565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107af9190612581565b6040518363ffffffff1660e01b81526004016107cc9291906125ac565b602060405180830381865afa1580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190612581565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610854611478565b73ffffffffffffffffffffffffffffffffffffffff16610872610d7a565b73ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf9061254f565b60405180910390fd5b5f6008819055505f600781905550565b6060600380546108e790612600565b80601f016020809104026020016040519081016040528092919081815260200182805461091390612600565b801561095e5780601f106109355761010080835404028352916020019161095e565b820191905f5260205f20905b81548152906001019060200180831161094157829003601f168201915b5050505050905090565b5f80610972611478565b905061097f81858561147f565b600191505092915050565b60085481565b5f600254905090565b60095481565b5f806109a9611478565b90506109b6858285611642565b6109c18585856116cd565b60019150509392505050565b5f6012905090565b5f806109df611478565b9050610a6f81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a6a919061265d565b61147f565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b065750610ad7610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b0e575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b649190612445565b602060405180830381865afa158015610b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba391906126a4565b6040518363ffffffff1660e01b8152600401610bc09291906126cf565b6020604051808303815f875af1158015610bdc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c009190612720565b5050565b610c0c611478565b73ffffffffffffffffffffffffffffffffffffffff16610c2a610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c779061254f565b60405180910390fd5b5f600881905550565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cd6611478565b73ffffffffffffffffffffffffffffffffffffffff16610cf4610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061254f565b60405180910390fd5b610d535f611b47565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610db190612600565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddd90612600565b8015610e285780601f10610dff57610100808354040283529160200191610e28565b820191905f5260205f20905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b5f80610e3c611478565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906127bb565b60405180910390fd5b610f0a828686840361147f565b60019250505092915050565b5f80610f20611478565b9050610f2d8185856116cd565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60075481565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fee5750610fbf610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ff6575f80fd5b6004821115801561100757505f8114155b61100f575f80fd5b81600a8190555080600b819055505050565b611029611478565b73ffffffffffffffffffffffffffffffffffffffff16611047610d7a565b73ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110949061254f565b60405180910390fd5b5f600781905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611130611478565b73ffffffffffffffffffffffffffffffffffffffff1661114e610d7a565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b9061254f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612849565b60405180910390fd5b61121b81611b47565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112aa575061127b610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112b2575f80fd5b6112e2620186a06112d460016112c6610990565b611c0a90919063ffffffff16565b611c1f90919063ffffffff16565b811015611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906128d7565b60405180910390fd5b61135260646113446002611336610990565b611c0a90919063ffffffff16565b611c1f90919063ffffffff16565b811115611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612965565b60405180910390fd5b8060098190555050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061142a57506113fb610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611432575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611475573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e4906129f3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290612a81565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116359190612308565b60405180910390a3505050565b5f61164d84846110a6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116c757818110156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612ae9565b60405180910390fd5b6116c6848484840361147f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290612b77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612c05565b60405180910390fd5b5f81116117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612c93565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118875750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806118e25750805b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612cfb565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905080806119d05750815b80156119dd57505f600754115b80156119e7575082155b15611a3257600754841115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890612daf565b60405180910390fd5b5b81158015611a4157505f600854115b8015611a4b575082155b15611aa95760085484611a5d87610c89565b611a67919061265d565b1115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90612e63565b60405180910390fd5b5b600954611ab530610c89565b10158015611acf5750600d5f9054906101000a900460ff16155b8015611ad85750815b8015611ae2575082155b8015611af35750611af284611c34565b5b15611b34576001600d5f6101000a81548160ff021916908315150217905550611b1a611c8f565b5f600d5f6101000a81548160ff0219169083151502179055505b611b3f868686611ee8565b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611c179190612e81565b905092915050565b5f8183611c2c9190612eef565b905092915050565b5f80600b5414611c5357600b54600954611c4e9190612eef565b611c55565b5f5b8210158015611c8857506002600c5f4381526020019081526020015f205f815480929190611c8290612f1f565b91905055105b9050919050565b5f611c9930610c89565b90505f8103611ca85750611ee6565b600954811115611cb85760095490505b5f600267ffffffffffffffff811115611cd457611cd3612f66565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b50905030815f81518110611d1957611d18612f93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd49190612581565b81600181518110611de857611de7612f93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4130737a250d5630b4cf539739df2c5dacb4c659f2488d8461147f565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f0000000000000000000000000000000000000000000000000000000000000000426040518663ffffffff1660e01b8152600401611eb69594939291906130b9565b5f604051808303815f87803b158015611ecd575f80fd5b505af1158015611edf573d5f803e3d5ffd5b5050505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d90613181565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb9061320f565b60405180910390fd5b611fcf83838361215d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612052576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120499061329d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546120e0919061265d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121449190612308565b60405180910390a3612157848484612162565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a982612167565b6121b38185612171565b93506121c3818560208601612181565b6121cc8161218f565b840191505092915050565b5f6020820190508181035f8301526121ef818461219f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612224826121fb565b9050919050565b6122348161221a565b811461223e575f80fd5b50565b5f8135905061224f8161222b565b92915050565b5f819050919050565b61226781612255565b8114612271575f80fd5b50565b5f813590506122828161225e565b92915050565b5f806040838503121561229e5761229d6121f7565b5b5f6122ab85828601612241565b92505060206122bc85828601612274565b9150509250929050565b5f8115159050919050565b6122da816122c6565b82525050565b5f6020820190506122f35f8301846122d1565b92915050565b61230281612255565b82525050565b5f60208201905061231b5f8301846122f9565b92915050565b5f805f60608486031215612338576123376121f7565b5b5f61234586828701612241565b935050602061235686828701612241565b925050604061236786828701612274565b9150509250925092565b5f60ff82169050919050565b61238681612371565b82525050565b5f60208201905061239f5f83018461237d565b92915050565b5f6123af8261221a565b9050919050565b6123bf816123a5565b81146123c9575f80fd5b50565b5f813590506123da816123b6565b92915050565b5f602082840312156123f5576123f46121f7565b5b5f612402848285016123cc565b91505092915050565b5f602082840312156124205761241f6121f7565b5b5f61242d84828501612241565b91505092915050565b61243f8161221a565b82525050565b5f6020820190506124585f830184612436565b92915050565b5f8060408385031215612474576124736121f7565b5b5f61248185828601612274565b925050602061249285828601612274565b9150509250929050565b5f80604083850312156124b2576124b16121f7565b5b5f6124bf85828601612241565b92505060206124d085828601612241565b9150509250929050565b5f602082840312156124ef576124ee6121f7565b5b5f6124fc84828501612274565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612539602083612171565b915061254482612505565b602082019050919050565b5f6020820190508181035f8301526125668161252d565b9050919050565b5f8151905061257b8161222b565b92915050565b5f60208284031215612596576125956121f7565b5b5f6125a38482850161256d565b91505092915050565b5f6040820190506125bf5f830185612436565b6125cc6020830184612436565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061261757607f821691505b60208210810361262a576126296125d3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266782612255565b915061267283612255565b925082820190508082111561268a57612689612630565b5b92915050565b5f8151905061269e8161225e565b92915050565b5f602082840312156126b9576126b86121f7565b5b5f6126c684828501612690565b91505092915050565b5f6040820190506126e25f830185612436565b6126ef60208301846122f9565b9392505050565b6126ff816122c6565b8114612709575f80fd5b50565b5f8151905061271a816126f6565b92915050565b5f60208284031215612735576127346121f7565b5b5f6127428482850161270c565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6127a5602583612171565b91506127b08261274b565b604082019050919050565b5f6020820190508181035f8301526127d281612799565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612833602683612171565b915061283e826127d9565b604082019050919050565b5f6020820190508181035f83015261286081612827565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6128c1603883612171565b91506128cc82612867565b604082019050919050565b5f6020820190508181035f8301526128ee816128b5565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61294f603583612171565b915061295a826128f5565b604082019050919050565b5f6020820190508181035f83015261297c81612943565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129dd602483612171565b91506129e882612983565b604082019050919050565b5f6020820190508181035f830152612a0a816129d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a6b602283612171565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ad3601d83612171565b9150612ade82612a9f565b602082019050919050565b5f6020820190508181035f830152612b0081612ac7565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612b61602b83612171565b9150612b6c82612b07565b604082019050919050565b5f6020820190508181035f830152612b8e81612b55565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612bef602983612171565b9150612bfa82612b95565b604082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612c7d602a83612171565b9150612c8882612c23565b604082019050919050565b5f6020820190508181035f830152612caa81612c71565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612ce5601f83612171565b9150612cf082612cb1565b602082019050919050565b5f6020820190508181035f830152612d1281612cd9565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f612d99604383612171565b9150612da482612d19565b606082019050919050565b5f6020820190508181035f830152612dc681612d8d565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f612e4d604483612171565b9150612e5882612dcd565b606082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b5f612e8b82612255565b9150612e9683612255565b9250828202612ea481612255565b91508282048414831517612ebb57612eba612630565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ef982612255565b9150612f0483612255565b925082612f1457612f13612ec2565b5b828204905092915050565b5f612f2982612255565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5b57612f5a612630565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f612fec612fe7612fe284612fc0565b612fc9565b612255565b9050919050565b612ffc81612fd2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130348161221a565b82525050565b5f613045838361302b565b60208301905092915050565b5f602082019050919050565b5f61306782613002565b613071818561300c565b935061307c8361301c565b805f5b838110156130ac578151613093888261303a565b975061309e83613051565b92505060018101905061307f565b5085935050505092915050565b5f60a0820190506130cc5f8301886122f9565b6130d96020830187612ff3565b81810360408301526130eb818661305d565b90506130fa6060830185612436565b61310760808301846122f9565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61316b602583612171565b915061317682613111565b604082019050919050565b5f6020820190508181035f8301526131988161315f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131f9602383612171565b91506132048261319f565b604082019050919050565b5f6020820190508181035f830152613226816131ed565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613287602683612171565b91506132928261322d565b604082019050919050565b5f6020820190508181035f8301526132b48161327b565b905091905056fea26469706673582212201d21b9a2fc28ae2baa7c213ed7e0ac03963d56e14f2bf8ee78c28300fb88799564736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061019e575f3560e01c8063715018a6116100eb578063c4918b4e11610089578063dd62ed3e11610063578063dd62ed3e14610573578063f2fde38b146105af578063f442d3fb146105d7578063f5648a4f146105ff576101a5565b8063c4918b4e1461050b578063d18afa8514610535578063dad169bb1461055d576101a5565b806395d89b41116100c557806395d89b411461043f578063a457c2d714610469578063a9059cbb146104a5578063b60e06df146104e1576101a5565b8063715018a6146103d55780638bcea939146103eb5780638da5cb5b14610415576101a5565b80631ffc2998116101585780633950935111610132578063395093511461031f5780633963510b1461035b5780635564ad711461038357806370a0823114610399576101a5565b80631ffc29981461028f57806323b872dd146102b9578063313ce567146102f5576101a5565b806299d386146101a957806303f90771146101bf57806306fdde03146101d5578063095ea7b3146101ff5780630f51076f1461023b57806318160ddd14610265576101a5565b366101a557005b5f80fd5b3480156101b4575f80fd5b506101bd610615565b005b3480156101ca575f80fd5b506101d361084c565b005b3480156101e0575f80fd5b506101e96108d8565b6040516101f691906121d7565b60405180910390f35b34801561020a575f80fd5b5061022560048036038101906102209190612288565b610968565b60405161023291906122e0565b60405180910390f35b348015610246575f80fd5b5061024f61098a565b60405161025c9190612308565b60405180910390f35b348015610270575f80fd5b50610279610990565b6040516102869190612308565b60405180910390f35b34801561029a575f80fd5b506102a3610999565b6040516102b09190612308565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190612321565b61099f565b6040516102ec91906122e0565b60405180910390f35b348015610300575f80fd5b506103096109cd565b604051610316919061238c565b60405180910390f35b34801561032a575f80fd5b5061034560048036038101906103409190612288565b6109d5565b60405161035291906122e0565b60405180910390f35b348015610366575f80fd5b50610381600480360381019061037c91906123e0565b610a7a565b005b34801561038e575f80fd5b50610397610c04565b005b3480156103a4575f80fd5b506103bf60048036038101906103ba919061240b565b610c89565b6040516103cc9190612308565b60405180910390f35b3480156103e0575f80fd5b506103e9610cce565b005b3480156103f6575f80fd5b506103ff610d55565b60405161040c9190612445565b60405180910390f35b348015610420575f80fd5b50610429610d7a565b6040516104369190612445565b60405180910390f35b34801561044a575f80fd5b50610453610da2565b60405161046091906121d7565b60405180910390f35b348015610474575f80fd5b5061048f600480360381019061048a9190612288565b610e32565b60405161049c91906122e0565b60405180910390f35b3480156104b0575f80fd5b506104cb60048036038101906104c69190612288565b610f16565b6040516104d891906122e0565b60405180910390f35b3480156104ec575f80fd5b506104f5610f38565b6040516105029190612445565b60405180910390f35b348015610516575f80fd5b5061051f610f5c565b60405161052c9190612308565b60405180910390f35b348015610540575f80fd5b5061055b6004803603810190610556919061245e565b610f62565b005b348015610568575f80fd5b50610571611021565b005b34801561057e575f80fd5b506105996004803603810190610594919061249c565b6110a6565b6040516105a69190612308565b60405180910390f35b3480156105ba575f80fd5b506105d560048036038101906105d0919061240b565b611128565b005b3480156105e2575f80fd5b506105fd60048036038101906105f891906124da565b61121e565b005b34801561060a575f80fd5b5061061361139e565b005b61061d611478565b73ffffffffffffffffffffffffffffffffffffffff1661063b610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610691576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106889061254f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107129190612581565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107af9190612581565b6040518363ffffffff1660e01b81526004016107cc9291906125ac565b602060405180830381865afa1580156107e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b9190612581565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610854611478565b73ffffffffffffffffffffffffffffffffffffffff16610872610d7a565b73ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf9061254f565b60405180910390fd5b5f6008819055505f600781905550565b6060600380546108e790612600565b80601f016020809104026020016040519081016040528092919081815260200182805461091390612600565b801561095e5780601f106109355761010080835404028352916020019161095e565b820191905f5260205f20905b81548152906001019060200180831161094157829003601f168201915b5050505050905090565b5f80610972611478565b905061097f81858561147f565b600191505092915050565b60085481565b5f600254905090565b60095481565b5f806109a9611478565b90506109b6858285611642565b6109c18585856116cd565b60019150509392505050565b5f6012905090565b5f806109df611478565b9050610a6f81858560015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610a6a919061265d565b61147f565b600191505092915050565b7f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f1475473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610b065750610ad7610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610b0e575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b649190612445565b602060405180830381865afa158015610b7f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba391906126a4565b6040518363ffffffff1660e01b8152600401610bc09291906126cf565b6020604051808303815f875af1158015610bdc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c009190612720565b5050565b610c0c611478565b73ffffffffffffffffffffffffffffffffffffffff16610c2a610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c779061254f565b60405180910390fd5b5f600881905550565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cd6611478565b73ffffffffffffffffffffffffffffffffffffffff16610cf4610d7a565b73ffffffffffffffffffffffffffffffffffffffff1614610d4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d419061254f565b60405180910390fd5b610d535f611b47565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610db190612600565b80601f0160208091040260200160405190810160405280929190818152602001828054610ddd90612600565b8015610e285780601f10610dff57610100808354040283529160200191610e28565b820191905f5260205f20905b815481529060010190602001808311610e0b57829003601f168201915b5050505050905090565b5f80610e3c611478565b90505f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef4906127bb565b60405180910390fd5b610f0a828686840361147f565b60019250505092915050565b5f80610f20611478565b9050610f2d8185856116cd565b600191505092915050565b7f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f1475481565b60075481565b7f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f1475473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fee5750610fbf610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ff6575f80fd5b6004821115801561100757505f8114155b61100f575f80fd5b81600a8190555080600b819055505050565b611029611478565b73ffffffffffffffffffffffffffffffffffffffff16611047610d7a565b73ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110949061254f565b60405180910390fd5b5f600781905550565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611130611478565b73ffffffffffffffffffffffffffffffffffffffff1661114e610d7a565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b9061254f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612849565b60405180910390fd5b61121b81611b47565b50565b7f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f1475473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806112aa575061127b610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6112b2575f80fd5b6112e2620186a06112d460016112c6610990565b611c0a90919063ffffffff16565b611c1f90919063ffffffff16565b811015611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b906128d7565b60405180910390fd5b61135260646113446002611336610990565b611c0a90919063ffffffff16565b611c1f90919063ffffffff16565b811115611394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138b90612965565b60405180910390fd5b8060098190555050565b7f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f1475473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061142a57506113fb610d7a565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611432575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611475573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e4906129f3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361155b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155290612a81565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116359190612308565b60405180910390a3505050565b5f61164d84846110a6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116c757818110156116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b090612ae9565b60405180910390fd5b6116c6848484840361147f565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361173b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173290612b77565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612c05565b60405180910390fd5b5f81116117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612c93565b60405180910390fd5b5f600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118875750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90505f73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415806118e25750805b611921576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191890612cfb565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161490505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905080806119d05750815b80156119dd57505f600754115b80156119e7575082155b15611a3257600754841115611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890612daf565b60405180910390fd5b5b81158015611a4157505f600854115b8015611a4b575082155b15611aa95760085484611a5d87610c89565b611a67919061265d565b1115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90612e63565b60405180910390fd5b5b600954611ab530610c89565b10158015611acf5750600d5f9054906101000a900460ff16155b8015611ad85750815b8015611ae2575082155b8015611af35750611af284611c34565b5b15611b34576001600d5f6101000a81548160ff021916908315150217905550611b1a611c8f565b5f600d5f6101000a81548160ff0219169083151502179055505b611b3f868686611ee8565b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611c179190612e81565b905092915050565b5f8183611c2c9190612eef565b905092915050565b5f80600b5414611c5357600b54600954611c4e9190612eef565b611c55565b5f5b8210158015611c8857506002600c5f4381526020019081526020015f205f815480929190611c8290612f1f565b91905055105b9050919050565b5f611c9930610c89565b90505f8103611ca85750611ee6565b600954811115611cb85760095490505b5f600267ffffffffffffffff811115611cd457611cd3612f66565b5b604051908082528060200260200182016040528015611d025781602001602082028036833780820191505090505b50905030815f81518110611d1957611d18612f93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611db0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dd49190612581565b81600181518110611de857611de7612f93565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e4130737a250d5630b4cf539739df2c5dacb4c659f2488d8461147f565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f847f00000000000000000000000059dd3dc89f5bcca9c06dca47c6f0493998f14754426040518663ffffffff1660e01b8152600401611eb69594939291906130b9565b5f604051808303815f87803b158015611ecd575f80fd5b505af1158015611edf573d5f803e3d5ffd5b5050505050505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4d90613181565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb9061320f565b60405180910390fd5b611fcf83838361215d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612052576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120499061329d565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546120e0919061265d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121449190612308565b60405180910390a3612157848484612162565b50505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a982612167565b6121b38185612171565b93506121c3818560208601612181565b6121cc8161218f565b840191505092915050565b5f6020820190508181035f8301526121ef818461219f565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612224826121fb565b9050919050565b6122348161221a565b811461223e575f80fd5b50565b5f8135905061224f8161222b565b92915050565b5f819050919050565b61226781612255565b8114612271575f80fd5b50565b5f813590506122828161225e565b92915050565b5f806040838503121561229e5761229d6121f7565b5b5f6122ab85828601612241565b92505060206122bc85828601612274565b9150509250929050565b5f8115159050919050565b6122da816122c6565b82525050565b5f6020820190506122f35f8301846122d1565b92915050565b61230281612255565b82525050565b5f60208201905061231b5f8301846122f9565b92915050565b5f805f60608486031215612338576123376121f7565b5b5f61234586828701612241565b935050602061235686828701612241565b925050604061236786828701612274565b9150509250925092565b5f60ff82169050919050565b61238681612371565b82525050565b5f60208201905061239f5f83018461237d565b92915050565b5f6123af8261221a565b9050919050565b6123bf816123a5565b81146123c9575f80fd5b50565b5f813590506123da816123b6565b92915050565b5f602082840312156123f5576123f46121f7565b5b5f612402848285016123cc565b91505092915050565b5f602082840312156124205761241f6121f7565b5b5f61242d84828501612241565b91505092915050565b61243f8161221a565b82525050565b5f6020820190506124585f830184612436565b92915050565b5f8060408385031215612474576124736121f7565b5b5f61248185828601612274565b925050602061249285828601612274565b9150509250929050565b5f80604083850312156124b2576124b16121f7565b5b5f6124bf85828601612241565b92505060206124d085828601612241565b9150509250929050565b5f602082840312156124ef576124ee6121f7565b5b5f6124fc84828501612274565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612539602083612171565b915061254482612505565b602082019050919050565b5f6020820190508181035f8301526125668161252d565b9050919050565b5f8151905061257b8161222b565b92915050565b5f60208284031215612596576125956121f7565b5b5f6125a38482850161256d565b91505092915050565b5f6040820190506125bf5f830185612436565b6125cc6020830184612436565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061261757607f821691505b60208210810361262a576126296125d3565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61266782612255565b915061267283612255565b925082820190508082111561268a57612689612630565b5b92915050565b5f8151905061269e8161225e565b92915050565b5f602082840312156126b9576126b86121f7565b5b5f6126c684828501612690565b91505092915050565b5f6040820190506126e25f830185612436565b6126ef60208301846122f9565b9392505050565b6126ff816122c6565b8114612709575f80fd5b50565b5f8151905061271a816126f6565b92915050565b5f60208284031215612735576127346121f7565b5b5f6127428482850161270c565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6127a5602583612171565b91506127b08261274b565b604082019050919050565b5f6020820190508181035f8301526127d281612799565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612833602683612171565b915061283e826127d9565b604082019050919050565b5f6020820190508181035f83015261286081612827565b9050919050565b7f53776170207468726573686f6c642063616e6e6f74206265206c6f77657220745f8201527f68616e20302e3030312520746f74616c20737570706c792e0000000000000000602082015250565b5f6128c1603883612171565b91506128cc82612867565b604082019050919050565b5f6020820190508181035f8301526128ee816128b5565b9050919050565b7f53776170207468726573686f6c642063616e6e6f7420626520686967686572205f8201527f7468616e20322520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61294f603583612171565b915061295a826128f5565b604082019050919050565b5f6020820190508181035f83015261297c81612943565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129dd602483612171565b91506129e882612983565b604082019050919050565b5f6020820190508181035f830152612a0a816129d1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a6b602283612171565b9150612a7682612a11565b604082019050919050565b5f6020820190508181035f830152612a9881612a5f565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f612ad3601d83612171565b9150612ade82612a9f565b602082019050919050565b5f6020820190508181035f830152612b0081612ac7565b9050919050565b7f5472616e736665722066726f6d20746865207a65726f2061646472657373206e5f8201527f6f7420616c6c6f7765642e000000000000000000000000000000000000000000602082015250565b5f612b61602b83612171565b9150612b6c82612b07565b604082019050919050565b5f6020820190508181035f830152612b8e81612b55565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373206e6f745f8201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000602082015250565b5f612bef602983612171565b9150612bfa82612b95565b604082019050919050565b5f6020820190508181035f830152612c1c81612be3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f2e00000000000000000000000000000000000000000000602082015250565b5f612c7d602a83612171565b9150612c8882612c23565b604082019050919050565b5f6020820190508181035f830152612caa81612c71565b9050919050565b7f4c69717569646974792070616972206e6f742079657420637265617465642e005f82015250565b5f612ce5601f83612171565b9150612cf082612cb1565b602082019050919050565b5f6020820190508181035f830152612d1281612cd9565b9050919050565b7f537761702076616c75652065786365656473206d6178207377617020616d6f755f8201527f6e742c2074727920616761696e2077697468206c65737320737761702076616c60208201527f75652e0000000000000000000000000000000000000000000000000000000000604082015250565b5f612d99604383612171565b9150612da482612d19565b606082019050919050565b5f6020820190508181035f830152612dc681612d8d565b9050919050565b7f42616c616e63652065786365656473206d617820686f6c64696e677320616d6f5f8201527f756e742c20636f6e7369646572207573696e672061207365636f6e642077616c60208201527f6c65742e00000000000000000000000000000000000000000000000000000000604082015250565b5f612e4d604483612171565b9150612e5882612dcd565b606082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b5f612e8b82612255565b9150612e9683612255565b9250828202612ea481612255565b91508282048414831517612ebb57612eba612630565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ef982612255565b9150612f0483612255565b925082612f1457612f13612ec2565b5b828204905092915050565b5f612f2982612255565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5b57612f5a612630565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f819050919050565b5f612fec612fe7612fe284612fc0565b612fc9565b612255565b9050919050565b612ffc81612fd2565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130348161221a565b82525050565b5f613045838361302b565b60208301905092915050565b5f602082019050919050565b5f61306782613002565b613071818561300c565b935061307c8361301c565b805f5b838110156130ac578151613093888261303a565b975061309e83613051565b92505060018101905061307f565b5085935050505092915050565b5f60a0820190506130cc5f8301886122f9565b6130d96020830187612ff3565b81810360408301526130eb818661305d565b90506130fa6060830185612436565b61310760808301846122f9565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61316b602583612171565b915061317682613111565b604082019050919050565b5f6020820190508181035f8301526131988161315f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131f9602383612171565b91506132048261319f565b604082019050919050565b5f6020820190508181035f830152613226816131ed565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613287602683612171565b91506132928261322d565b604082019050919050565b5f6020820190508181035f8301526132b48161327b565b905091905056fea26469706673582212201d21b9a2fc28ae2baa7c213ed7e0ac03963d56e14f2bf8ee78c28300fb88799564736f6c634300081a0033

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.