ETH Price: $3,285.63 (+1.21%)
Gas: 2 Gwei

Token

DOGE (DOGE)
 

Overview

Max Total Supply

1,000,000,000 DOGE

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.330322434 DOGE

Value
$0.00
0xd8b7bdc37c474afcb43d2a9d74b89c484eb7d72e
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:
DOGE

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-29
*/

/**
    Website: https://dogecommunity.vip
    Telegeram: https://t.me/dogecommunityerc
    Twitter: https://twitter.com/Doge_community_

*/   
 
// SPDX-License-Identifier: MIT

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

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


contract Ownable is Context {
    address private _owner;
    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 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);
    }
    
    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 DOGE is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping(address => bool) private isBots;
    address payable private MarketingWallet;

    uint256 public swapTaxes = 10;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals; 
    string private constant _name = "DOGE";
    string private constant _symbol = "DOGE";
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    uint256 private _taxSwap = 50000000 * 10**_decimals;
    uint256 public maxTxAmount = 20000000 * 10**_decimals;
    
    uint256 private  genesis_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 99;
    
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingOpen = false;
    bool private inSwap = false;
    bool public swapEnabled = false;
   
    // Events
    event FeesUpdated(uint256 indexed _feeAmount);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event FeesRecieverUpdated(address indexed _newWallet);
    event SwapThreshouldUpdated(uint256 indexed tokenAmount);
    event SwapBackSettingUpdated(bool indexed state);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
           if (block.chainid == 56){
     uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
     }
      else if(block.chainid == 1 || block.chainid == 5){
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
      }
      else if(block.chainid == 42161){
           uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
      }
     else  if (block.chainid == 97){
     uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else  if (block.chainid == 8453){
     uniswapV2Router = IUniswapV2Router02(0x4cf76043B3f97ba06917cBd90F9e3A2AAC1B306e); // BaseChian rocketSwap Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        
         MarketingWallet = payable(0x1B53cBBA245A730AaC53913F591D85781ca5f380);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        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 {
        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");
        require(!isBots[from] && !isBots[to], "You can't transfer tokens");
         
         uint256 taxAmount;
         uint256 feeswap;

         if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
              require(tradingOpen,"wait for trading to open");
            }
         
         if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number < genesis_block + deadline){
              feeswap = launchtax;
          }
           
         if (from == uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Max TxAmount is 2%");
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Max TxAmount is 2%");
          }
          
          if(to != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
              require(balanceOf(to) + amount <= maxTxAmount, "Max TxAmount is 2%");
          }
  
            taxAmount = amount * (swapTaxes) / (100);
            feeswap = taxAmount;
           
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                  feeswap = 0;
         }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance >= _taxSwap) {
                swapTokensForEth(_taxSwap);
                
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - (amount);
        _balances[to] = _balances[to] + (amount - (feeswap));
        emit Transfer(from, to, amount - (feeswap));
        
        if(feeswap > 0){
          _balances[address(this)] = _balances[address(this)] + (feeswap);
          emit Transfer(from, address(this),feeswap);
        }
    } 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }

   function excludeFromFee(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function includeFromFee(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function SetFee(uint256 _feeAmount) external onlyOwner {
       require(_feeAmount <= 70, "Must keep fees at 70% or less");
        swapTaxes = _feeAmount;
      emit FeesUpdated(_feeAmount);
   }
    
    function setMarketingWallet(address payable _newWallet) external onlyOwner {
       require(_newWallet != address(this), "CA will not be the Fee Reciever");
       require(_newWallet != address(0), "0 addy will not be the fee Reciever");
       MarketingWallet = _newWallet;
      _isExcludedFromFee[_newWallet] = true;
    emit FeesRecieverUpdated(_newWallet);
    }
    
    function setSwapThreshould(uint256 tokenAmount) external onlyOwner {
        require(tokenAmount <= 1e7, "amount must be less than or equal to 1% of the supply");
        require(tokenAmount >= 1e6, "amount must be greater than or equal to 0.1% of the supply");
        _taxSwap = tokenAmount * 10**_decimals;
    emit SwapThreshouldUpdated(tokenAmount);
    }

   function addBlacklist(address account) external onlyOwner {
        isBots[account] = true;
    }

   function removeBlacklist(address account) external onlyOwner {
        isBots[account] = false;
    }
   
    function removeTxLimits() external onlyOwner {
        maxTxAmount = _tTotal;
    }

   function setMaxTxLimits(uint256 amount) external onlyOwner {
       require(amount >= 1e6, "amount must be greater than or equal to 0.1% of the supply");
        maxTxAmount = amount * 10**_decimals;
    }
   
   function setSwapBackSetting(bool state) external onlyOwner {
        swapEnabled = state;
     emit SwapBackSettingUpdated(state);
    }

  function addLPO() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
  
   function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
       genesis_block = block.number;
            deadline = 3;
      emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function ClearERC20Tokens(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
 
 function ClearETHBalance() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }
}

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":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"FeesUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SwapThreshouldUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClearERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ClearETHBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLPO","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"setSwapThreshould","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a6006556009600a6200001991906200060d565b62000029906302faf08062000625565b6007556200003a6009600a6200060d565b6200004a906301312d0062000625565b6008556000600a556063600b55600d805462ffffff60a01b191690553480156200007357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35046603803620000ea57600c80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200020a565b4660011480620000fa5750466005145b156200012c57600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200020a565b4661a4b1036200016257600c80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b479975061790556200020a565b466061036200019757600c80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790556200020a565b4661210503620001cd57600c80546001600160a01b031916734cf76043b3f97ba06917cbd90f9e3a2aac1b306e1790556200020a565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028491906200063f565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030d91906200063f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200035b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038191906200063f565b600d80546001600160a01b03929092166001600160a01b031992831617905560058054909116731b53cbba245a730aac53913f591d85781ca5f380179055620003cd6009600a6200060d565b620003dd90633b9aca0062000625565b336000908152600160208190526040822092909255600390620004086000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004973390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004d16009600a6200060d565b620004e190633b9aca0062000625565b60405190815260200160405180910390a36200066a565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200054f578160001904821115620005335762000533620004f8565b808516156200054157918102915b93841c939080029062000513565b509250929050565b600082620005685750600162000607565b81620005775750600062000607565b81600181146200059057600281146200059b57620005bb565b600191505062000607565b60ff841115620005af57620005af620004f8565b50506001821b62000607565b5060208310610133831016604e8410600b8410161715620005e0575081810a62000607565b620005ec83836200050e565b8060001904821115620006035762000603620004f8565b0290505b92915050565b60006200061e60ff84168362000557565b9392505050565b8082028115828204841417620006075762000607620004f8565b6000602082840312156200065257600080fd5b81516001600160a01b03811681146200061e57600080fd5b612382806200067a6000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d14610598578063f0f56b6a146105b8578063f2fde38b146105d8578063ff511828146105f8578063ffb54a991461061857600080fd5b80639cfe42da146104f2578063a9059cbb14610512578063dd62ed3e14610532578063eb91e6511461057857600080fd5b80638a8c523c116100dc5780638a8c523c146104a95780638c0b5e22146104be5780638da5cb5b146104d457806395d89b411461025e57600080fd5b806370a0823114610418578063715018a61461044e578063768dc7101461046357806385141a771461049357600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103a15780635d098b38146103c1578063659a8d03146103e15780636ddd1713146103f757600080fd5b806323b872dd14610325578063313ce5671461034557806337e9820714610361578063437823ec1461038157600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b31461029a5780631694505e146102ca57806318160ddd1461030257600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611e6b565b610639565b005b34801561022b57600080fd5b5061021d6106f0565b34801561024057600080fd5b5061021d610739565b34801561025557600080fd5b5061021d610959565b34801561026a57600080fd5b506040805180820182526004815263444f474560e01b602082015290516102919190611e84565b60405180910390f35b3480156102a657600080fd5b506102ba6102b5366004611ee7565b610a24565b6040519015158152602001610291565b3480156102d657600080fd5b50600c546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610291565b34801561030e57600080fd5b50610317610a3b565b604051908152602001610291565b34801561033157600080fd5b506102ba610340366004611f13565b610a5c565b34801561035157600080fd5b5060405160098152602001610291565b34801561036d57600080fd5b5061021d61037c366004611e6b565b610b06565b34801561038d57600080fd5b5061021d61039c366004611f54565b610b6f565b3480156103ad57600080fd5b5061021d6103bc366004611ee7565b610c52565b3480156103cd57600080fd5b5061021d6103dc366004611f54565b610df0565b3480156103ed57600080fd5b5061031760065481565b34801561040357600080fd5b50600d546102ba90600160b01b900460ff1681565b34801561042457600080fd5b50610317610433366004611f54565b6001600160a01b031660009081526001602052604090205490565b34801561045a57600080fd5b5061021d610f34565b34801561046f57600080fd5b506102ba61047e366004611f54565b60036020526000908152604090205460ff1681565b34801561049f57600080fd5b506102ea61dead81565b3480156104b557600080fd5b5061021d610fa8565b3480156104ca57600080fd5b5061031760085481565b3480156104e057600080fd5b506000546001600160a01b03166102ea565b3480156104fe57600080fd5b5061021d61050d366004611f54565b611071565b34801561051e57600080fd5b506102ba61052d366004611ee7565b6110bf565b34801561053e57600080fd5b5061031761054d366004611f78565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058457600080fd5b5061021d610593366004611f54565b6110cc565b3480156105a457600080fd5b5061021d6105b3366004611e6b565b611117565b3480156105c457600080fd5b5061021d6105d3366004611fbf565b61121c565b3480156105e457600080fd5b5061021d6105f3366004611f54565b61128f565b34801561060457600080fd5b5061021d610613366004611f54565b611327565b34801561062457600080fd5b50600d546102ba90600160a01b900460ff1681565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161066390611fdc565b60405180910390fd5b60468111156106bd5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373025206f72206c6573730000006044820152606401610663565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b0316331461071a5760405162461bcd60e51b815260040161066390611fdc565b6107266009600a61210b565b61073490633b9aca0061211a565b600855565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161066390611fdc565b600d54600160a01b900460ff16156107b75760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610663565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108059030906107f26009600a61210b565b61080090633b9aca0061211a565b611406565b600c546001600160a01b031663f305d7194730610837816001600160a01b031660009081526001602052604090205490565b60008061084c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d99190612131565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610932573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610956919061215f565b50565b47806109775760405162461bcd60e51b81526004016106639061217c565b478111156109bd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610663565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f7573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000610a31338484611406565b5060015b92915050565b6000610a496009600a61210b565b610a5790633b9aca0061211a565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610ae15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610663565b610aec85858561152a565b610afb853361080086856121be565b506001949350505050565b6000546001600160a01b03163314610b305760405162461bcd60e51b815260040161066390611fdc565b620f4240811015610b535760405162461bcd60e51b8152600401610663906121d1565b610b5f6009600a61210b565b610b69908261211a565b60085550565b6000546001600160a01b03163314610b995760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610663565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260040161066390611fdc565b60008111610c9c5760405162461bcd60e51b81526004016106639061217c565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d04919061222e565b811115610d495760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610663565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc0919061215f565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e1a5760405162461bcd60e51b815260040161066390611fdc565b306001600160a01b03821603610e725760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f742062652074686520466565205265636965766572006044820152606401610663565b6001600160a01b038116610ed45760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b6064820152608401610663565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b815260040161066390611fdc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610fd25760405162461bcd60e51b815260040161066390611fdc565b600d54600160a01b900460ff16156110265760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610663565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b0316331461109b5760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a3133848461152a565b6000546001600160a01b031633146110f65760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111415760405162461bcd60e51b815260040161066390611fdc565b629896808111156111b25760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b6064820152608401610663565b620f42408110156111d55760405162461bcd60e51b8152600401610663906121d1565b6111e16009600a61210b565b6111eb908261211a565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112465760405162461bcd60e51b815260040161066390611fdc565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112b95760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811661131e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61095681611bc6565b6000546001600160a01b031633146113515760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811660009081526003602052604081205460ff16151590036113bd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610663565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b0382166114c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661158e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610663565b6001600160a01b0382166115f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610663565b600081116116525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610663565b6001600160a01b03831660009081526004602052604090205460ff1615801561169457506001600160a01b03821660009081526004602052604090205460ff16155b6116e05760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610663565b6001600160a01b038316600090815260036020526040812054819060ff1615801561172457506001600160a01b03841660009081526003602052604090205460ff16155b1561178257600d54600160a01b900460ff166117825760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e00000000000000006044820152606401610663565b6001600160a01b03851660009081526003602052604090205460ff161580156117c457506001600160a01b03841660009081526003602052604090205460ff16155b80156117de5750600a546009546117db9190612247565b43105b156117e85750600b545b600d546001600160a01b03868116911614801561181e57506001600160a01b03851660009081526003602052604090205460ff16155b801561184357506001600160a01b03841660009081526003602052604090205460ff16155b1561186a5760085483111561186a5760405162461bcd60e51b81526004016106639061225a565b600d546001600160a01b038681169116148015906118a157506001600160a01b03851660009081526003602052604090205460ff16155b80156118c657506001600160a01b03841660009081526003602052604090205460ff16155b156118ed576008548311156118ed5760405162461bcd60e51b81526004016106639061225a565b600d546001600160a01b0385811691161480159061192457506001600160a01b03851660009081526003602052604090205460ff16155b801561194957506001600160a01b03841660009081526003602052604090205460ff16155b156119995760085483611971866001600160a01b031660009081526001602052604090205490565b61197b9190612247565b11156119995760405162461bcd60e51b81526004016106639061225a565b6064600654846119a9919061211a565b6119b39190612286565b6001600160a01b03861660009081526003602052604090205490925082915060ff16806119f857506001600160a01b03841660009081526003602052604090205460ff165b15611a01575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a395750600d546001600160a01b03878116911614155b8015611a4e5750600d54600160b01b900460ff165b8015611a5c57506007548110155b15611a7e57611a6c600754611c16565b478015611a7c57611a7c47611ddd565b505b6001600160a01b038616600090815260016020526040902054611aa29085906121be565b6001600160a01b038716600090815260016020526040902055611ac582856121be565b6001600160a01b038616600090815260016020526040902054611ae89190612247565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b3285886121be565b60405190815260200160405180910390a38115611bbe5730600090815260016020526040902054611b64908390612247565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bb59086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611c765760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610663565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cab57611cab6122a8565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2891906122be565b81600181518110611d3b57611d3b6122a8565b6001600160a01b039283166020918202929092010152600c54611d619130911684611406565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d9a9085906000908690309042906004016122db565b600060405180830381600087803b158015611db457600080fd5b505af1158015611dc8573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e2d5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610663565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e67573d6000803e3d6000fd5b5050565b600060208284031215611e7d57600080fd5b5035919050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461095657600080fd5b60008060408385031215611efa57600080fd5b8235611f0581611ed2565b946020939093013593505050565b600080600060608486031215611f2857600080fd5b8335611f3381611ed2565b92506020840135611f4381611ed2565b929592945050506040919091013590565b600060208284031215611f6657600080fd5b8135611f7181611ed2565b9392505050565b60008060408385031215611f8b57600080fd5b8235611f9681611ed2565b91506020830135611fa681611ed2565b809150509250929050565b801515811461095657600080fd5b600060208284031215611fd157600080fd5b8135611f7181611fb1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561206257816000190482111561204857612048612011565b8085161561205557918102915b93841c939080029061202c565b509250929050565b60008261207957506001610a35565b8161208657506000610a35565b816001811461209c57600281146120a6576120c2565b6001915050610a35565b60ff8411156120b7576120b7612011565b50506001821b610a35565b5060208310610133831016604e8410600b84101617156120e5575081810a610a35565b6120ef8383612027565b806000190482111561210357612103612011565b029392505050565b6000611f7160ff84168361206a565b8082028115828204841417610a3557610a35612011565b60008060006060848603121561214657600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561217157600080fd5b8151611f7181611fb1565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a3557610a35612011565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561224057600080fd5b5051919050565b80820180821115610a3557610a35612011565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122a357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156122d057600080fd5b8151611f7181611ed2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232b5784516001600160a01b031683529383019391830191600101612306565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bc98e563a9605892965a30bfd6f17d5735cd84e6e3b62cefdf01cdb110329d4864736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d14610598578063f0f56b6a146105b8578063f2fde38b146105d8578063ff511828146105f8578063ffb54a991461061857600080fd5b80639cfe42da146104f2578063a9059cbb14610512578063dd62ed3e14610532578063eb91e6511461057857600080fd5b80638a8c523c116100dc5780638a8c523c146104a95780638c0b5e22146104be5780638da5cb5b146104d457806395d89b411461025e57600080fd5b806370a0823114610418578063715018a61461044e578063768dc7101461046357806385141a771461049357600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103a15780635d098b38146103c1578063659a8d03146103e15780636ddd1713146103f757600080fd5b806323b872dd14610325578063313ce5671461034557806337e9820714610361578063437823ec1461038157600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b31461029a5780631694505e146102ca57806318160ddd1461030257600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611e6b565b610639565b005b34801561022b57600080fd5b5061021d6106f0565b34801561024057600080fd5b5061021d610739565b34801561025557600080fd5b5061021d610959565b34801561026a57600080fd5b506040805180820182526004815263444f474560e01b602082015290516102919190611e84565b60405180910390f35b3480156102a657600080fd5b506102ba6102b5366004611ee7565b610a24565b6040519015158152602001610291565b3480156102d657600080fd5b50600c546102ea906001600160a01b031681565b6040516001600160a01b039091168152602001610291565b34801561030e57600080fd5b50610317610a3b565b604051908152602001610291565b34801561033157600080fd5b506102ba610340366004611f13565b610a5c565b34801561035157600080fd5b5060405160098152602001610291565b34801561036d57600080fd5b5061021d61037c366004611e6b565b610b06565b34801561038d57600080fd5b5061021d61039c366004611f54565b610b6f565b3480156103ad57600080fd5b5061021d6103bc366004611ee7565b610c52565b3480156103cd57600080fd5b5061021d6103dc366004611f54565b610df0565b3480156103ed57600080fd5b5061031760065481565b34801561040357600080fd5b50600d546102ba90600160b01b900460ff1681565b34801561042457600080fd5b50610317610433366004611f54565b6001600160a01b031660009081526001602052604090205490565b34801561045a57600080fd5b5061021d610f34565b34801561046f57600080fd5b506102ba61047e366004611f54565b60036020526000908152604090205460ff1681565b34801561049f57600080fd5b506102ea61dead81565b3480156104b557600080fd5b5061021d610fa8565b3480156104ca57600080fd5b5061031760085481565b3480156104e057600080fd5b506000546001600160a01b03166102ea565b3480156104fe57600080fd5b5061021d61050d366004611f54565b611071565b34801561051e57600080fd5b506102ba61052d366004611ee7565b6110bf565b34801561053e57600080fd5b5061031761054d366004611f78565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561058457600080fd5b5061021d610593366004611f54565b6110cc565b3480156105a457600080fd5b5061021d6105b3366004611e6b565b611117565b3480156105c457600080fd5b5061021d6105d3366004611fbf565b61121c565b3480156105e457600080fd5b5061021d6105f3366004611f54565b61128f565b34801561060457600080fd5b5061021d610613366004611f54565b611327565b34801561062457600080fd5b50600d546102ba90600160a01b900460ff1681565b6000546001600160a01b0316331461066c5760405162461bcd60e51b815260040161066390611fdc565b60405180910390fd5b60468111156106bd5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373025206f72206c6573730000006044820152606401610663565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b0316331461071a5760405162461bcd60e51b815260040161066390611fdc565b6107266009600a61210b565b61073490633b9aca0061211a565b600855565b6000546001600160a01b031633146107635760405162461bcd60e51b815260040161066390611fdc565b600d54600160a01b900460ff16156107b75760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610663565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108059030906107f26009600a61210b565b61080090633b9aca0061211a565b611406565b600c546001600160a01b031663f305d7194730610837816001600160a01b031660009081526001602052604090205490565b60008061084c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108b4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d99190612131565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610932573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610956919061215f565b50565b47806109775760405162461bcd60e51b81526004016106639061217c565b478111156109bd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610663565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156109f7573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000610a31338484611406565b5060015b92915050565b6000610a496009600a61210b565b610a5790633b9aca0061211a565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610ae15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610663565b610aec85858561152a565b610afb853361080086856121be565b506001949350505050565b6000546001600160a01b03163314610b305760405162461bcd60e51b815260040161066390611fdc565b620f4240811015610b535760405162461bcd60e51b8152600401610663906121d1565b610b5f6009600a61210b565b610b69908261211a565b60085550565b6000546001600160a01b03163314610b995760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610663565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610c7c5760405162461bcd60e51b815260040161066390611fdc565b60008111610c9c5760405162461bcd60e51b81526004016106639061217c565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d04919061222e565b811115610d495760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610663565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc0919061215f565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e1a5760405162461bcd60e51b815260040161066390611fdc565b306001600160a01b03821603610e725760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f742062652074686520466565205265636965766572006044820152606401610663565b6001600160a01b038116610ed45760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b6064820152608401610663565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f5e5760405162461bcd60e51b815260040161066390611fdc565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610fd25760405162461bcd60e51b815260040161066390611fdc565b600d54600160a01b900460ff16156110265760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610663565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b0316331461109b5760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a3133848461152a565b6000546001600160a01b031633146110f65760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146111415760405162461bcd60e51b815260040161066390611fdc565b629896808111156111b25760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b6064820152608401610663565b620f42408110156111d55760405162461bcd60e51b8152600401610663906121d1565b6111e16009600a61210b565b6111eb908261211a565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112465760405162461bcd60e51b815260040161066390611fdc565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112b95760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811661131e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610663565b61095681611bc6565b6000546001600160a01b031633146113515760405162461bcd60e51b815260040161066390611fdc565b6001600160a01b03811660009081526003602052604081205460ff16151590036113bd5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610663565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114685760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610663565b6001600160a01b0382166114c95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610663565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661158e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610663565b6001600160a01b0382166115f05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610663565b600081116116525760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610663565b6001600160a01b03831660009081526004602052604090205460ff1615801561169457506001600160a01b03821660009081526004602052604090205460ff16155b6116e05760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e73000000000000006044820152606401610663565b6001600160a01b038316600090815260036020526040812054819060ff1615801561172457506001600160a01b03841660009081526003602052604090205460ff16155b1561178257600d54600160a01b900460ff166117825760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e00000000000000006044820152606401610663565b6001600160a01b03851660009081526003602052604090205460ff161580156117c457506001600160a01b03841660009081526003602052604090205460ff16155b80156117de5750600a546009546117db9190612247565b43105b156117e85750600b545b600d546001600160a01b03868116911614801561181e57506001600160a01b03851660009081526003602052604090205460ff16155b801561184357506001600160a01b03841660009081526003602052604090205460ff16155b1561186a5760085483111561186a5760405162461bcd60e51b81526004016106639061225a565b600d546001600160a01b038681169116148015906118a157506001600160a01b03851660009081526003602052604090205460ff16155b80156118c657506001600160a01b03841660009081526003602052604090205460ff16155b156118ed576008548311156118ed5760405162461bcd60e51b81526004016106639061225a565b600d546001600160a01b0385811691161480159061192457506001600160a01b03851660009081526003602052604090205460ff16155b801561194957506001600160a01b03841660009081526003602052604090205460ff16155b156119995760085483611971866001600160a01b031660009081526001602052604090205490565b61197b9190612247565b11156119995760405162461bcd60e51b81526004016106639061225a565b6064600654846119a9919061211a565b6119b39190612286565b6001600160a01b03861660009081526003602052604090205490925082915060ff16806119f857506001600160a01b03841660009081526003602052604090205460ff165b15611a01575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a395750600d546001600160a01b03878116911614155b8015611a4e5750600d54600160b01b900460ff165b8015611a5c57506007548110155b15611a7e57611a6c600754611c16565b478015611a7c57611a7c47611ddd565b505b6001600160a01b038616600090815260016020526040902054611aa29085906121be565b6001600160a01b038716600090815260016020526040902055611ac582856121be565b6001600160a01b038616600090815260016020526040902054611ae89190612247565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b3285886121be565b60405190815260200160405180910390a38115611bbe5730600090815260016020526040902054611b64908390612247565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bb59086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611c765760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610663565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cab57611cab6122a8565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2891906122be565b81600181518110611d3b57611d3b6122a8565b6001600160a01b039283166020918202929092010152600c54611d619130911684611406565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d9a9085906000908690309042906004016122db565b600060405180830381600087803b158015611db457600080fd5b505af1158015611dc8573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e2d5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610663565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611e67573d6000803e3d6000fd5b5050565b600060208284031215611e7d57600080fd5b5035919050565b600060208083528351808285015260005b81811015611eb157858101830151858201604001528201611e95565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461095657600080fd5b60008060408385031215611efa57600080fd5b8235611f0581611ed2565b946020939093013593505050565b600080600060608486031215611f2857600080fd5b8335611f3381611ed2565b92506020840135611f4381611ed2565b929592945050506040919091013590565b600060208284031215611f6657600080fd5b8135611f7181611ed2565b9392505050565b60008060408385031215611f8b57600080fd5b8235611f9681611ed2565b91506020830135611fa681611ed2565b809150509250929050565b801515811461095657600080fd5b600060208284031215611fd157600080fd5b8135611f7181611fb1565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561206257816000190482111561204857612048612011565b8085161561205557918102915b93841c939080029061202c565b509250929050565b60008261207957506001610a35565b8161208657506000610a35565b816001811461209c57600281146120a6576120c2565b6001915050610a35565b60ff8411156120b7576120b7612011565b50506001821b610a35565b5060208310610133831016604e8410600b84101617156120e5575081810a610a35565b6120ef8383612027565b806000190482111561210357612103612011565b029392505050565b6000611f7160ff84168361206a565b8082028115828204841417610a3557610a35612011565b60008060006060848603121561214657600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561217157600080fd5b8151611f7181611fb1565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a3557610a35612011565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561224057600080fd5b5051919050565b80820180821115610a3557610a35612011565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122a357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156122d057600080fd5b8151611f7181611ed2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561232b5784516001600160a01b031683529383019391830191600101612306565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220bc98e563a9605892965a30bfd6f17d5735cd84e6e3b62cefdf01cdb110329d4864736f6c63430008110033

Deployed Bytecode Sourcemap

2907:11736:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11430:200;;;;;;;;;;-1:-1:-1;11430:200:0;;;;;:::i;:::-;;:::i;:::-;;12619:85;;;;;;;;;;;;;:::i;13074:487::-;;;;;;;;;;;;;:::i;14261:379::-;;;;;;;;;;;;;:::i;6051:83::-;;;;;;;;;;-1:-1:-1;6121:5:0;;;;;;;;;;;-1:-1:-1;;;6121:5:0;;;;6051:83;;;;6121:5;6051:83;:::i;:::-;;;;;;;;6884:161;;;;;;;;;;-1:-1:-1;6884:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;6884:161:0;1208:187:1;3802:41:0;;;;;;;;;;-1:-1:-1;3802:41:0;;;;-1:-1:-1;;;;;3802:41:0;;;;;;-1:-1:-1;;;;;1590:32:1;;;1572:51;;1560:2;1545:18;3802:41:0;1400:229:1;6328:95:0;;;;;;;;;;;;;:::i;:::-;;;1780:25:1;;;1768:2;1753:18;6328:95:0;1634:177:1;7053:410:0;;;;;;;;;;-1:-1:-1;7053:410:0;;;;;:::i;:::-;;:::i;6237:83::-;;;;;;;;;;-1:-1:-1;6237:83:0;;3308:1;2419:36:1;;2407:2;2392:18;6237:83:0;2277:184:1;12711:208:0;;;;;;;;;;-1:-1:-1;12711:208:0;;;;;:::i;:::-;;:::i;10927:236::-;;;;;;;;;;-1:-1:-1;10927:236:0;;;;;:::i;:::-;;:::i;13891:364::-;;;;;;;;;;-1:-1:-1;13891:364:0;;;;;:::i;:::-;;:::i;11642:373::-;;;;;;;;;;-1:-1:-1;11642:373:0;;;;;:::i;:::-;;:::i;3237:29::-;;;;;;;;;;;;;;;;3958:31;;;;;;;;;;-1:-1:-1;3958:31:0;;;;-1:-1:-1;;;3958:31:0;;;;;;6431:119;;;;;;;;;;-1:-1:-1;6431:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6524:18:0;6497:7;6524:18;;;:9;:18;;;;;;;6431:119;1988:148;;;;;;;;;;;;;:::i;3085:51::-;;;;;;;;;;-1:-1:-1;3085:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3477:79;;;;;;;;;;;;3514:42;3477:79;;13570:269;;;;;;;;;;;;;:::i;3621:53::-;;;;;;;;;;;;;;;;1348:79;;;;;;;;;;-1:-1:-1;1386:7:0;1413:6;-1:-1:-1;;;;;1413:6:0;1348:79;;12399:99;;;;;;;;;;-1:-1:-1;12399:99:0;;;;;:::i;:::-;;:::i;6558:167::-;;;;;;;;;;-1:-1:-1;6558:167:0;;;;;:::i;:::-;;:::i;6733:143::-;;;;;;;;;;-1:-1:-1;6733:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6841:18:0;;;6814:7;6841:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6733:143;12505:103;;;;;;;;;;-1:-1:-1;12505:103:0;;;;;:::i;:::-;;:::i;12027:365::-;;;;;;;;;;-1:-1:-1;12027:365:0;;;;;:::i;:::-;;:::i;12929:139::-;;;;;;;;;;-1:-1:-1;12929:139:0;;;;;:::i;:::-;;:::i;1565:203::-;;;;;;;;;;-1:-1:-1;1565:203:0;;;;;:::i;:::-;;:::i;11174:245::-;;;;;;;;;;-1:-1:-1;11174:245:0;;;;;:::i;:::-;;:::i;3886:31::-;;;;;;;;;;-1:-1:-1;3886:31:0;;;;-1:-1:-1;;;3886:31:0;;;;;;11430:200;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;;;;;;;;;11517:2:::1;11503:10;:16;;11495:58;;;::::0;-1:-1:-1;;;11495:58:0;;4511:2:1;11495:58:0::1;::::0;::::1;4493:21:1::0;4550:2;4530:18;;;4523:30;4589:31;4569:18;;;4562:59;4638:18;;11495:58:0::1;4309:353:1::0;11495:58:0::1;11564:9;:22:::0;;;11600:23:::1;::::0;11576:10;;11600:23:::1;::::0;;;::::1;11430:200:::0;:::o;12619:85::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;3364:13:::1;3308:1;3364:2;:13;:::i;:::-;3351:26;::::0;:10:::1;:26;:::i;:::-;12675:11;:21:::0;12619:85::o;13074:487::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;13133:11:::1;::::0;-1:-1:-1;;;13133:11:0;::::1;;;13132:12;13124:47;;;::::0;-1:-1:-1;;;13124:47:0;;6557:2:1;13124:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13124:47:0::1;6355:347:1::0;13124:47:0::1;13182:15;:80:::0;;-1:-1:-1;;;;;;13182:80:0::1;13219:42;13182:80:::0;;::::1;::::0;;;13273:58:::1;::::0;13290:4:::1;::::0;3364:13:::1;3308:1;3364:2;:13;:::i;:::-;3351:26;::::0;:10:::1;:26;:::i;:::-;13273:8;:58::i;:::-;13342:15;::::0;-1:-1:-1;;;;;13342:15:0::1;:31;13381:21;13412:4;13418:24;13412:4:::0;-1:-1:-1;;;;;6524:18:0;6497:7;6524:18;;;:9;:18;;;;;;;6431:119;13418:24:::1;13443:1;13445::::0;13447:7:::1;1386::::0;1413:6;-1:-1:-1;;;;;1413:6:0;;1348:79;13447:7:::1;13342:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13342:129:0;;;-1:-1:-1;;;;;7066:15:1;;;13342:129:0::1;::::0;::::1;7048:34:1::0;7098:18;;;7091:34;;;;7141:18;;;7134:34;;;;7184:18;;;7177:34;7248:15;;;7227:19;;;7220:44;13455:15:0::1;7280:19:1::0;;;7273:35;6982:19;;13342:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13489:13:0::1;::::0;13520:15:::1;::::0;13482:71:::1;::::0;-1:-1:-1;;;13482:71:0;;-1:-1:-1;;;;;13520:15:0;;::::1;13482:71;::::0;::::1;7804:51:1::0;-1:-1:-1;;7871:18:1;;;7864:34;13489:13:0;::::1;::::0;-1:-1:-1;13482:29:0::1;::::0;7777:18:1;;13482:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13074:487::o:0;14261:379::-;14337:21;14377:22;14369:69;;;;-1:-1:-1;;;14369:69:0;;;;;;;:::i;:::-;14479:21;14457:18;:43;;14449:75;;;;-1:-1:-1;;;14449:75:0;;8764:2:1;14449:75:0;;;8746:21:1;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14449:75:0;8562:343:1;14449:75:0;14551:15;;14535:62;;-1:-1:-1;;;;;14551:15:0;;;;14535:62;;;;;14578:18;;14551:15;14535:62;14551:15;14535:62;14578:18;14551:15;14535:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14611:21:0;;;;;;;14297:343;14261:379::o;6884:161::-;6959:4;6976:39;326:10;6999:7;7008:6;6976:8;:39::i;:::-;-1:-1:-1;7033:4:0;6884:161;;;;;:::o;6328:95::-;6381:7;3364:13;3308:1;3364:2;:13;:::i;:::-;3351:26;;:10;:26;:::i;:::-;6401:14;;6328:95;:::o;7053:410::-;-1:-1:-1;;;;;7195:19:0;;7151:4;7195:19;;;:11;:19;;;;;;;;326:10;7195:33;;;;;;;;7247:26;;;;7239:79;;;;-1:-1:-1;;;7239:79:0;;9112:2:1;7239:79:0;;;9094:21:1;9151:2;9131:18;;;9124:30;9190:34;9170:18;;;9163:62;-1:-1:-1;;;9241:18:1;;;9234:38;9289:19;;7239:79:0;8910:404:1;7239:79:0;7329:36;7339:6;7347:9;7358:6;7329:9;:36::i;:::-;7376:57;7385:6;326:10;7407:25;7426:6;7407:16;:25;:::i;7376:57::-;-1:-1:-1;7451:4:0;;7053:410;-1:-1:-1;;;;7053:410:0:o;12711:208::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;12798:3:::1;12788:6;:13;;12780:84;;;;-1:-1:-1::0;;;12780:84:0::1;;;;;;;:::i;:::-;12898:13;3308:1;12898:2;:13;:::i;:::-;12889:22;::::0;:6;:22:::1;:::i;:::-;12875:11;:36:::0;-1:-1:-1;12711:208:0:o;10927:236::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11004:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;10996:74:::1;;;::::0;-1:-1:-1;;;10996:74:0;;10081:2:1;10996:74:0::1;::::0;::::1;10063:21:1::0;10120:2;10100:18;;;10093:30;10159:29;10139:18;;;10132:57;10206:18;;10996:74:0::1;9879:351:1::0;10996:74:0::1;-1:-1:-1::0;;;;;11080:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11080:34:0::1;11110:4;11080:34;::::0;;11126:30;::::1;::::0;11080:27;11126:30:::1;10927:236:::0;:::o;13891:364::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;14002:1:::1;13992:7;:11;13984:58;;;;-1:-1:-1::0;;;13984:58:0::1;;;;;;;:::i;:::-;14072:43;::::0;-1:-1:-1;;;14072:43:0;;14109:4:::1;14072:43;::::0;::::1;1572:51:1::0;-1:-1:-1;;;;;14072:28:0;::::1;::::0;::::1;::::0;1545:18:1;;14072:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14061:7;:54;;14053:86;;;::::0;-1:-1:-1;;;14053:86:0;;8764:2:1;14053:86:0::1;::::0;::::1;8746:21:1::0;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14053:86:0::1;8562:343:1::0;14053:86:0::1;14178:15;::::0;14150:53:::1;::::0;-1:-1:-1;;;14150:53:0;;-1:-1:-1;;;;;14178:15:0;;::::1;14150:53;::::0;::::1;7804:51:1::0;7871:18;;;7864:34;;;14150:27:0;;::::1;::::0;::::1;::::0;7777:18:1;;14150:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14217:29:0::1;::::0;14238:7;;14217:29:::1;::::0;;;::::1;13891:364:::0;;:::o;11642:373::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;11757:4:::1;-1:-1:-1::0;;;;;11735:27:0;::::1;::::0;11727:71:::1;;;::::0;-1:-1:-1;;;11727:71:0;;10913:2:1;11727:71:0::1;::::0;::::1;10895:21:1::0;10952:2;10932:18;;;10925:30;10991:33;10971:18;;;10964:61;11042:18;;11727:71:0::1;10711:355:1::0;11727:71:0::1;-1:-1:-1::0;;;;;11816:24:0;::::1;11808:72;;;::::0;-1:-1:-1;;;11808:72:0;;11273:2:1;11808:72:0::1;::::0;::::1;11255:21:1::0;11312:2;11292:18;;;11285:30;11351:34;11331:18;;;11324:62;-1:-1:-1;;;11402:18:1;;;11395:33;11445:19;;11808:72:0::1;11071:399:1::0;11808:72:0::1;11890:15;:28:::0;;-1:-1:-1;;;;;;11890:28:0::1;-1:-1:-1::0;;;;;11890:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11927:30:0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;11927:37:0::1;-1:-1:-1::0;11927:37:0::1;::::0;;11976:31;::::1;::::0;-1:-1:-1;11976:31:0::1;11642:373:::0;:::o;1988:148::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;2095:1:::1;2079:6:::0;;2058:40:::1;::::0;-1:-1:-1;;;;;2079:6:0;;::::1;::::0;2058:40:::1;::::0;2095:1;;2058:40:::1;2126:1;2109:19:::0;;-1:-1:-1;;;;;;2109:19:0::1;::::0;;1988:148::o;13570:269::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;13636:11:::1;::::0;-1:-1:-1;;;13636:11:0;::::1;;;13635:12;13627:47;;;::::0;-1:-1:-1;;;13627:47:0;;6557:2:1;13627:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13627:47:0::1;6355:347:1::0;13627:47:0::1;13685:11;:18:::0;;-1:-1:-1;;;;13714:18:0;-1:-1:-1;;;13714:18:0;;;13758:12:::1;13742:13;:28:::0;13796:1:::1;13785:8;:12:::0;13811:20:::1;::::0;::::1;::::0;-1:-1:-1;;13811:20:0::1;13570:269::o:0;12399:99::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12468:15:0::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;12468:22:0::1;12486:4;12468:22;::::0;;12399:99::o;6558:167::-;6636:4;6653:42;326:10;6677:9;6688:6;6653:9;:42::i;12505:103::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12577:15:0::1;12595:5;12577:15:::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;12577:23:0::1;::::0;;12505:103::o;12027:365::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;12128:3:::1;12113:11;:18;;12105:84;;;::::0;-1:-1:-1;;;12105:84:0;;11677:2:1;12105:84:0::1;::::0;::::1;11659:21:1::0;11716:2;11696:18;;;11689:30;11755:34;11735:18;;;11728:62;-1:-1:-1;;;11806:18:1;;;11799:51;11867:19;;12105:84:0::1;11475:417:1::0;12105:84:0::1;12223:3;12208:11;:18;;12200:89;;;;-1:-1:-1::0;;;12200:89:0::1;;;;;;;:::i;:::-;12325:13;3308:1;12325:2;:13;:::i;:::-;12311:27;::::0;:11;:27:::1;:::i;:::-;12300:8;:38:::0;12350:34:::1;::::0;12372:11;;12350:34:::1;::::0;;;::::1;12027:365:::0;:::o;12929:139::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;12999:11:::1;:19:::0;;-1:-1:-1;;;;12999:19:0::1;-1:-1:-1::0;;;12999:19:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13031:29:::1;::::0;::::1;::::0;-1:-1:-1;;13031:29:0::1;12929:139:::0;:::o;1565:203::-;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1656:22:0;::::1;1648:73;;;::::0;-1:-1:-1;;;1648:73:0;;12099:2:1;1648:73:0::1;::::0;::::1;12081:21:1::0;12138:2;12118:18;;;12111:30;12177:34;12157:18;;;12150:62;-1:-1:-1;;;12228:18:1;;;12221:36;12274:19;;1648:73:0::1;11897:402:1::0;1648:73:0::1;1732:28;1751:8;1732:18;:28::i;11174:245::-:0;1475:6;;-1:-1:-1;;;;;1475:6:0;326:10;1475:22;1467:67;;;;-1:-1:-1;;;1467:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11254:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11246:76:::1;;;::::0;-1:-1:-1;;;11246:76:0;;12506:2:1;11246:76:0::1;::::0;::::1;12488:21:1::0;12545:2;12525:18;;;12518:30;12584:29;12564:18;;;12557:57;12631:18;;11246:76:0::1;12304:351:1::0;11246:76:0::1;-1:-1:-1::0;;;;;11333:27:0;::::1;11363:5;11333:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11333:35:0::1;::::0;;11381:30;::::1;::::0;11363:5;11381:30:::1;11174:245:::0;:::o;7471:335::-;-1:-1:-1;;;;;7564:19:0;;7556:68;;;;-1:-1:-1;;;7556:68:0;;12862:2:1;7556:68:0;;;12844:21:1;12901:2;12881:18;;;12874:30;12940:34;12920:18;;;12913:62;-1:-1:-1;;;12991:18:1;;;12984:34;13035:19;;7556:68:0;12660:400:1;7556:68:0;-1:-1:-1;;;;;7643:21:0;;7635:68;;;;-1:-1:-1;;;7635:68:0;;13267:2:1;7635:68:0;;;13249:21:1;13306:2;13286:18;;;13279:30;13345:34;13325:18;;;13318:62;-1:-1:-1;;;13396:18:1;;;13389:32;13438:19;;7635:68:0;13065:398:1;7635:68:0;-1:-1:-1;;;;;7714:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7766:32;;1780:25:1;;;7766:32:0;;1753:18:1;7766:32:0;;;;;;;7471:335;;;:::o;7814:2381::-;-1:-1:-1;;;;;7902:18:0;;7894:68;;;;-1:-1:-1;;;7894:68:0;;13670:2:1;7894:68:0;;;13652:21:1;13709:2;13689:18;;;13682:30;13748:34;13728:18;;;13721:62;-1:-1:-1;;;13799:18:1;;;13792:35;13844:19;;7894:68:0;13468:401:1;7894:68:0;-1:-1:-1;;;;;7981:16:0;;7973:64;;;;-1:-1:-1;;;7973:64:0;;14076:2:1;7973:64:0;;;14058:21:1;14115:2;14095:18;;;14088:30;14154:34;14134:18;;;14127:62;-1:-1:-1;;;14205:18:1;;;14198:33;14248:19;;7973:64:0;13874:399:1;7973:64:0;8065:1;8056:6;:10;8048:64;;;;-1:-1:-1;;;8048:64:0;;14480:2:1;8048:64:0;;;14462:21:1;14519:2;14499:18;;;14492:30;14558:34;14538:18;;;14531:62;-1:-1:-1;;;14609:18:1;;;14602:39;14658:19;;8048:64:0;14278:405:1;8048:64:0;-1:-1:-1;;;;;8132:12:0;;;;;;:6;:12;;;;;;;;8131:13;:28;;;;-1:-1:-1;;;;;;8149:10:0;;;;;;:6;:10;;;;;;;;8148:11;8131:28;8123:66;;;;-1:-1:-1;;;8123:66:0;;14890:2:1;8123:66:0;;;14872:21:1;14929:2;14909:18;;;14902:30;14968:27;14948:18;;;14941:55;15013:18;;8123:66:0;14688:349:1;8123:66:0;-1:-1:-1;;;;;8275:24:0;;8212:17;8275:24;;;:18;:24;;;;;;8212:17;;8275:24;;8274:25;:52;;;;-1:-1:-1;;;;;;8304:22:0;;;;;;:18;:22;;;;;;;;8303:23;8274:52;8270:138;;;8353:11;;-1:-1:-1;;;8353:11:0;;;;8345:47;;;;-1:-1:-1;;;8345:47:0;;15244:2:1;8345:47:0;;;15226:21:1;15283:2;15263:18;;;15256:30;15322:26;15302:18;;;15295:54;15366:18;;8345:47:0;15042:348:1;8345:47:0;-1:-1:-1;;;;;8435:24:0;;;;;;:18;:24;;;;;;;;8434:25;:52;;;;-1:-1:-1;;;;;;8464:22:0;;;;;;:18;:22;;;;;;;;8463:23;8434:52;:95;;;;;8521:8;;8505:13;;:24;;;;:::i;:::-;8490:12;:39;8434:95;8430:150;;;-1:-1:-1;8557:9:0;;8430:150;8616:13;;-1:-1:-1;;;;;8608:21:0;;;8616:13;;8608:21;:50;;;;-1:-1:-1;;;;;;8634:24:0;;;;;;:18;:24;;;;;;;;8633:25;8608:50;:77;;;;-1:-1:-1;;;;;;8663:22:0;;;;;;:18;:22;;;;;;;;8662:23;8608:77;8604:165;;;8721:11;;8711:6;:21;;8703:52;;;;-1:-1:-1;;;8703:52:0;;;;;;;:::i;:::-;8804:13;;-1:-1:-1;;;;;8796:21:0;;;8804:13;;8796:21;;;;:50;;-1:-1:-1;;;;;;8822:24:0;;;;;;:18;:24;;;;;;;;8821:25;8796:50;:77;;;;-1:-1:-1;;;;;;8851:22:0;;;;;;:18;:22;;;;;;;;8850:23;8796:77;8792:165;;;8909:11;;8899:6;:21;;8891:52;;;;-1:-1:-1;;;8891:52:0;;;;;;;:::i;:::-;8990:13;;-1:-1:-1;;;;;8984:19:0;;;8990:13;;8984:19;;;;:48;;-1:-1:-1;;;;;;9008:24:0;;;;;;:18;:24;;;;;;;;9007:25;8984:48;:75;;;;-1:-1:-1;;;;;;9037:22:0;;;;;;:18;:22;;;;;;;;9036:23;8984:75;8981:178;;;9111:11;;9101:6;9085:13;9095:2;-1:-1:-1;;;;;6524:18:0;6497:7;6524:18;;;:9;:18;;;;;;;6431:119;9085:13;:22;;;;:::i;:::-;:37;;9077:68;;;;-1:-1:-1;;;9077:68:0;;;;;;;:::i;:::-;9213:3;9199:9;;9189:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;-1:-1:-1;;;;;9283:24:0;;;;;;:18;:24;;;;;;9177:40;;-1:-1:-1;9177:40:0;;-1:-1:-1;9283:24:0;;;:50;;-1:-1:-1;;;;;;9311:22:0;;;;;;:18;:22;;;;;;;;9283:50;9279:101;;;-1:-1:-1;9366:1:0;9279:101;9457:4;9408:28;6524:18;;;:9;:18;;;;;;9483:6;;-1:-1:-1;;;9483:6:0;;;;9482:7;:32;;;;-1:-1:-1;9501:13:0;;-1:-1:-1;;;;;9493:21:0;;;9501:13;;9493:21;;9482:32;:47;;;;-1:-1:-1;9518:11:0;;-1:-1:-1;;;9518:11:0;;;;9482:47;:83;;;;;9557:8;;9533:20;:32;;9482:83;9478:360;;;9586:26;9603:8;;9586:16;:26::i;:::-;9678:21;9721:22;;9718:105;;9768:35;9781:21;9768:12;:35::i;:::-;9567:271;9478:360;-1:-1:-1;;;;;9866:15:0;;;;;;:9;:15;;;;;;:26;;9885:6;;9866:26;:::i;:::-;-1:-1:-1;;;;;9848:15:0;;;;;;:9;:15;;;;;:44;9936:18;9946:7;9936:6;:18;:::i;:::-;-1:-1:-1;;;;;9919:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;9903:13:0;;;;;;;:9;:13;;;;;:52;;;;9971:38;;;9990:18;10000:7;9990:6;:18;:::i;:::-;9971:38;;1780:25:1;;;1768:2;1753:18;9971:38:0;;;;;;;10033:11;;10030:158;;10103:4;10085:24;;;;:9;:24;;;;;;:36;;10113:7;;10085:36;:::i;:::-;10076:4;10058:24;;;;:9;:24;;;;;;;:63;;;;10139:37;;-1:-1:-1;;;;;10139:37:0;;;;;;;10168:7;1780:25:1;;1768:2;1753:18;;1634:177;10139:37:0;;;;;;;;10030:158;7883:2312;;;7814:2381;;;:::o;1785:191::-;1859:16;1878:6;;-1:-1:-1;;;;;1895:17:0;;;-1:-1:-1;;;;;;1895:17:0;;;;;;1928:40;;1878:6;;;;;;;1928:40;;1859:16;1928:40;1848:128;1785:191;:::o;10202:551::-;4527:6;:13;;-1:-1:-1;;;;4527:13:0;-1:-1:-1;;;4527:13:0;;;10288:15;10280:57:::1;;;::::0;-1:-1:-1;;;10280:57:0;;16296:2:1;10280:57:0::1;::::0;::::1;16278:21:1::0;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10280:57:0::1;16094:353:1::0;10280:57:0::1;10372:16;::::0;;10386:1:::1;10372:16:::0;;;;;::::1;::::0;;10348:21:::1;::::0;10372:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10372:16:0::1;10348:40;;10417:4;10399;10404:1;10399:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10399:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10443:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10443:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10399:7;;10443:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10433:4;10438:1;10433:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10433:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10508:15:::1;::::0;10476:62:::1;::::0;10493:4:::1;::::0;10508:15:::1;10526:11:::0;10476:8:::1;:62::i;:::-;10549:15;::::0;:196:::1;::::0;-1:-1:-1;;;10549:196:0;;-1:-1:-1;;;;;10549:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10630:11;;10549:15:::1;::::0;10672:4;;10699::::1;::::0;10719:15:::1;::::0;10549:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4563:6:0;:14;;-1:-1:-1;;;;4563:14:0;;;-1:-1:-1;;;;10202:551:0:o;10761:159::-;10834:1;10825:6;:10;10817:52;;;;-1:-1:-1;;;10817:52:0;;16296:2:1;10817:52:0;;;16278:21:1;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10817:52:0;16094:353:1;10817:52:0;10880:15;;:32;;-1:-1:-1;;;;;10880:15:0;;;;:32;;;;;10905:6;;10880:15;:32;:15;:32;10905:6;10880:15;:32;;;;;;;;;;;;;;;;;;;;;10761:159;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1816:456::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2017:9;2004:23;2036:31;2061:5;2036:31;:::i;:::-;2086:5;-1:-1:-1;2143:2:1;2128:18;;2115:32;2156:33;2115:32;2156:33;:::i;:::-;1816:456;;2208:7;;-1:-1:-1;;;2262:2:1;2247:18;;;;2234:32;;1816:456::o;2466:247::-;2525:6;2578:2;2566:9;2557:7;2553:23;2549:32;2546:52;;;2594:1;2591;2584:12;2546:52;2633:9;2620:23;2652:31;2677:5;2652:31;:::i;:::-;2702:5;2466:247;-1:-1:-1;;;2466:247:1:o;3186:388::-;3254:6;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;:::-;3439:5;-1:-1:-1;3496:2:1;3481:18;;3468:32;3509:33;3468:32;3509:33;:::i;:::-;3561:7;3551:17;;;3186:388;;;;;:::o;3579:118::-;3665:5;3658:13;3651:21;3644:5;3641:32;3631:60;;3687:1;3684;3677:12;3702:241;3758:6;3811:2;3799:9;3790:7;3786:23;3782:32;3779:52;;;3827:1;3824;3817:12;3779:52;3866:9;3853:23;3885:28;3907:5;3885:28;:::i;3948:356::-;4150:2;4132:21;;;4169:18;;;4162:30;4228:34;4223:2;4208:18;;4201:62;4295:2;4280:18;;3948:356::o;4667:127::-;4728:10;4723:3;4719:20;4716:1;4709:31;4759:4;4756:1;4749:15;4783:4;4780:1;4773:15;4799:422;4888:1;4931:5;4888:1;4945:270;4966:7;4956:8;4953:21;4945:270;;;5025:4;5021:1;5017:6;5013:17;5007:4;5004:27;5001:53;;;5034:18;;:::i;:::-;5084:7;5074:8;5070:22;5067:55;;;5104:16;;;;5067:55;5183:22;;;;5143:15;;;;4945:270;;;4949:3;4799:422;;;;;:::o;5226:806::-;5275:5;5305:8;5295:80;;-1:-1:-1;5346:1:1;5360:5;;5295:80;5394:4;5384:76;;-1:-1:-1;5431:1:1;5445:5;;5384:76;5476:4;5494:1;5489:59;;;;5562:1;5557:130;;;;5469:218;;5489:59;5519:1;5510:10;;5533:5;;;5557:130;5594:3;5584:8;5581:17;5578:43;;;5601:18;;:::i;:::-;-1:-1:-1;;5657:1:1;5643:16;;5672:5;;5469:218;;5771:2;5761:8;5758:16;5752:3;5746:4;5743:13;5739:36;5733:2;5723:8;5720:16;5715:2;5709:4;5706:12;5702:35;5699:77;5696:159;;;-1:-1:-1;5808:19:1;;;5840:5;;5696:159;5887:34;5912:8;5906:4;5887:34;:::i;:::-;5957:6;5953:1;5949:6;5945:19;5936:7;5933:32;5930:58;;;5968:18;;:::i;:::-;6006:20;;5226:806;-1:-1:-1;;;5226:806:1:o;6037:140::-;6095:5;6124:47;6165:4;6155:8;6151:19;6145:4;6124:47;:::i;6182:168::-;6255:9;;;6286;;6303:15;;;6297:22;;6283:37;6273:71;;6324:18;;:::i;7319:306::-;7407:6;7415;7423;7476:2;7464:9;7455:7;7451:23;7447:32;7444:52;;;7492:1;7489;7482:12;7444:52;7521:9;7515:16;7505:26;;7571:2;7560:9;7556:18;7550:25;7540:35;;7615:2;7604:9;7600:18;7594:25;7584:35;;7319:306;;;;;:::o;7909:245::-;7976:6;8029:2;8017:9;8008:7;8004:23;8000:32;7997:52;;;8045:1;8042;8035:12;7997:52;8077:9;8071:16;8096:28;8118:5;8096:28;:::i;8159:398::-;8361:2;8343:21;;;8400:2;8380:18;;;8373:30;8439:34;8434:2;8419:18;;8412:62;-1:-1:-1;;;8505:2:1;8490:18;;8483:32;8547:3;8532:19;;8159:398::o;9319:128::-;9386:9;;;9407:11;;;9404:37;;;9421:18;;:::i;9452:422::-;9654:2;9636:21;;;9693:2;9673:18;;;9666:30;9732:34;9727:2;9712:18;;9705:62;9803:28;9798:2;9783:18;;9776:56;9864:3;9849:19;;9452:422::o;10235:184::-;10305:6;10358:2;10346:9;10337:7;10333:23;10329:32;10326:52;;;10374:1;10371;10364:12;10326:52;-1:-1:-1;10397:16:1;;10235:184;-1:-1:-1;10235:184:1:o;15395:125::-;15460:9;;;15481:10;;;15478:36;;;15494:18;;:::i;15525:342::-;15727:2;15709:21;;;15766:2;15746:18;;;15739:30;-1:-1:-1;;;15800:2:1;15785:18;;15778:48;15858:2;15843:18;;15525:342::o;15872:217::-;15912:1;15938;15928:132;;15982:10;15977:3;15973:20;15970:1;15963:31;16017:4;16014:1;16007:15;16045:4;16042:1;16035:15;15928:132;-1:-1:-1;16074:9:1;;15872:217::o;16584:127::-;16645:10;16640:3;16636:20;16633:1;16626:31;16676:4;16673:1;16666:15;16700:4;16697:1;16690:15;16716:251;16786:6;16839:2;16827:9;16818:7;16814:23;16810:32;16807:52;;;16855:1;16852;16845:12;16807:52;16887:9;16881:16;16906:31;16931:5;16906:31;:::i;16972:980::-;17234:4;17282:3;17271:9;17267:19;17313:6;17302:9;17295:25;17339:2;17377:6;17372:2;17361:9;17357:18;17350:34;17420:3;17415:2;17404:9;17400:18;17393:31;17444:6;17479;17473:13;17510:6;17502;17495:22;17548:3;17537:9;17533:19;17526:26;;17587:2;17579:6;17575:15;17561:29;;17608:1;17618:195;17632:6;17629:1;17626:13;17618:195;;;17697:13;;-1:-1:-1;;;;;17693:39:1;17681:52;;17788:15;;;;17753:12;;;;17729:1;17647:9;17618:195;;;-1:-1:-1;;;;;;;17869:32:1;;;;17864:2;17849:18;;17842:60;-1:-1:-1;;;17933:3:1;17918:19;17911:35;17830:3;16972:980;-1:-1:-1;;;16972:980:1:o

Swarm Source

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