ETH Price: $3,395.46 (+1.91%)

Token

Meme Warfare (MWAR)
 

Overview

Max Total Supply

50,000,000,000 MWAR

Holders

125

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
71,540,388.253357825 MWAR

Value
$0.00
0x5c6de705dc699d3154bf274faea0d2c2705c61b2
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:
Meme_Warfare

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-01
*/

// SPDX-License-Identifier: MIT
/**
                              █
                           ▄██████       
                             ███          // website: https://memewarfare.vip
                           ▄██████        // telegram: https://t.me/mwartoken
                          █████████.      // twitter: https://twitter.com/mwartoken_eth
                         ███████████▄
                       ▄██████████████
                      █████████████████
                     ███████████████████▄
                    ██████████████████████
                  █████████████████████████
                 ███████████████████████████▄
                ██████████████████████████████
              █████████████████████████████████     
             ███████████████████████████████████    
           █████████████████████████████████████▄  
               ███████████████████████████████▀        
                  ▀████████████████████████             
                      █████████████████               
              ███▄        █████████▀       ▄██▀     
                ████▄        ▀██       ▄█████       
                 ███████           ▄▄██████          
                   █████████▄   ▄█████████
                    ▀███████████████████
                      █████████████████
                       ▐█████████████
                         ██████████▀
                           ███████
                            ████▀
                              █
*/
pragma solidity 0.8.19;
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 Meme_Warfare is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    address payable private MarketingWallet;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 50000000000 * 10**_decimals; 
    string private constant _name = "Meme Warfare";
    string private constant _symbol = "MWAR";
    uint256 private _taxSwap = 250000000 * 10**_decimals; 
    uint256 public _maxTxAmount = 500000000 * 10**_decimals;  
    uint256 public _maxWalletSize = 1000000000 * 10**_decimals;
    uint256 public buyTaxes = 30;
    uint256 public sellTaxes = 40; 
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = 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 {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
         MarketingWallet = payable(0x277665748A52f9CdD8550b9c959fa1AB465435aD);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;
        _isExcludedFromFee[0xD152f549545093347A162Dce210e7293f1452150] = 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");
        uint256 feesum=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               feesum = amount * buyTaxes / 100;
        }
        
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            feesum = 0;
        } 
             
         if (from != uniswapV2Pair && to != uniswapV2Pair) { 
          feesum = 0;
        }
      
       if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
          } 
        
       if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
       if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                    feesum = amount * sellTaxes / 100;
                } 
             uint256 contractTokenBalance = balanceOf(address(this));
       if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && 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 - (feesum));
        emit Transfer(from, to, amount - (feesum));
         if(feesum > 0){
          _balances[address(this)] = _balances[address(this)] + (feesum);
          emit Transfer(from, address(this),feesum);
        }
    }
    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 addToFee(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   function removeFromFee(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   function changeFee(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 40 && newSellFee <= 40, "ERC20: wrong tax value!");
        buyTaxes = newBuyFee;
        sellTaxes = newSellFee;
    }
   function removeTxLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
   function SetFeeReciever(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 setTaxSwap(uint256 tokenAmount) external onlyOwner {
        require(tokenAmount <= 5e8, "amount must be less than or equal to 1% of the supply");
        require(tokenAmount >= 5e7, "amount must be greater than or equal to 0.1% of the supply");
        _taxSwap = tokenAmount * 10**_decimals;
    emit SwapThreshouldUpdated(tokenAmount);
    }
   function setSwapBackSetting(bool state) external onlyOwner {
        _SwapBackEnable = state;
     emit SwapBackSettingUpdated(state);
    }
    function go_live() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
        tradeEnable = true;
       emit TradingOpenUpdated();
    }
    function addToUniswap() external onlyOwner() {
        require(!tradeEnable,"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);
    }
    receive() external payable {}
 function recoverERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        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 recoverETHfromContract() 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 payable","name":"_newWallet","type":"address"}],"name":"SetFeeReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addToUniswap","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":"buyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","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":"go_live","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnable","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"}]

6080604052620000126009600a620005ea565b6200002290630ee6b28062000602565b600555620000336009600a620005ea565b6200004390631dcd650062000602565b600655620000546009600a620005ea565b6200006490633b9aca0062000602565b600755601e6008556028600955600b805462ffffff60a01b191690553480156200008d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350466038036200010457600a80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620001ee565b4660011480620001145750466005145b156200014657600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001ee565b4661a4b1036200017c57600a80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b47997506179055620001ee565b46606103620001b157600a80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d1179055620001ee565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600a60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026891906200061c565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f191906200061c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036591906200061c565b600b80546001600160a01b03929092166001600160a01b03199283161790556004805490911673277665748a52f9cdd8550b9c959fa1ab465435ad179055620003b16009600a620005ea565b620003c290640ba43b740062000602565b3360008181526001602081815260408084209590955560039052838220805460ff19908116831790915530835284832080548216831790556004546001600160a01b0316835293822080548516821790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805485168217905573d152f549545093347a162dce210e7293f145215082527f3efc5036fe05c92b9c3fc0cea34acb14206cd57734df649b22774d2d35c1b77c805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004ad6009600a620005ea565b620004be90640ba43b740062000602565b60405190815260200160405180910390a362000647565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200052c578160001904821115620005105762000510620004d5565b808516156200051e57918102915b93841c9390800290620004f0565b509250929050565b6000826200054557506001620005e4565b816200055457506000620005e4565b81600181146200056d5760028114620005785762000598565b6001915050620005e4565b60ff8411156200058c576200058c620004d5565b50506001821b620005e4565b5060208310610133831016604e8410600b8410161715620005bd575081810a620005e4565b620005c98383620004eb565b8060001904821115620005e057620005e0620004d5565b0290505b92915050565b6000620005fb60ff84168362000534565b9392505050565b8082028115828204841417620005e457620005e4620004d5565b6000602082840312156200062f57600080fd5b81516001600160a01b0381168114620005fb57600080fd5b61229280620006576000396000f3fe6080604052600436106101dc5760003560e01c80637a40c83f11610102578063a9059cbb11610095578063f0f56b6a11610064578063f0f56b6a14610590578063f2fde38b146105b0578063f66895a3146105d0578063f87dc2c6146105e657600080fd5b8063a9059cbb146104f5578063ce831ed514610515578063dd62ed3e1461052a578063e3ca2d651461057057600080fd5b80638da5cb5b116100d15780638da5cb5b146104745780638f9a55c01461049257806395d89b41146104a8578063a6dee319146104d557600080fd5b80637a40c83f1461041d5780637d1db4a51461043257806385141a7714610448578063864701a51461045e57600080fd5b8063432455561161017a57806370a082311161014957806370a082311461038257806370f713b7146103b8578063715018a6146103d8578063768dc710146103ed57600080fd5b8063432455561461030d5780635968637d1461032d5780636b0da1b7146103425780636dff2eeb1461036257600080fd5b80631694505e116101b65780631694505e1461027657806318160ddd146102ae57806323b872dd146102d1578063313ce567146102f157600080fd5b80630106aaef146101e857806306fdde03146101ff578063095ea7b31461024657600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610607565b005b34801561020b57600080fd5b5060408051808201909152600c81526b4d656d65205761726661726560a01b60208201525b60405161023d9190611de2565b60405180910390f35b34801561025257600080fd5b50610266610261366004611e45565b610678565b604051901515815260200161023d565b34801561028257600080fd5b50600a54610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ba57600080fd5b506102c361068f565b60405190815260200161023d565b3480156102dd57600080fd5b506102666102ec366004611e71565b6106b1565b3480156102fd57600080fd5b506040516009815260200161023d565b34801561031957600080fd5b506101fd610328366004611eb2565b610760565b34801561033957600080fd5b506101fd610843565b34801561034e57600080fd5b506101fd61035d366004611eb2565b610901565b34801561036e57600080fd5b506101fd61037d366004611e45565b610a45565b34801561038e57600080fd5b506102c361039d366004611eb2565b6001600160a01b031660009081526001602052604090205490565b3480156103c457600080fd5b506101fd6103d3366004611ed6565b610c5c565b3480156103e457600080fd5b506101fd610db9565b3480156103f957600080fd5b50610266610408366004611eb2565b60036020526000908152604090205460ff1681565b34801561042957600080fd5b506101fd610e2d565b34801561043e57600080fd5b506102c360065481565b34801561045457600080fd5b5061029661dead81565b34801561046a57600080fd5b506102c360085481565b34801561048057600080fd5b506000546001600160a01b0316610296565b34801561049e57600080fd5b506102c360075481565b3480156104b457600080fd5b5060408051808201909152600481526326aba0a960e11b6020820152610230565b3480156104e157600080fd5b506101fd6104f0366004611eb2565b611049565b34801561050157600080fd5b50610266610510366004611e45565b611128565b34801561052157600080fd5b506101fd611135565b34801561053657600080fd5b506102c3610545366004611eef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057c57600080fd5b506101fd61058b366004611f28565b611200565b34801561059c57600080fd5b506101fd6105ab366004611f58565b611293565b3480156105bc57600080fd5b506101fd6105cb366004611eb2565b611306565b3480156105dc57600080fd5b506102c360095481565b3480156105f257600080fd5b50600b5461026690600160a01b900460ff1681565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161063190611f75565b60405180910390fd5b6106466009600a6120a4565b61065590640ba43b74006120b3565b6006556106646009600a6120a4565b61067390640ba43b74006120b3565b600755565b600061068533848461139e565b5060015b92915050565b600061069d6009600a6120a4565b6106ac90640ba43b74006120b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054828110156107365760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610631565b6107418585856114c2565b610755853361075086856120ca565b61139e565b506001949350505050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b815260040161063190611f75565b6001600160a01b03811660009081526003602052604090205460ff1615156001036107f75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610631565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b0316331461086d5760405162461bcd60e51b815260040161063190611f75565b600b54600160a01b900460ff16156108c15760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610631565b600b805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b0316331461092b5760405162461bcd60e51b815260040161063190611f75565b306001600160a01b038216036109835760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f742062652074686520466565205265636965766572006044820152606401610631565b6001600160a01b0381166109e55760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b6064820152608401610631565b600480546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610a6f5760405162461bcd60e51b815260040161063190611f75565b306001600160a01b03831603610ae65760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610631565b60008111610b065760405162461bcd60e51b8152600401610631906120dd565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6e919061211f565b811115610bb35760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610631565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c9190612138565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610c865760405162461bcd60e51b815260040161063190611f75565b631dcd6500811115610cf85760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b6064820152608401610631565b6302faf080811015610d725760405162461bcd60e51b815260206004820152603a60248201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560448201527f7175616c20746f20302e3125206f662074686520737570706c790000000000006064820152608401610631565b610d7e6009600a6120a4565b610d8890826120b3565b60055560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b03163314610de35760405162461bcd60e51b815260040161063190611f75565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e575760405162461bcd60e51b815260040161063190611f75565b600b54600160a01b900460ff1615610eab5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610631565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255610ef591309190610ee6906009906120a4565b61075090640ba43b74006120b3565b600a546001600160a01b031663f305d7194730610f27816001600160a01b031660009081526001602052604090205490565b600080610f3c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fa4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fc99190612155565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015611022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110469190612138565b50565b6000546001600160a01b031633146110735760405162461bcd60e51b815260040161063190611f75565b6001600160a01b03811660009081526003602052604081205460ff16151590036110df5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610631565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b60006106853384846114c2565b47806111535760405162461bcd60e51b8152600401610631906120dd565b478111156111995760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610631565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111d3573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000546001600160a01b0316331461122a5760405162461bcd60e51b815260040161063190611f75565b6028821115801561123c575060288111155b6112885760405162461bcd60e51b815260206004820152601760248201527f45524332303a2077726f6e67207461782076616c7565210000000000000000006044820152606401610631565b600891909155600955565b6000546001600160a01b031633146112bd5760405162461bcd60e51b815260040161063190611f75565b600b805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146113305760405162461bcd60e51b815260040161063190611f75565b6001600160a01b0381166113955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610631565b61104681611b3d565b6001600160a01b0383166114005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610631565b6001600160a01b0382166114615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610631565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610631565b6001600160a01b0382166115885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610631565b600081116115ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610631565b6001600160a01b03831660009081526003602052604081205460ff1615801561162c57506001600160a01b03831660009081526003602052604090205460ff16155b1561169d57600b54600160a01b900460ff166116805760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610631565b60646008548361169091906120b3565b61169a9190612183565b90505b6001600160a01b03841660009081526003602052604090205460ff16806116dc57506001600160a01b03831660009081526003602052604090205460ff165b156116e5575060005b600b546001600160a01b038581169116148015906117115750600b546001600160a01b03848116911614155b1561171a575060005b600b546001600160a01b0385811691161480156117455750600a546001600160a01b03848116911614155b801561176a57506001600160a01b03831660009081526003602052604090205460ff16155b15611838576006548211156117bd5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610631565b600754826117e0856001600160a01b031660009081526001602052604090205490565b6117ea91906121a5565b11156118385760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610631565b600b546001600160a01b0385811691161480159061186f57506001600160a01b03841660009081526003602052604090205460ff16155b801561189457506001600160a01b03831660009081526003602052604090205460ff16155b156118e7576006548211156118e75760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610631565b600b546001600160a01b03848116911614801561190d57506001600160a01b0384163014155b801561193257506001600160a01b03841660009081526003602052604090205460ff16155b801561195757506001600160a01b03831660009081526003602052604090205460ff16155b156119795760646009548361196c91906120b3565b6119769190612183565b90505b30600090815260016020526040902054600b54600160b01b900460ff161580156119b15750600b546001600160a01b03868116911614155b80156119c65750600b54600160a81b900460ff165b80156119d457506005548110155b156119f6576119e4600554611b8d565b4780156119f4576119f447611d54565b505b6001600160a01b038516600090815260016020526040902054611a1a9084906120ca565b6001600160a01b038616600090815260016020526040902055611a3d82846120ca565b6001600160a01b038516600090815260016020526040902054611a6091906121a5565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aaa85876120ca565b60405190815260200160405180910390a38115611b365730600090815260016020526040902054611adc9083906121a5565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b2d9086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600b805460ff60b01b1916600160b01b17905580611bed5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610631565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c2257611c226121b8565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f91906121ce565b81600181518110611cb257611cb26121b8565b6001600160a01b039283166020918202929092010152600a54611cd8913091168461139e565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d119085906000908690309042906004016121eb565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b5050600b805460ff60b01b1916905550505050565b60008111611da45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610631565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611e0f57858101830151858201604001528201611df3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461104657600080fd5b60008060408385031215611e5857600080fd5b8235611e6381611e30565b946020939093013593505050565b600080600060608486031215611e8657600080fd5b8335611e9181611e30565b92506020840135611ea181611e30565b929592945050506040919091013590565b600060208284031215611ec457600080fd5b8135611ecf81611e30565b9392505050565b600060208284031215611ee857600080fd5b5035919050565b60008060408385031215611f0257600080fd5b8235611f0d81611e30565b91506020830135611f1d81611e30565b809150509250929050565b60008060408385031215611f3b57600080fd5b50508035926020909101359150565b801515811461104657600080fd5b600060208284031215611f6a57600080fd5b8135611ecf81611f4a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ffb578160001904821115611fe157611fe1611faa565b80851615611fee57918102915b93841c9390800290611fc5565b509250929050565b60008261201257506001610689565b8161201f57506000610689565b8160018114612035576002811461203f5761205b565b6001915050610689565b60ff84111561205057612050611faa565b50506001821b610689565b5060208310610133831016604e8410600b841016171561207e575081810a610689565b6120888383611fc0565b806000190482111561209c5761209c611faa565b029392505050565b6000611ecf60ff841683612003565b808202811582820484141761068957610689611faa565b8181038181111561068957610689611faa565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60006020828403121561213157600080fd5b5051919050565b60006020828403121561214a57600080fd5b8151611ecf81611f4a565b60008060006060848603121561216a57600080fd5b8351925060208401519150604084015190509250925092565b6000826121a057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561068957610689611faa565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e057600080fd5b8151611ecf81611e30565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561223b5784516001600160a01b031683529383019391830191600101612216565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b836b3ce78855cd82a751c7657c09718df6fecefc85586152a475851d7662c0a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80637a40c83f11610102578063a9059cbb11610095578063f0f56b6a11610064578063f0f56b6a14610590578063f2fde38b146105b0578063f66895a3146105d0578063f87dc2c6146105e657600080fd5b8063a9059cbb146104f5578063ce831ed514610515578063dd62ed3e1461052a578063e3ca2d651461057057600080fd5b80638da5cb5b116100d15780638da5cb5b146104745780638f9a55c01461049257806395d89b41146104a8578063a6dee319146104d557600080fd5b80637a40c83f1461041d5780637d1db4a51461043257806385141a7714610448578063864701a51461045e57600080fd5b8063432455561161017a57806370a082311161014957806370a082311461038257806370f713b7146103b8578063715018a6146103d8578063768dc710146103ed57600080fd5b8063432455561461030d5780635968637d1461032d5780636b0da1b7146103425780636dff2eeb1461036257600080fd5b80631694505e116101b65780631694505e1461027657806318160ddd146102ae57806323b872dd146102d1578063313ce567146102f157600080fd5b80630106aaef146101e857806306fdde03146101ff578063095ea7b31461024657600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610607565b005b34801561020b57600080fd5b5060408051808201909152600c81526b4d656d65205761726661726560a01b60208201525b60405161023d9190611de2565b60405180910390f35b34801561025257600080fd5b50610266610261366004611e45565b610678565b604051901515815260200161023d565b34801561028257600080fd5b50600a54610296906001600160a01b031681565b6040516001600160a01b03909116815260200161023d565b3480156102ba57600080fd5b506102c361068f565b60405190815260200161023d565b3480156102dd57600080fd5b506102666102ec366004611e71565b6106b1565b3480156102fd57600080fd5b506040516009815260200161023d565b34801561031957600080fd5b506101fd610328366004611eb2565b610760565b34801561033957600080fd5b506101fd610843565b34801561034e57600080fd5b506101fd61035d366004611eb2565b610901565b34801561036e57600080fd5b506101fd61037d366004611e45565b610a45565b34801561038e57600080fd5b506102c361039d366004611eb2565b6001600160a01b031660009081526001602052604090205490565b3480156103c457600080fd5b506101fd6103d3366004611ed6565b610c5c565b3480156103e457600080fd5b506101fd610db9565b3480156103f957600080fd5b50610266610408366004611eb2565b60036020526000908152604090205460ff1681565b34801561042957600080fd5b506101fd610e2d565b34801561043e57600080fd5b506102c360065481565b34801561045457600080fd5b5061029661dead81565b34801561046a57600080fd5b506102c360085481565b34801561048057600080fd5b506000546001600160a01b0316610296565b34801561049e57600080fd5b506102c360075481565b3480156104b457600080fd5b5060408051808201909152600481526326aba0a960e11b6020820152610230565b3480156104e157600080fd5b506101fd6104f0366004611eb2565b611049565b34801561050157600080fd5b50610266610510366004611e45565b611128565b34801561052157600080fd5b506101fd611135565b34801561053657600080fd5b506102c3610545366004611eef565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561057c57600080fd5b506101fd61058b366004611f28565b611200565b34801561059c57600080fd5b506101fd6105ab366004611f58565b611293565b3480156105bc57600080fd5b506101fd6105cb366004611eb2565b611306565b3480156105dc57600080fd5b506102c360095481565b3480156105f257600080fd5b50600b5461026690600160a01b900460ff1681565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161063190611f75565b60405180910390fd5b6106466009600a6120a4565b61065590640ba43b74006120b3565b6006556106646009600a6120a4565b61067390640ba43b74006120b3565b600755565b600061068533848461139e565b5060015b92915050565b600061069d6009600a6120a4565b6106ac90640ba43b74006120b3565b905090565b6001600160a01b0383166000908152600260209081526040808320338452909152812054828110156107365760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610631565b6107418585856114c2565b610755853361075086856120ca565b61139e565b506001949350505050565b6000546001600160a01b0316331461078a5760405162461bcd60e51b815260040161063190611f75565b6001600160a01b03811660009081526003602052604090205460ff1615156001036107f75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610631565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b0316331461086d5760405162461bcd60e51b815260040161063190611f75565b600b54600160a01b900460ff16156108c15760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610631565b600b805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b0316331461092b5760405162461bcd60e51b815260040161063190611f75565b306001600160a01b038216036109835760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f742062652074686520466565205265636965766572006044820152606401610631565b6001600160a01b0381166109e55760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b6064820152608401610631565b600480546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610a6f5760405162461bcd60e51b815260040161063190611f75565b306001600160a01b03831603610ae65760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610631565b60008111610b065760405162461bcd60e51b8152600401610631906120dd565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6e919061211f565b811115610bb35760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610631565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c9190612138565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610c865760405162461bcd60e51b815260040161063190611f75565b631dcd6500811115610cf85760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b6064820152608401610631565b6302faf080811015610d725760405162461bcd60e51b815260206004820152603a60248201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560448201527f7175616c20746f20302e3125206f662074686520737570706c790000000000006064820152608401610631565b610d7e6009600a6120a4565b610d8890826120b3565b60055560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b03163314610de35760405162461bcd60e51b815260040161063190611f75565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e575760405162461bcd60e51b815260040161063190611f75565b600b54600160a01b900460ff1615610eab5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610631565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255610ef591309190610ee6906009906120a4565b61075090640ba43b74006120b3565b600a546001600160a01b031663f305d7194730610f27816001600160a01b031660009081526001602052604090205490565b600080610f3c6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610fa4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610fc99190612155565b5050600b54600a5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015611022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110469190612138565b50565b6000546001600160a01b031633146110735760405162461bcd60e51b815260040161063190611f75565b6001600160a01b03811660009081526003602052604081205460ff16151590036110df5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610631565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b60006106853384846114c2565b47806111535760405162461bcd60e51b8152600401610631906120dd565b478111156111995760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610631565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111d3573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000546001600160a01b0316331461122a5760405162461bcd60e51b815260040161063190611f75565b6028821115801561123c575060288111155b6112885760405162461bcd60e51b815260206004820152601760248201527f45524332303a2077726f6e67207461782076616c7565210000000000000000006044820152606401610631565b600891909155600955565b6000546001600160a01b031633146112bd5760405162461bcd60e51b815260040161063190611f75565b600b805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146113305760405162461bcd60e51b815260040161063190611f75565b6001600160a01b0381166113955760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610631565b61104681611b3d565b6001600160a01b0383166114005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610631565b6001600160a01b0382166114615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610631565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115265760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610631565b6001600160a01b0382166115885760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610631565b600081116115ea5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610631565b6001600160a01b03831660009081526003602052604081205460ff1615801561162c57506001600160a01b03831660009081526003602052604090205460ff16155b1561169d57600b54600160a01b900460ff166116805760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610631565b60646008548361169091906120b3565b61169a9190612183565b90505b6001600160a01b03841660009081526003602052604090205460ff16806116dc57506001600160a01b03831660009081526003602052604090205460ff165b156116e5575060005b600b546001600160a01b038581169116148015906117115750600b546001600160a01b03848116911614155b1561171a575060005b600b546001600160a01b0385811691161480156117455750600a546001600160a01b03848116911614155b801561176a57506001600160a01b03831660009081526003602052604090205460ff16155b15611838576006548211156117bd5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610631565b600754826117e0856001600160a01b031660009081526001602052604090205490565b6117ea91906121a5565b11156118385760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610631565b600b546001600160a01b0385811691161480159061186f57506001600160a01b03841660009081526003602052604090205460ff16155b801561189457506001600160a01b03831660009081526003602052604090205460ff16155b156118e7576006548211156118e75760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610631565b600b546001600160a01b03848116911614801561190d57506001600160a01b0384163014155b801561193257506001600160a01b03841660009081526003602052604090205460ff16155b801561195757506001600160a01b03831660009081526003602052604090205460ff16155b156119795760646009548361196c91906120b3565b6119769190612183565b90505b30600090815260016020526040902054600b54600160b01b900460ff161580156119b15750600b546001600160a01b03868116911614155b80156119c65750600b54600160a81b900460ff165b80156119d457506005548110155b156119f6576119e4600554611b8d565b4780156119f4576119f447611d54565b505b6001600160a01b038516600090815260016020526040902054611a1a9084906120ca565b6001600160a01b038616600090815260016020526040902055611a3d82846120ca565b6001600160a01b038516600090815260016020526040902054611a6091906121a5565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aaa85876120ca565b60405190815260200160405180910390a38115611b365730600090815260016020526040902054611adc9083906121a5565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b2d9086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600b805460ff60b01b1916600160b01b17905580611bed5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610631565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c2257611c226121b8565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9f91906121ce565b81600181518110611cb257611cb26121b8565b6001600160a01b039283166020918202929092010152600a54611cd8913091168461139e565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d119085906000908690309042906004016121eb565b600060405180830381600087803b158015611d2b57600080fd5b505af1158015611d3f573d6000803e3d6000fd5b5050600b805460ff60b01b1916905550505050565b60008111611da45760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610631565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611dde573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611e0f57858101830151858201604001528201611df3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461104657600080fd5b60008060408385031215611e5857600080fd5b8235611e6381611e30565b946020939093013593505050565b600080600060608486031215611e8657600080fd5b8335611e9181611e30565b92506020840135611ea181611e30565b929592945050506040919091013590565b600060208284031215611ec457600080fd5b8135611ecf81611e30565b9392505050565b600060208284031215611ee857600080fd5b5035919050565b60008060408385031215611f0257600080fd5b8235611f0d81611e30565b91506020830135611f1d81611e30565b809150509250929050565b60008060408385031215611f3b57600080fd5b50508035926020909101359150565b801515811461104657600080fd5b600060208284031215611f6a57600080fd5b8135611ecf81611f4a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ffb578160001904821115611fe157611fe1611faa565b80851615611fee57918102915b93841c9390800290611fc5565b509250929050565b60008261201257506001610689565b8161201f57506000610689565b8160018114612035576002811461203f5761205b565b6001915050610689565b60ff84111561205057612050611faa565b50506001821b610689565b5060208310610133831016604e8410600b841016171561207e575081810a610689565b6120888383611fc0565b806000190482111561209c5761209c611faa565b029392505050565b6000611ecf60ff841683612003565b808202811582820484141761068957610689611faa565b8181038181111561068957610689611faa565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b60006020828403121561213157600080fd5b5051919050565b60006020828403121561214a57600080fd5b8151611ecf81611f4a565b60008060006060848603121561216a57600080fd5b8351925060208401519150604084015190509250925092565b6000826121a057634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561068957610689611faa565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156121e057600080fd5b8151611ecf81611e30565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561223b5784516001600160a01b031683529383019391830191600101612216565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b836b3ce78855cd82a751c7657c09718df6fecefc85586152a475851d7662c0a64736f6c63430008130033

Deployed Bytecode Sourcemap

5260:11039:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13678:121;;;;;;;;;;;;;:::i;:::-;;8268:83;;;;;;;;;;-1:-1:-1;8338:5:0;;;;;;;;;;;;-1:-1:-1;;;8338:5:0;;;;8268:83;;;;;;;:::i;:::-;;;;;;;;9101:161;;;;;;;;;;-1:-1:-1;9101:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9101:161:0;1023:187:1;6110:41:0;;;;;;;;;;-1:-1:-1;6110:41:0;;;;-1:-1:-1;;;;;6110:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6110:41:0;1215:229:1;8545:95:0;;;;;;;;;;;;;:::i;:::-;;;1595:25:1;;;1583:2;1568:18;8545:95:0;1449:177:1;9270:410:0;;;;;;;;;;-1:-1:-1;9270:410:0;;;;;:::i;:::-;;:::i;8454:83::-;;;;;;;;;;-1:-1:-1;8454:83:0;;5585:1;2234:36:1;;2222:2;2207:18;8454:83:0;2092:184:1;12958:230:0;;;;;;;;;;-1:-1:-1;12958:230:0;;;;;:::i;:::-;;:::i;14690:203::-;;;;;;;;;;;;;:::i;13804:369::-;;;;;;;;;;-1:-1:-1;13804:369:0;;;;;:::i;:::-;;:::i;15430:477::-;;;;;;;;;;-1:-1:-1;15430:477:0;;;;;:::i;:::-;;:::i;8648:119::-;;;;;;;;;;-1:-1:-1;8648:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8741:18:0;8714:7;8741:18;;;:9;:18;;;;;;;8648:119;14178:358;;;;;;;;;;-1:-1:-1;14178:358:0;;;;;:::i;:::-;;:::i;4343:148::-;;;;;;;;;;;;;:::i;5446:51::-;;;;;;;;;;-1:-1:-1;5446:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14899:493;;;;;;;;;;;;;:::i;5823:55::-;;;;;;;;;;;;;;;;6024:79;;;;;;;;;;;;6061:42;6024:79;;5952:28;;;;;;;;;;;;;;;;3705:79;;;;;;;;;;-1:-1:-1;3743:7:0;3770:6;-1:-1:-1;;;;;3770:6:0;3705:79;;5887:58;;;;;;;;;;;;;;;;8359:87;;;;;;;;;;-1:-1:-1;8431:7:0;;;;;;;;;;;;-1:-1:-1;;;8431:7:0;;;;8359:87;;13193:244;;;;;;;;;;-1:-1:-1;13193:244:0;;;;;:::i;:::-;;:::i;8775:167::-;;;;;;;;;;-1:-1:-1;8775:167:0;;;;;:::i;:::-;;:::i;15910:386::-;;;;;;;;;;;;;:::i;8950:143::-;;;;;;;;;;-1:-1:-1;8950:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9058:18:0;;;9031:7;9058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8950:143;13442:231;;;;;;;;;;-1:-1:-1;13442:231:0;;;;;:::i;:::-;;:::i;14541:143::-;;;;;;;;;;-1:-1:-1;14541:143:0;;;;;:::i;:::-;;:::i;3920:203::-;;;;;;;;;;-1:-1:-1;3920:203:0;;;;;:::i;:::-;;:::i;5987:29::-;;;;;;;;;;;;;;;;6194:31;;;;;;;;;;-1:-1:-1;6194:31:0;;;;-1:-1:-1;;;6194:31:0;;;;;;13678:121;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;;;;;;;;;5642:13:::1;5585:1;5642:2;:13;:::i;:::-;5628:27;::::0;:11:::1;:27;:::i;:::-;13734:12;:22:::0;5642:13:::1;5585:1;5642:2;:13;:::i;:::-;5628:27;::::0;:11:::1;:27;:::i;:::-;13767:14;:24:::0;13678:121::o;9101:161::-;9176:4;9193:39;2689:10;9216:7;9225:6;9193:8;:39::i;:::-;-1:-1:-1;9250:4:0;9101:161;;;;;:::o;8545:95::-;8598:7;5642:13;5585:1;5642:2;:13;:::i;:::-;5628:27;;:11;:27;:::i;:::-;8618:14;;8545:95;:::o;9270:410::-;-1:-1:-1;;;;;9412:19:0;;9368:4;9412:19;;;:11;:19;;;;;;;;2689:10;9412:33;;;;;;;;9464:26;;;;9456:79;;;;-1:-1:-1;;;9456:79:0;;6452:2:1;9456:79:0;;;6434:21:1;6491:2;6471:18;;;6464:30;6530:34;6510:18;;;6503:62;-1:-1:-1;;;6581:18:1;;;6574:38;6629:19;;9456:79:0;6250:404:1;9456:79:0;9546:36;9556:6;9564:9;9575:6;9546:9;:36::i;:::-;9593:57;9602:6;2689:10;9624:25;9643:6;9624:16;:25;:::i;:::-;9593:8;:57::i;:::-;-1:-1:-1;9668:4:0;;9270:410;-1:-1:-1;;;;9270:410:0:o;12958:230::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13029:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;13021:74:::1;;;::::0;-1:-1:-1;;;13021:74:0;;6994:2:1;13021:74:0::1;::::0;::::1;6976:21:1::0;7033:2;7013:18;;;7006:30;7072:29;7052:18;;;7045:57;7119:18;;13021:74:0::1;6792:351:1::0;13021:74:0::1;-1:-1:-1::0;;;;;13105:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;13105:34:0::1;13135:4;13105:34;::::0;;13151:30;::::1;::::0;13105:27;13151:30:::1;12958:230:::0;:::o;14690:203::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;14750:11:::1;::::0;-1:-1:-1;;;14750:11:0;::::1;;;14749:12;14741:47;;;::::0;-1:-1:-1;;;14741:47:0;;7350:2:1;14741:47:0::1;::::0;::::1;7332:21:1::0;7389:2;7369:18;;;7362:30;-1:-1:-1;;;7408:18:1;;;7401:53;7471:18;;14741:47:0::1;7148:347:1::0;14741:47:0::1;14799:15;:22:::0;;-1:-1:-1;;;;14832:18:0;-1:-1:-1;;;14832:18:0;;;14865:20:::1;::::0;::::1;::::0;-1:-1:-1;;14865:20:0::1;14690:203::o:0;13804:369::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;13915:4:::1;-1:-1:-1::0;;;;;13893:27:0;::::1;::::0;13885:71:::1;;;::::0;-1:-1:-1;;;13885:71:0;;7702:2:1;13885:71:0::1;::::0;::::1;7684:21:1::0;7741:2;7721:18;;;7714:30;7780:33;7760:18;;;7753:61;7831:18;;13885:71:0::1;7500:355:1::0;13885:71:0::1;-1:-1:-1::0;;;;;13974:24:0;::::1;13966:72;;;::::0;-1:-1:-1;;;13966:72:0;;8062:2:1;13966:72:0::1;::::0;::::1;8044:21:1::0;8101:2;8081:18;;;8074:30;8140:34;8120:18;;;8113:62;-1:-1:-1;;;8191:18:1;;;8184:33;8234:19;;13966:72:0::1;7860:399:1::0;13966:72:0::1;14048:15;:28:::0;;-1:-1:-1;;;;;;14048:28:0::1;-1:-1:-1::0;;;;;14048:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;14085:30:0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;14085:37:0::1;-1:-1:-1::0;14085:37:0::1;::::0;;14134:31;::::1;::::0;-1:-1:-1;14134:31:0::1;13804:369:::0;:::o;15430:477::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;15561:4:::1;-1:-1:-1::0;;;;;15539:27:0;::::1;::::0;15531:94:::1;;;::::0;-1:-1:-1;;;15531:94:0;;8466:2:1;15531:94:0::1;::::0;::::1;8448:21:1::0;8505:2;8485:18;;;8478:30;8544:34;8524:18;;;8517:62;-1:-1:-1;;;8595:18:1;;;8588:52;8657:19;;15531:94:0::1;8264:418:1::0;15531:94:0::1;15654:1;15644:7;:11;15636:58;;;;-1:-1:-1::0;;;15636:58:0::1;;;;;;;:::i;:::-;15724:43;::::0;-1:-1:-1;;;15724:43:0;;15761:4:::1;15724:43;::::0;::::1;1387:51:1::0;-1:-1:-1;;;;;15724:28:0;::::1;::::0;::::1;::::0;1360:18:1;;15724:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15713:7;:54;;15705:86;;;::::0;-1:-1:-1;;;15705:86:0;;9481:2:1;15705:86:0::1;::::0;::::1;9463:21:1::0;9520:2;9500:18;;;9493:30;-1:-1:-1;;;9539:18:1;;;9532:49;9598:18;;15705:86:0::1;9279:343:1::0;15705:86:0::1;15830:15;::::0;;15802:53:::1;::::0;-1:-1:-1;;;15802:53:0;;-1:-1:-1;;;;;15830:15:0;;::::1;15802:53:::0;;::::1;9809:51:1::0;;;;9876:18;;;9869:34;;;15802:27:0;::::1;::::0;::::1;::::0;9782:18:1;;15802:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15869:29:0::1;::::0;15890:7;;15869:29:::1;::::0;;;::::1;15430:477:::0;;:::o;14178:358::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;14272:3:::1;14257:11;:18;;14249:84;;;::::0;-1:-1:-1;;;14249:84:0;;10366:2:1;14249:84:0::1;::::0;::::1;10348:21:1::0;10405:2;10385:18;;;10378:30;10444:34;10424:18;;;10417:62;-1:-1:-1;;;10495:18:1;;;10488:51;10556:19;;14249:84:0::1;10164:417:1::0;14249:84:0::1;14367:3;14352:11;:18;;14344:89;;;::::0;-1:-1:-1;;;14344:89:0;;10788:2:1;14344:89:0::1;::::0;::::1;10770:21:1::0;10827:2;10807:18;;;10800:30;10866:34;10846:18;;;10839:62;10937:28;10917:18;;;10910:56;10983:19;;14344:89:0::1;10586:422:1::0;14344:89:0::1;14469:13;5585:1;14469:2;:13;:::i;:::-;14455:27;::::0;:11;:27:::1;:::i;:::-;14444:8;:38:::0;14494:34:::1;::::0;14516:11;;14494:34:::1;::::0;;;::::1;14178:358:::0;:::o;4343:148::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;4450:1:::1;4434:6:::0;;4413:40:::1;::::0;-1:-1:-1;;;;;4434:6:0;;::::1;::::0;4413:40:::1;::::0;4450:1;;4413:40:::1;4481:1;4464:19:::0;;-1:-1:-1;;;;;;4464:19:0::1;::::0;;4343:148::o;14899:493::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;14964:11:::1;::::0;-1:-1:-1;;;14964:11:0;::::1;;;14963:12;14955:47;;;::::0;-1:-1:-1;;;14955:47:0;;7350:2:1;14955:47:0::1;::::0;::::1;7332:21:1::0;7389:2;7369:18;;;7362:30;-1:-1:-1;;;7408:18:1;;;7401:53;7471:18;;14955:47:0::1;7148:347:1::0;14955:47:0::1;15013:15;:80:::0;;-1:-1:-1;;;;;;15013:80:0::1;15050:42;15013:80:::0;;::::1;::::0;;15104:58:::1;::::0;15121:4:::1;::::0;15050:42;5642:13:::1;::::0;5585:1:::1;::::0;5642:13:::1;:::i;:::-;5628:27;::::0;:11:::1;:27;:::i;15104:58::-;15173:15;::::0;-1:-1:-1;;;;;15173:15:0::1;:31;15212:21;15243:4;15249:24;15243:4:::0;-1:-1:-1;;;;;8741:18:0;8714:7;8741:18;;;:9;:18;;;;;;;8648:119;15249:24:::1;15274:1;15276::::0;15278:7:::1;3743::::0;3770:6;-1:-1:-1;;;;;3770:6:0;;3705:79;15278:7:::1;15173:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;15173:129:0;;;-1:-1:-1;;;;;11372:15:1;;;15173:129:0::1;::::0;::::1;11354:34:1::0;11404:18;;;11397:34;;;;11447:18;;;11440:34;;;;11490:18;;;11483:34;11554:15;;;11533:19;;;11526:44;15286:15:0::1;11586:19:1::0;;;11579:35;11288:19;;15173:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15320:13:0::1;::::0;15351:15:::1;::::0;15313:71:::1;::::0;-1:-1:-1;;;15313:71:0;;-1:-1:-1;;;;;15351:15:0;;::::1;15313:71;::::0;::::1;9809:51:1::0;-1:-1:-1;;9876:18:1;;;9869:34;15320:13:0;::::1;::::0;-1:-1:-1;15313:29:0::1;::::0;9782:18:1;;15313:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14899:493::o:0;13193:244::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13272:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;13264:76:::1;;;::::0;-1:-1:-1;;;13264:76:0;;12417:2:1;13264:76:0::1;::::0;::::1;12399:21:1::0;12456:2;12436:18;;;12429:30;12495:29;12475:18;;;12468:57;12542:18;;13264:76:0::1;12215:351:1::0;13264:76:0::1;-1:-1:-1::0;;;;;13351:27:0;::::1;13381:5;13351:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;13351:35:0::1;::::0;;13399:30;::::1;::::0;13381:5;13399:30:::1;13193:244:::0;:::o;8775:167::-;8853:4;8870:42;2689:10;8894:9;8905:6;8870:9;:42::i;15910:386::-;15993:21;16033:22;16025:69;;;;-1:-1:-1;;;16025:69:0;;;;;;;:::i;:::-;16135:21;16113:18;:43;;16105:75;;;;-1:-1:-1;;;16105:75:0;;9481:2:1;16105:75:0;;;9463:21:1;9520:2;9500:18;;;9493:30;-1:-1:-1;;;9539:18:1;;;9532:49;9598:18;;16105:75:0;9279:343:1;16105:75:0;16207:15;;16191:62;;-1:-1:-1;;;;;16207:15:0;;;;16191:62;;;;;16234:18;;16207:15;16191:62;16207:15;16191:62;16234:18;16207:15;16191:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16267:21:0;;;;;;;15953:343;15910:386::o;13442:231::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;13551:2:::1;13538:9;:15;;:35;;;;;13571:2;13557:10;:16;;13538:35;13530:71;;;::::0;-1:-1:-1;;;13530:71:0;;12773:2:1;13530:71:0::1;::::0;::::1;12755:21:1::0;12812:2;12792:18;;;12785:30;12851:25;12831:18;;;12824:53;12894:18;;13530:71:0::1;12571:347:1::0;13530:71:0::1;13612:8;:20:::0;;;;13643:9:::1;:22:::0;13442:231::o;14541:143::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;14611:15:::1;:23:::0;;-1:-1:-1;;;;14611:23:0::1;-1:-1:-1::0;;;14611:23:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;14647:29:::1;::::0;::::1;::::0;-1:-1:-1;;14647:29:0::1;14541:143:::0;:::o;3920:203::-;3832:6;;-1:-1:-1;;;;;3832:6:0;2689:10;3832:22;3824:67;;;;-1:-1:-1;;;3824:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4011:22:0;::::1;4003:73;;;::::0;-1:-1:-1;;;4003:73:0;;13125:2:1;4003:73:0::1;::::0;::::1;13107:21:1::0;13164:2;13144:18;;;13137:30;13203:34;13183:18;;;13176:62;-1:-1:-1;;;13254:18:1;;;13247:36;13300:19;;4003:73:0::1;12923:402:1::0;4003:73:0::1;4087:28;4106:8;4087:18;:28::i;9688:335::-:0;-1:-1:-1;;;;;9781:19:0;;9773:68;;;;-1:-1:-1;;;9773:68:0;;13532:2:1;9773:68:0;;;13514:21:1;13571:2;13551:18;;;13544:30;13610:34;13590:18;;;13583:62;-1:-1:-1;;;13661:18:1;;;13654:34;13705:19;;9773:68:0;13330:400:1;9773:68:0;-1:-1:-1;;;;;9860:21:0;;9852:68;;;;-1:-1:-1;;;9852:68:0;;13937:2:1;9852:68:0;;;13919:21:1;13976:2;13956:18;;;13949:30;14015:34;13995:18;;;13988:62;-1:-1:-1;;;14066:18:1;;;14059:32;14108:19;;9852:68:0;13735:398:1;9852:68:0;-1:-1:-1;;;;;9931:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9983:32;;1595:25:1;;;9983:32:0;;1568:18:1;9983:32:0;;;;;;;9688:335;;;:::o;10031:2201::-;-1:-1:-1;;;;;10119:18:0;;10111:68;;;;-1:-1:-1;;;10111:68:0;;14340:2:1;10111:68:0;;;14322:21:1;14379:2;14359:18;;;14352:30;14418:34;14398:18;;;14391:62;-1:-1:-1;;;14469:18:1;;;14462:35;14514:19;;10111:68:0;14138:401:1;10111:68:0;-1:-1:-1;;;;;10198:16:0;;10190:64;;;;-1:-1:-1;;;10190:64:0;;14746:2:1;10190:64:0;;;14728:21:1;14785:2;14765:18;;;14758:30;14824:34;14804:18;;;14797:62;-1:-1:-1;;;14875:18:1;;;14868:33;14918:19;;10190:64:0;14544:399:1;10190:64:0;10282:1;10273:6;:10;10265:64;;;;-1:-1:-1;;;10265:64:0;;15150:2:1;10265:64:0;;;15132:21:1;15189:2;15169:18;;;15162:30;15228:34;15208:18;;;15201:62;-1:-1:-1;;;15279:18:1;;;15272:39;15328:19;;10265:64:0;14948:405:1;10265:64:0;-1:-1:-1;;;;;10374:24:0;;10340:14;10374:24;;;:18;:24;;;;;;;;10373:25;:52;;;;-1:-1:-1;;;;;;10403:22:0;;;;;;:18;:22;;;;;;;;10402:23;10373:52;10369:185;;;10450:11;;-1:-1:-1;;;10450:11:0;;;;10442:43;;;;-1:-1:-1;;;10442:43:0;;15560:2:1;10442:43:0;;;15542:21:1;15599:2;15579:18;;;15572:30;-1:-1:-1;;;15618:18:1;;;15611:49;15677:18;;10442:43:0;15358:343:1;10442:43:0;10539:3;10528:8;;10519:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;10510:32;;10369:185;-1:-1:-1;;;;;10578:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;10606:22:0;;;;;;:18;:22;;;;;;;;10578:50;10574:93;;;-1:-1:-1;10654:1:0;10574:93;10706:13;;-1:-1:-1;;;;;10698:21:0;;;10706:13;;10698:21;;;;:44;;-1:-1:-1;10729:13:0;;-1:-1:-1;;;;;10723:19:0;;;10729:13;;10723:19;;10698:44;10694:86;;;-1:-1:-1;10767:1:0;10694:86;10809:13;;-1:-1:-1;;;;;10801:21:0;;;10809:13;;10801:21;:55;;;;-1:-1:-1;10840:15:0;;-1:-1:-1;;;;;10826:30:0;;;10840:15;;10826:30;;10801:55;:82;;;;-1:-1:-1;;;;;;10861:22:0;;;;;;:18;:22;;;;;;;;10860:23;10801:82;10797:273;;;10919:12;;10909:6;:22;;10901:60;;;;-1:-1:-1;;;10901:60:0;;16130:2:1;10901:60:0;;;16112:21:1;16169:2;16149:18;;;16142:30;-1:-1:-1;;;16188:18:1;;;16181:55;16253:18;;10901:60:0;15928:349:1;10901:60:0;11011:14;;11001:6;10985:13;10995:2;-1:-1:-1;;;;;8741:18:0;8714:7;8741:18;;;:9;:18;;;;;;;8648:119;10985:13;:22;;;;:::i;:::-;:40;;10977:79;;;;-1:-1:-1;;;10977:79:0;;16614:2:1;10977:79:0;;;16596:21:1;16653:2;16633:18;;;16626:30;16692:28;16672:18;;;16665:56;16738:18;;10977:79:0;16412:350:1;10977:79:0;11102:13;;-1:-1:-1;;;;;11094:21:0;;;11102:13;;11094:21;;;;:50;;-1:-1:-1;;;;;;11120:24:0;;;;;;:18;:24;;;;;;;;11119:25;11094:50;:77;;;;-1:-1:-1;;;;;;11149:22:0;;;;;;:18;:22;;;;;;;;11148:23;11094:77;11090:173;;;11207:12;;11197:6;:22;;11189:60;;;;-1:-1:-1;;;11189:60:0;;16130:2:1;11189:60:0;;;16112:21:1;16169:2;16149:18;;;16142:30;-1:-1:-1;;;16188:18:1;;;16181:55;16253:18;;11189:60:0;15928:349:1;11189:60:0;11292:13;;-1:-1:-1;;;;;11286:19:0;;;11292:13;;11286:19;:44;;;;-1:-1:-1;;;;;;11309:21:0;;11325:4;11309:21;;11286:44;:73;;;;-1:-1:-1;;;;;;11335:24:0;;;;;;:18;:24;;;;;;;;11334:25;11286:73;:100;;;;-1:-1:-1;;;;;;11364:22:0;;;;;;:18;:22;;;;;;;;11363:23;11286:100;11282:182;;;11441:3;11429:9;;11420:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;11411:33;;11282:182;11529:4;11480:28;8741:18;;;:9;:18;;;;;;11550:6;;-1:-1:-1;;;11550:6:0;;;;11549:7;:32;;;;-1:-1:-1;11568:13:0;;-1:-1:-1;;;;;11560:21:0;;;11568:13;;11560:21;;11549:32;:51;;;;-1:-1:-1;11585:15:0;;-1:-1:-1;;;11585:15:0;;;;11549:51;:87;;;;;11628:8;;11604:20;:32;;11549:87;11545:345;;;11657:26;11674:8;;11657:16;:26::i;:::-;11730:21;11773:22;;11770:105;;11820:35;11833:21;11820:12;:35::i;:::-;11638:252;11545:345;-1:-1:-1;;;;;11918:15:0;;;;;;:9;:15;;;;;;:24;;11936:6;;11918:24;:::i;:::-;-1:-1:-1;;;;;11900:15:0;;;;;;:9;:15;;;;;:42;11987:17;11997:6;11987;:17;:::i;:::-;-1:-1:-1;;;;;11970:13:0;;;;;;:9;:13;;;;;;:35;;;;:::i;:::-;-1:-1:-1;;;;;11954:13:0;;;;;;;:9;:13;;;;;:51;;;;12021:37;;;12040:17;12050:6;12040;:17;:::i;:::-;12021:37;;1595:25:1;;;1583:2;1568:18;12021:37:0;;;;;;;12073:10;;12070:155;;12142:4;12124:24;;;;:9;:24;;;;;;:35;;12152:6;;12124:35;:::i;:::-;12115:4;12097:24;;;;:9;:24;;;;;;;:62;;;;12177:36;;-1:-1:-1;;;;;12177:36:0;;;;;;;12206:6;1595:25:1;;1583:2;1568:18;;1449:177;12177:36:0;;;;;;;;12070:155;10100:2132;;10031:2201;;;:::o;4140:191::-;4214:16;4233:6;;-1:-1:-1;;;;;4250:17:0;;;-1:-1:-1;;;;;;4250:17:0;;;;;;4283:40;;4233:6;;;;;;;4283:40;;4214:16;4283:40;4203:128;4140:191;:::o;12238:551::-;6834:6;:13;;-1:-1:-1;;;;6834:13:0;-1:-1:-1;;;6834:13:0;;;12324:15;12316:57:::1;;;::::0;-1:-1:-1;;;12316:57:0;;16969:2:1;12316:57:0::1;::::0;::::1;16951:21:1::0;17008:2;16988:18;;;16981:30;17047:31;17027:18;;;17020:59;17096:18;;12316:57:0::1;16767:353:1::0;12316:57:0::1;12408:16;::::0;;12422:1:::1;12408:16:::0;;;;;::::1;::::0;;12384:21:::1;::::0;12408:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12408:16:0::1;12384:40;;12453:4;12435;12440:1;12435:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12435:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12479:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12479:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12435:7;;12479:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12469:4;12474:1;12469:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12469:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12544:15:::1;::::0;12512:62:::1;::::0;12529:4:::1;::::0;12544:15:::1;12562:11:::0;12512:8:::1;:62::i;:::-;12585:15;::::0;:196:::1;::::0;-1:-1:-1;;;12585:196:0;;-1:-1:-1;;;;;12585:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12666:11;;12585:15:::1;::::0;12708:4;;12735::::1;::::0;12755:15:::1;::::0;12585:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6870:6:0;:14;;-1:-1:-1;;;;6870:14:0;;;-1:-1:-1;;;;12238:551:0:o;12794:159::-;12867:1;12858:6;:10;12850:52;;;;-1:-1:-1;;;12850:52:0;;16969:2:1;12850:52:0;;;16951:21:1;17008:2;16988:18;;;16981:30;17047:31;17027:18;;;17020:59;17096:18;;12850:52:0;16767:353:1;12850:52:0;12913:15;;:32;;-1:-1:-1;;;;;12913:15:0;;;;:32;;;;;12938:6;;12913:15;:32;:15;:32;12938:6;12913:15;:32;;;;;;;;;;;;;;;;;;;;;12794:159;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:247::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;2448:9;2435:23;2467:31;2492:5;2467:31;:::i;:::-;2517:5;2281:247;-1:-1:-1;;;2281:247:1:o;2793:180::-;2852:6;2905:2;2893:9;2884:7;2880:23;2876:32;2873:52;;;2921:1;2918;2911:12;2873:52;-1:-1:-1;2944:23:1;;2793:180;-1:-1:-1;2793:180: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:248::-;3647:6;3655;3708:2;3696:9;3687:7;3683:23;3679:32;3676:52;;;3724:1;3721;3714:12;3676:52;-1:-1:-1;;3747:23:1;;;3817:2;3802:18;;;3789:32;;-1:-1:-1;3579:248:1:o;3832:118::-;3918:5;3911:13;3904:21;3897:5;3894:32;3884:60;;3940:1;3937;3930:12;3955:241;4011:6;4064:2;4052:9;4043:7;4039:23;4035:32;4032:52;;;4080:1;4077;4070:12;4032:52;4119:9;4106:23;4138:28;4160:5;4138:28;:::i;4201:356::-;4403:2;4385:21;;;4422:18;;;4415:30;4481:34;4476:2;4461:18;;4454:62;4548:2;4533:18;;4201:356::o;4562:127::-;4623:10;4618:3;4614:20;4611:1;4604:31;4654:4;4651:1;4644:15;4678:4;4675:1;4668:15;4694:422;4783:1;4826:5;4783:1;4840:270;4861:7;4851:8;4848:21;4840:270;;;4920:4;4916:1;4912:6;4908:17;4902:4;4899:27;4896:53;;;4929:18;;:::i;:::-;4979:7;4969:8;4965:22;4962:55;;;4999:16;;;;4962:55;5078:22;;;;5038:15;;;;4840:270;;;4844:3;4694:422;;;;;:::o;5121:806::-;5170:5;5200:8;5190:80;;-1:-1:-1;5241:1:1;5255:5;;5190:80;5289:4;5279:76;;-1:-1:-1;5326:1:1;5340:5;;5279:76;5371:4;5389:1;5384:59;;;;5457:1;5452:130;;;;5364:218;;5384:59;5414:1;5405:10;;5428:5;;;5452:130;5489:3;5479:8;5476:17;5473:43;;;5496:18;;:::i;:::-;-1:-1:-1;;5552:1:1;5538:16;;5567:5;;5364:218;;5666:2;5656:8;5653:16;5647:3;5641:4;5638:13;5634:36;5628:2;5618:8;5615:16;5610:2;5604:4;5601:12;5597:35;5594:77;5591:159;;;-1:-1:-1;5703:19:1;;;5735:5;;5591:159;5782:34;5807:8;5801:4;5782:34;:::i;:::-;5852:6;5848:1;5844:6;5840:19;5831:7;5828:32;5825:58;;;5863:18;;:::i;:::-;5901:20;;5121:806;-1:-1:-1;;;5121:806:1:o;5932:140::-;5990:5;6019:47;6060:4;6050:8;6046:19;6040:4;6019:47;:::i;6077:168::-;6150:9;;;6181;;6198:15;;;6192:22;;6178:37;6168:71;;6219:18;;:::i;6659:128::-;6726:9;;;6747:11;;;6744:37;;;6761:18;;:::i;8687:398::-;8889:2;8871:21;;;8928:2;8908:18;;;8901:30;8967:34;8962:2;8947:18;;8940:62;-1:-1:-1;;;9033:2:1;9018:18;;9011:32;9075:3;9060:19;;8687:398::o;9090:184::-;9160:6;9213:2;9201:9;9192:7;9188:23;9184:32;9181:52;;;9229:1;9226;9219:12;9181:52;-1:-1:-1;9252:16:1;;9090:184;-1:-1:-1;9090:184:1:o;9914:245::-;9981:6;10034:2;10022:9;10013:7;10009:23;10005:32;10002:52;;;10050:1;10047;10040:12;10002:52;10082:9;10076:16;10101:28;10123:5;10101:28;:::i;11625:306::-;11713:6;11721;11729;11782:2;11770:9;11761:7;11757:23;11753:32;11750:52;;;11798:1;11795;11788:12;11750:52;11827:9;11821:16;11811:26;;11877:2;11866:9;11862:18;11856:25;11846:35;;11921:2;11910:9;11906:18;11900:25;11890:35;;11625:306;;;;;:::o;15706:217::-;15746:1;15772;15762:132;;15816:10;15811:3;15807:20;15804:1;15797:31;15851:4;15848:1;15841:15;15879:4;15876:1;15869:15;15762:132;-1:-1:-1;15908:9:1;;15706:217::o;16282:125::-;16347:9;;;16368:10;;;16365:36;;;16381:18;;:::i;17257:127::-;17318:10;17313:3;17309:20;17306:1;17299:31;17349:4;17346:1;17339:15;17373:4;17370:1;17363:15;17389:251;17459:6;17512:2;17500:9;17491:7;17487:23;17483:32;17480:52;;;17528:1;17525;17518:12;17480:52;17560:9;17554:16;17579:31;17604:5;17579:31;:::i;17645:980::-;17907:4;17955:3;17944:9;17940:19;17986:6;17975:9;17968:25;18012:2;18050:6;18045:2;18034:9;18030:18;18023:34;18093:3;18088:2;18077:9;18073:18;18066:31;18117:6;18152;18146:13;18183:6;18175;18168:22;18221:3;18210:9;18206:19;18199:26;;18260:2;18252:6;18248:15;18234:29;;18281:1;18291:195;18305:6;18302:1;18299:13;18291:195;;;18370:13;;-1:-1:-1;;;;;18366:39:1;18354:52;;18461:15;;;;18426:12;;;;18402:1;18320:9;18291:195;;;-1:-1:-1;;;;;;;18542:32:1;;;;18537:2;18522:18;;18515:60;-1:-1:-1;;;18606:3:1;18591:19;18584:35;18503:3;17645:980;-1:-1:-1;;;17645:980:1:o

Swarm Source

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