ETH Price: $2,423.78 (+3.03%)

Token

SLAVERSE (SLAV)
 

Overview

Max Total Supply

1,000,000,000,000 SLAV

Holders

107

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,587,906,165.678213741 SLAV

Value
$0.00
0x3449474bebad9eeb187424b1170a776ea91af79b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x16CD42B9...96ce8f8E4
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
SLAVERSE

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-04
*/

/**
 * 
 * 
 * 
 * SPDX-License-Identifier: UNLICENSED 
 * 
*/

pragma solidity ^0.8.4;

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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if(a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract SLAVERSE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = unicode"SLAVERSE";
    string private constant _symbol = unicode"SLAV";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 11;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable public _FeeAddress;
    address payable public _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private _noTaxMode = false;
    bool private inSwap = false;
    uint256 private walletLimitDuration;
    struct User {
        uint256 buyCD;
        bool exists;
    }

    event MaxBuyAmountUpdated(uint _maxBuyAmount);
    event CooldownEnabledUpdated(bool _cooldown);
    event FeeMultiplierUpdated(uint _multiplier);
    event FeeRateUpdated(uint _rate);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor (address payable FeeAddress, address payable marketingWalletAddress) {
        _FeeAddress = FeeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = 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 tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

    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");

        if(from != owner() && to != owner()) {
            
            require(!_bots[from] && !_bots[to]);
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(tradingOpen, "Trading not yet enabled.");
                
                if (walletLimitDuration > block.timestamp) {
                    uint walletBalance = balanceOf(address(to));
                    require(amount.add(walletBalance) <= _tTotal.mul(2).div(100));
                }
            }
            uint256 contractTokenBalance = balanceOf(address(this));

            if(!inSwap && from != uniswapV2Pair && tradingOpen) {
                if(contractTokenBalance > 0) {
                    if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(5).div(100)) {
                        contractTokenBalance = balanceOf(uniswapV2Pair).mul(5).div(100);
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _noTaxMode){
            takeFee = false;
        }
        
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 {
        _FeeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

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

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    receive() external payable {}
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen = true;
        walletLimitDuration = block.timestamp + (60 minutes);
    }
    
    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function excludeFromFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee (address payable ad) external {
        require(_msgSender() == _FeeAddress);
        _isExcludedFromFee[ad] = false;
    }
    
    function setNoTaxMode(bool onoff) external {
        require(_msgSender() == _FeeAddress);
        _noTaxMode = onoff;
    }
    
    function setTeamFee(uint256 team) external {
        require(_msgSender() == _FeeAddress);
        _teamFee = team;
    }
        
    function setTaxFee(uint256 tax) external {
        require(_msgSender() == _FeeAddress);
        _taxFee = tax;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _bots[bots_[i]] = true;
            }
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        _bots[notbot] = false;
    }
    
    function isBot(address ad) public view returns (bool) {
        return _bots[ad];
    }
    
    function manualswap() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_cooldown","type":"bool"}],"name":"CooldownEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxBuyAmount","type":"uint256"}],"name":"MaxBuyAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_FeeAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000577565b6000196200002c9190620004fe565b6007556001600955600b600a55600954600b55600a54600c556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff021916908315150217905550348015620000a357600080fd5b5060405162004366380380620043668339818101604052810190620000c991906200048f565b6000620000db6200044760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060075460026000620002126200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002666200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cf6200044760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004379190620004e1565b60405180910390a3505062000627565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008151905062000489816200060d565b92915050565b60008060408385031215620004a357600080fd5b6000620004b38582860162000478565b9250506020620004c68582860162000478565b9150509250929050565b620004db816200056d565b82525050565b6000602082019050620004f86000830184620004d0565b92915050565b60006200050b826200056d565b915062000518836200056d565b9250828210156200052e576200052d620005af565b5b828203905092915050565b600062000546826200054d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000584826200056d565b915062000591836200056d565b925082620005a457620005a3620005de565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006188162000539565b81146200062457600080fd5b50565b613d2f80620006376000396000f3fe6080604052600436106101a05760003560e01c806370a08231116100ec578063c4081a4c1161008a578063cf0848f711610064578063cf0848f714610587578063db92dbb6146105b0578063dd62ed3e146105db578063e6ec64ec14610618576101a7565b8063c4081a4c1461051c578063c9567bf914610545578063cbf1ecdd1461055c576101a7565b806395d89b41116100c657806395d89b4114610474578063a9059cbb1461049f578063b515566a146104dc578063c3c8cd8014610505576101a7565b806370a08231146103f5578063715018a6146104325780638da5cb5b14610449576101a7565b8063313ce56711610159578063437823ec11610133578063437823ec146103635780634b740b161461038c5780635d098b38146103b55780636fc3eaec146103de576101a7565b8063313ce567146102d05780633bbac579146102fb5780634144d9e414610338576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063273123b71461027c57806327f3a72a146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610641565b6040516101ce9190613417565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612f33565b61067e565b60405161020b91906133fc565b60405180910390f35b34801561022057600080fd5b5061022961069c565b6040516102369190613599565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612ee4565b6106ad565b60405161027391906133fc565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612e2d565b610786565b005b3480156102b157600080fd5b506102ba610876565b6040516102c79190613599565b60405180910390f35b3480156102dc57600080fd5b506102e5610886565b6040516102f2919061360e565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612e2d565b61088f565b60405161032f91906133fc565b60405180910390f35b34801561034457600080fd5b5061034d6108e5565b60405161035a919061332e565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612e7f565b61090b565b005b34801561039857600080fd5b506103b360048036038101906103ae9190612fb0565b6109c7565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190612e7f565b610a45565b005b3480156103ea57600080fd5b506103f3610bbc565b005b34801561040157600080fd5b5061041c60048036038101906104179190612e2d565b610c2e565b6040516104299190613599565b60405180910390f35b34801561043e57600080fd5b50610447610c7f565b005b34801561045557600080fd5b5061045e610dd2565b60405161046b9190613313565b60405180910390f35b34801561048057600080fd5b50610489610dfb565b6040516104969190613417565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612f33565b610e38565b6040516104d391906133fc565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612f6f565b610e56565b005b34801561051157600080fd5b5061051a6110d8565b005b34801561052857600080fd5b50610543600480360381019061053e9190613002565b611152565b005b34801561055157600080fd5b5061055a6111bd565b005b34801561056857600080fd5b506105716116e8565b60405161057e919061332e565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612e7f565b61170e565b005b3480156105bc57600080fd5b506105c56117ca565b6040516105d29190613599565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190612ea8565b6117fc565b60405161060f9190613599565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613002565b611883565b005b60606040518060400160405280600881526020017f534c415645525345000000000000000000000000000000000000000000000000815250905090565b600061069261068b6118ee565b84846118f6565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106ba848484611ac1565b61077b846106c66118ee565b61077685604051806060016040528060288152602001613cd260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072c6118ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121139092919063ffffffff16565b6118f6565b600190509392505050565b61078e6118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610812906134d9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061088130610c2e565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661094c6118ee565b73ffffffffffffffffffffffffffffffffffffffff161461096c57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a086118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610a2857600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a866118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610aa657600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd6118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b6000479050610c2b81612177565b50565b6000610c78600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612272565b9050919050565b610c876118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b906134d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f534c415600000000000000000000000000000000000000000000000000000000815250905090565b6000610e4c610e456118ee565b8484611ac1565b6001905092915050565b610e5e6118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906134d9565b60405180910390fd5b60005b81518110156110d457601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f69577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156110235750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611002577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156110c157600160066000848481518110611067577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806110cc906138c1565b915050610eee565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111196118ee565b73ffffffffffffffffffffffffffffffffffffffff161461113957600080fd5b600061114430610c2e565b905061114f816122e0565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111936118ee565b73ffffffffffffffffffffffffffffffffffffffff16146111b357600080fd5b8060098190555050565b6111c56118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611249906134d9565b60405180910390fd5b601060149054906101000a900460ff16156112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990613559565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061133230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006118f6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561137857600080fd5b505afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190612e56565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561141257600080fd5b505afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190612e56565b6040518363ffffffff1660e01b8152600401611467929190613349565b602060405180830381600087803b15801561148157600080fd5b505af1158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190612e56565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061154230610c2e565b60008061154d610dd2565b426040518863ffffffff1660e01b815260040161156f9695949392919061339b565b6060604051808303818588803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c1919061302b565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611663929190613372565b602060405180830381600087803b15801561167d57600080fd5b505af1158015611691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b59190612fd9565b506001601060146101000a81548160ff021916908315150217905550610e10426116df91906136cf565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174f6118ee565b73ffffffffffffffffffffffffffffffffffffffff161461176f57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006117f7601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118c46118ee565b73ffffffffffffffffffffffffffffffffffffffff16146118e457600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d90613539565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd90613479565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ab49190613599565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890613519565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613439565b60405180910390fd5b60008111611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb906134f9565b60405180910390fd5b611bec610dd2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c5a5750611c2a610dd2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561203957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d035750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611db75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ec957601060149054906101000a900460ff16611e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5890613579565b60405180910390fd5b426011541115611ec8576000611e7683610c2e565b9050611ea86064611e9a6002683635c9adc5dea000006125da90919063ffffffff16565b61265590919063ffffffff16565b611ebb828461269f90919063ffffffff16565b1115611ec657600080fd5b505b5b6000611ed430610c2e565b9050601060169054906101000a900460ff16158015611f415750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f595750601060149054906101000a900460ff165b1561203757600081111561201d57611fb86064611faa6005611f9c601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b6125da90919063ffffffff16565b61265590919063ffffffff16565b8111156120135761201060646120026005611ff4601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b6125da90919063ffffffff16565b61265590919063ffffffff16565b90505b61201c816122e0565b5b600047905060008111156120355761203447612177565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120f75750601060159054906101000a900460ff165b1561210157600090505b61210d848484846126fd565b50505050565b600083831115829061215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121529190613417565b60405180910390fd5b506000838561216a91906137b0565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121c760028461265590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121f2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61224360028461265590919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561226e573d6000803e3d6000fd5b5050565b60006007548211156122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b090613459565b60405180910390fd5b60006122c361272a565b90506122d8818461265590919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561233e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561236c5781602001602082028036833780820191505090505b50905030816000815181106123aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561244c57600080fd5b505afa158015612460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124849190612e56565b816001815181106124be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061252530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118f6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125899594939291906135b4565b600060405180830381600087803b1580156125a357600080fd5b505af11580156125b7573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156125ed576000905061264f565b600082846125fb9190613756565b905082848261260a9190613725565b1461264a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612641906134b9565b60405180910390fd5b809150505b92915050565b600061269783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612755565b905092915050565b60008082846126ae91906136cf565b9050838110156126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea90613499565b60405180910390fd5b8091505092915050565b8061270b5761270a6127b8565b5b6127168484846127fb565b80612724576127236129c6565b5b50505050565b60008060006127376129da565b9150915061274e818361265590919063ffffffff16565b9250505090565b6000808311829061279c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127939190613417565b60405180910390fd5b50600083856127ab9190613725565b9050809150509392505050565b60006009541480156127cc57506000600a54145b156127d6576127f9565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061280d87612a3c565b95509550955095509550955061286b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294c81612aee565b6129568483612bab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129b39190613599565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612a10683635c9adc5dea0000060075461265590919063ffffffff16565b821015612a2f57600754683635c9adc5dea00000935093505050612a38565b81819350935050505b9091565b6000806000806000806000806000612a598a600954600a54612be5565b9250925092506000612a6961272a565b90506000806000612a7c8e878787612c7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612ae683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612113565b905092915050565b6000612af861272a565b90506000612b0f82846125da90919063ffffffff16565b9050612b6381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bc082600754612aa490919063ffffffff16565b600781905550612bdb8160085461269f90919063ffffffff16565b6008819055505050565b600080600080612c116064612c03888a6125da90919063ffffffff16565b61265590919063ffffffff16565b90506000612c3b6064612c2d888b6125da90919063ffffffff16565b61265590919063ffffffff16565b90506000612c6482612c56858c612aa490919063ffffffff16565b612aa490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c9485896125da90919063ffffffff16565b90506000612cab86896125da90919063ffffffff16565b90506000612cc287896125da90919063ffffffff16565b90506000612ceb82612cdd8587612aa490919063ffffffff16565b612aa490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612d17612d128461364e565b613629565b90508083825260208201905082856020860282011115612d3657600080fd5b60005b85811015612d665781612d4c8882612d70565b845260208401935060208301925050600181019050612d39565b5050509392505050565b600081359050612d7f81613c75565b92915050565b600081519050612d9481613c75565b92915050565b600081359050612da981613c8c565b92915050565b600082601f830112612dc057600080fd5b8135612dd0848260208601612d04565b91505092915050565b600081359050612de881613ca3565b92915050565b600081519050612dfd81613ca3565b92915050565b600081359050612e1281613cba565b92915050565b600081519050612e2781613cba565b92915050565b600060208284031215612e3f57600080fd5b6000612e4d84828501612d70565b91505092915050565b600060208284031215612e6857600080fd5b6000612e7684828501612d85565b91505092915050565b600060208284031215612e9157600080fd5b6000612e9f84828501612d9a565b91505092915050565b60008060408385031215612ebb57600080fd5b6000612ec985828601612d70565b9250506020612eda85828601612d70565b9150509250929050565b600080600060608486031215612ef957600080fd5b6000612f0786828701612d70565b9350506020612f1886828701612d70565b9250506040612f2986828701612e03565b9150509250925092565b60008060408385031215612f4657600080fd5b6000612f5485828601612d70565b9250506020612f6585828601612e03565b9150509250929050565b600060208284031215612f8157600080fd5b600082013567ffffffffffffffff811115612f9b57600080fd5b612fa784828501612daf565b91505092915050565b600060208284031215612fc257600080fd5b6000612fd084828501612dd9565b91505092915050565b600060208284031215612feb57600080fd5b6000612ff984828501612dee565b91505092915050565b60006020828403121561301457600080fd5b600061302284828501612e03565b91505092915050565b60008060006060848603121561304057600080fd5b600061304e86828701612e18565b935050602061305f86828701612e18565b925050604061307086828701612e18565b9150509250925092565b600061308683836130a1565b60208301905092915050565b61309b816137f6565b82525050565b6130aa816137e4565b82525050565b6130b9816137e4565b82525050565b60006130ca8261368a565b6130d481856136ad565b93506130df8361367a565b8060005b838110156131105781516130f7888261307a565b9750613102836136a0565b9250506001810190506130e3565b5085935050505092915050565b61312681613808565b82525050565b6131358161384b565b82525050565b600061314682613695565b61315081856136be565b935061316081856020860161385d565b61316981613997565b840191505092915050565b60006131816023836136be565b915061318c826139a8565b604082019050919050565b60006131a4602a836136be565b91506131af826139f7565b604082019050919050565b60006131c76022836136be565b91506131d282613a46565b604082019050919050565b60006131ea601b836136be565b91506131f582613a95565b602082019050919050565b600061320d6021836136be565b915061321882613abe565b604082019050919050565b60006132306020836136be565b915061323b82613b0d565b602082019050919050565b60006132536029836136be565b915061325e82613b36565b604082019050919050565b60006132766025836136be565b915061328182613b85565b604082019050919050565b60006132996024836136be565b91506132a482613bd4565b604082019050919050565b60006132bc6017836136be565b91506132c782613c23565b602082019050919050565b60006132df6018836136be565b91506132ea82613c4c565b602082019050919050565b6132fe81613834565b82525050565b61330d8161383e565b82525050565b600060208201905061332860008301846130b0565b92915050565b60006020820190506133436000830184613092565b92915050565b600060408201905061335e60008301856130b0565b61336b60208301846130b0565b9392505050565b600060408201905061338760008301856130b0565b61339460208301846132f5565b9392505050565b600060c0820190506133b060008301896130b0565b6133bd60208301886132f5565b6133ca604083018761312c565b6133d7606083018661312c565b6133e460808301856130b0565b6133f160a08301846132f5565b979650505050505050565b6000602082019050613411600083018461311d565b92915050565b60006020820190508181036000830152613431818461313b565b905092915050565b6000602082019050818103600083015261345281613174565b9050919050565b6000602082019050818103600083015261347281613197565b9050919050565b60006020820190508181036000830152613492816131ba565b9050919050565b600060208201905081810360008301526134b2816131dd565b9050919050565b600060208201905081810360008301526134d281613200565b9050919050565b600060208201905081810360008301526134f281613223565b9050919050565b6000602082019050818103600083015261351281613246565b9050919050565b6000602082019050818103600083015261353281613269565b9050919050565b600060208201905081810360008301526135528161328c565b9050919050565b60006020820190508181036000830152613572816132af565b9050919050565b60006020820190508181036000830152613592816132d2565b9050919050565b60006020820190506135ae60008301846132f5565b92915050565b600060a0820190506135c960008301886132f5565b6135d6602083018761312c565b81810360408301526135e881866130bf565b90506135f760608301856130b0565b61360460808301846132f5565b9695505050505050565b60006020820190506136236000830184613304565b92915050565b6000613633613644565b905061363f8282613890565b919050565b6000604051905090565b600067ffffffffffffffff82111561366957613668613968565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136da82613834565b91506136e583613834565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561371a5761371961390a565b5b828201905092915050565b600061373082613834565b915061373b83613834565b92508261374b5761374a613939565b5b828204905092915050565b600061376182613834565b915061376c83613834565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137a5576137a461390a565b5b828202905092915050565b60006137bb82613834565b91506137c683613834565b9250828210156137d9576137d861390a565b5b828203905092915050565b60006137ef82613814565b9050919050565b600061380182613814565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061385682613834565b9050919050565b60005b8381101561387b578082015181840152602081019050613860565b8381111561388a576000848401525b50505050565b61389982613997565b810181811067ffffffffffffffff821117156138b8576138b7613968565b5b80604052505050565b60006138cc82613834565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138ff576138fe61390a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613c7e816137e4565b8114613c8957600080fd5b50565b613c95816137f6565b8114613ca057600080fd5b50565b613cac81613808565b8114613cb757600080fd5b50565b613cc381613834565b8114613cce57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c69185c1cc6f1aff0c0a6726b676d89613754fbb6859b12029e21ed38e05d1264736f6c63430008040033000000000000000000000000e319b8002f458c0e69661df410c5c4655d68e4c1000000000000000000000000f773e30a60d00a153f99f0245c71b7deca9c2343

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806370a08231116100ec578063c4081a4c1161008a578063cf0848f711610064578063cf0848f714610587578063db92dbb6146105b0578063dd62ed3e146105db578063e6ec64ec14610618576101a7565b8063c4081a4c1461051c578063c9567bf914610545578063cbf1ecdd1461055c576101a7565b806395d89b41116100c657806395d89b4114610474578063a9059cbb1461049f578063b515566a146104dc578063c3c8cd8014610505576101a7565b806370a08231146103f5578063715018a6146104325780638da5cb5b14610449576101a7565b8063313ce56711610159578063437823ec11610133578063437823ec146103635780634b740b161461038c5780635d098b38146103b55780636fc3eaec146103de576101a7565b8063313ce567146102d05780633bbac579146102fb5780634144d9e414610338576101a7565b806306fdde03146101ac578063095ea7b3146101d757806318160ddd1461021457806323b872dd1461023f578063273123b71461027c57806327f3a72a146102a5576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610641565b6040516101ce9190613417565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612f33565b61067e565b60405161020b91906133fc565b60405180910390f35b34801561022057600080fd5b5061022961069c565b6040516102369190613599565b60405180910390f35b34801561024b57600080fd5b5061026660048036038101906102619190612ee4565b6106ad565b60405161027391906133fc565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e9190612e2d565b610786565b005b3480156102b157600080fd5b506102ba610876565b6040516102c79190613599565b60405180910390f35b3480156102dc57600080fd5b506102e5610886565b6040516102f2919061360e565b60405180910390f35b34801561030757600080fd5b50610322600480360381019061031d9190612e2d565b61088f565b60405161032f91906133fc565b60405180910390f35b34801561034457600080fd5b5061034d6108e5565b60405161035a919061332e565b60405180910390f35b34801561036f57600080fd5b5061038a60048036038101906103859190612e7f565b61090b565b005b34801561039857600080fd5b506103b360048036038101906103ae9190612fb0565b6109c7565b005b3480156103c157600080fd5b506103dc60048036038101906103d79190612e7f565b610a45565b005b3480156103ea57600080fd5b506103f3610bbc565b005b34801561040157600080fd5b5061041c60048036038101906104179190612e2d565b610c2e565b6040516104299190613599565b60405180910390f35b34801561043e57600080fd5b50610447610c7f565b005b34801561045557600080fd5b5061045e610dd2565b60405161046b9190613313565b60405180910390f35b34801561048057600080fd5b50610489610dfb565b6040516104969190613417565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612f33565b610e38565b6040516104d391906133fc565b60405180910390f35b3480156104e857600080fd5b5061050360048036038101906104fe9190612f6f565b610e56565b005b34801561051157600080fd5b5061051a6110d8565b005b34801561052857600080fd5b50610543600480360381019061053e9190613002565b611152565b005b34801561055157600080fd5b5061055a6111bd565b005b34801561056857600080fd5b506105716116e8565b60405161057e919061332e565b60405180910390f35b34801561059357600080fd5b506105ae60048036038101906105a99190612e7f565b61170e565b005b3480156105bc57600080fd5b506105c56117ca565b6040516105d29190613599565b60405180910390f35b3480156105e757600080fd5b5061060260048036038101906105fd9190612ea8565b6117fc565b60405161060f9190613599565b60405180910390f35b34801561062457600080fd5b5061063f600480360381019061063a9190613002565b611883565b005b60606040518060400160405280600881526020017f534c415645525345000000000000000000000000000000000000000000000000815250905090565b600061069261068b6118ee565b84846118f6565b6001905092915050565b6000683635c9adc5dea00000905090565b60006106ba848484611ac1565b61077b846106c66118ee565b61077685604051806060016040528060288152602001613cd260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061072c6118ee565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121139092919063ffffffff16565b6118f6565b600190509392505050565b61078e6118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610812906134d9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600061088130610c2e565b905090565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661094c6118ee565b73ffffffffffffffffffffffffffffffffffffffff161461096c57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a086118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610a2857600080fd5b80601060156101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a866118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610aa657600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd6118ee565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b6000479050610c2b81612177565b50565b6000610c78600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612272565b9050919050565b610c876118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b906134d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f534c415600000000000000000000000000000000000000000000000000000000815250905090565b6000610e4c610e456118ee565b8484611ac1565b6001905092915050565b610e5e6118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee2906134d9565b60405180910390fd5b60005b81518110156110d457601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f69577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156110235750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611002577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156110c157600160066000848481518110611067577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806110cc906138c1565b915050610eee565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111196118ee565b73ffffffffffffffffffffffffffffffffffffffff161461113957600080fd5b600061114430610c2e565b905061114f816122e0565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111936118ee565b73ffffffffffffffffffffffffffffffffffffffff16146111b357600080fd5b8060098190555050565b6111c56118ee565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611249906134d9565b60405180910390fd5b601060149054906101000a900460ff16156112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990613559565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061133230600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006118f6565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561137857600080fd5b505afa15801561138c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b09190612e56565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561141257600080fd5b505afa158015611426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144a9190612e56565b6040518363ffffffff1660e01b8152600401611467929190613349565b602060405180830381600087803b15801561148157600080fd5b505af1158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190612e56565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061154230610c2e565b60008061154d610dd2565b426040518863ffffffff1660e01b815260040161156f9695949392919061339b565b6060604051808303818588803b15801561158857600080fd5b505af115801561159c573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115c1919061302b565b505050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611663929190613372565b602060405180830381600087803b15801561167d57600080fd5b505af1158015611691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b59190612fd9565b506001601060146101000a81548160ff021916908315150217905550610e10426116df91906136cf565b60118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661174f6118ee565b73ffffffffffffffffffffffffffffffffffffffff161461176f57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006117f7601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118c46118ee565b73ffffffffffffffffffffffffffffffffffffffff16146118e457600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d90613539565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cd90613479565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ab49190613599565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890613519565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9890613439565b60405180910390fd5b60008111611be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdb906134f9565b60405180910390fd5b611bec610dd2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c5a5750611c2a610dd2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561203957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d035750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d0c57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611db75750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611e0d5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ec957601060149054906101000a900460ff16611e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5890613579565b60405180910390fd5b426011541115611ec8576000611e7683610c2e565b9050611ea86064611e9a6002683635c9adc5dea000006125da90919063ffffffff16565b61265590919063ffffffff16565b611ebb828461269f90919063ffffffff16565b1115611ec657600080fd5b505b5b6000611ed430610c2e565b9050601060169054906101000a900460ff16158015611f415750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f595750601060149054906101000a900460ff165b1561203757600081111561201d57611fb86064611faa6005611f9c601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b6125da90919063ffffffff16565b61265590919063ffffffff16565b8111156120135761201060646120026005611ff4601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c2e565b6125da90919063ffffffff16565b61265590919063ffffffff16565b90505b61201c816122e0565b5b600047905060008111156120355761203447612177565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120e05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120f75750601060159054906101000a900460ff165b1561210157600090505b61210d848484846126fd565b50505050565b600083831115829061215b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121529190613417565b60405180910390fd5b506000838561216a91906137b0565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6121c760028461265590919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121f2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61224360028461265590919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561226e573d6000803e3d6000fd5b5050565b60006007548211156122b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b090613459565b60405180910390fd5b60006122c361272a565b90506122d8818461265590919063ffffffff16565b915050919050565b6001601060166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561233e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561236c5781602001602082028036833780820191505090505b50905030816000815181106123aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561244c57600080fd5b505afa158015612460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124849190612e56565b816001815181106124be577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061252530600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118f6565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125899594939291906135b4565b600060405180830381600087803b1580156125a357600080fd5b505af11580156125b7573d6000803e3d6000fd5b50505050506000601060166101000a81548160ff02191690831515021790555050565b6000808314156125ed576000905061264f565b600082846125fb9190613756565b905082848261260a9190613725565b1461264a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612641906134b9565b60405180910390fd5b809150505b92915050565b600061269783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612755565b905092915050565b60008082846126ae91906136cf565b9050838110156126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea90613499565b60405180910390fd5b8091505092915050565b8061270b5761270a6127b8565b5b6127168484846127fb565b80612724576127236129c6565b5b50505050565b60008060006127376129da565b9150915061274e818361265590919063ffffffff16565b9250505090565b6000808311829061279c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127939190613417565b60405180910390fd5b50600083856127ab9190613725565b9050809150509392505050565b60006009541480156127cc57506000600a54145b156127d6576127f9565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b60008060008060008061280d87612a3c565b95509550955095509550955061286b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061294c81612aee565b6129568483612bab565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129b39190613599565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050612a10683635c9adc5dea0000060075461265590919063ffffffff16565b821015612a2f57600754683635c9adc5dea00000935093505050612a38565b81819350935050505b9091565b6000806000806000806000806000612a598a600954600a54612be5565b9250925092506000612a6961272a565b90506000806000612a7c8e878787612c7b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612ae683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612113565b905092915050565b6000612af861272a565b90506000612b0f82846125da90919063ffffffff16565b9050612b6381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461269f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612bc082600754612aa490919063ffffffff16565b600781905550612bdb8160085461269f90919063ffffffff16565b6008819055505050565b600080600080612c116064612c03888a6125da90919063ffffffff16565b61265590919063ffffffff16565b90506000612c3b6064612c2d888b6125da90919063ffffffff16565b61265590919063ffffffff16565b90506000612c6482612c56858c612aa490919063ffffffff16565b612aa490919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c9485896125da90919063ffffffff16565b90506000612cab86896125da90919063ffffffff16565b90506000612cc287896125da90919063ffffffff16565b90506000612ceb82612cdd8587612aa490919063ffffffff16565b612aa490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612d17612d128461364e565b613629565b90508083825260208201905082856020860282011115612d3657600080fd5b60005b85811015612d665781612d4c8882612d70565b845260208401935060208301925050600181019050612d39565b5050509392505050565b600081359050612d7f81613c75565b92915050565b600081519050612d9481613c75565b92915050565b600081359050612da981613c8c565b92915050565b600082601f830112612dc057600080fd5b8135612dd0848260208601612d04565b91505092915050565b600081359050612de881613ca3565b92915050565b600081519050612dfd81613ca3565b92915050565b600081359050612e1281613cba565b92915050565b600081519050612e2781613cba565b92915050565b600060208284031215612e3f57600080fd5b6000612e4d84828501612d70565b91505092915050565b600060208284031215612e6857600080fd5b6000612e7684828501612d85565b91505092915050565b600060208284031215612e9157600080fd5b6000612e9f84828501612d9a565b91505092915050565b60008060408385031215612ebb57600080fd5b6000612ec985828601612d70565b9250506020612eda85828601612d70565b9150509250929050565b600080600060608486031215612ef957600080fd5b6000612f0786828701612d70565b9350506020612f1886828701612d70565b9250506040612f2986828701612e03565b9150509250925092565b60008060408385031215612f4657600080fd5b6000612f5485828601612d70565b9250506020612f6585828601612e03565b9150509250929050565b600060208284031215612f8157600080fd5b600082013567ffffffffffffffff811115612f9b57600080fd5b612fa784828501612daf565b91505092915050565b600060208284031215612fc257600080fd5b6000612fd084828501612dd9565b91505092915050565b600060208284031215612feb57600080fd5b6000612ff984828501612dee565b91505092915050565b60006020828403121561301457600080fd5b600061302284828501612e03565b91505092915050565b60008060006060848603121561304057600080fd5b600061304e86828701612e18565b935050602061305f86828701612e18565b925050604061307086828701612e18565b9150509250925092565b600061308683836130a1565b60208301905092915050565b61309b816137f6565b82525050565b6130aa816137e4565b82525050565b6130b9816137e4565b82525050565b60006130ca8261368a565b6130d481856136ad565b93506130df8361367a565b8060005b838110156131105781516130f7888261307a565b9750613102836136a0565b9250506001810190506130e3565b5085935050505092915050565b61312681613808565b82525050565b6131358161384b565b82525050565b600061314682613695565b61315081856136be565b935061316081856020860161385d565b61316981613997565b840191505092915050565b60006131816023836136be565b915061318c826139a8565b604082019050919050565b60006131a4602a836136be565b91506131af826139f7565b604082019050919050565b60006131c76022836136be565b91506131d282613a46565b604082019050919050565b60006131ea601b836136be565b91506131f582613a95565b602082019050919050565b600061320d6021836136be565b915061321882613abe565b604082019050919050565b60006132306020836136be565b915061323b82613b0d565b602082019050919050565b60006132536029836136be565b915061325e82613b36565b604082019050919050565b60006132766025836136be565b915061328182613b85565b604082019050919050565b60006132996024836136be565b91506132a482613bd4565b604082019050919050565b60006132bc6017836136be565b91506132c782613c23565b602082019050919050565b60006132df6018836136be565b91506132ea82613c4c565b602082019050919050565b6132fe81613834565b82525050565b61330d8161383e565b82525050565b600060208201905061332860008301846130b0565b92915050565b60006020820190506133436000830184613092565b92915050565b600060408201905061335e60008301856130b0565b61336b60208301846130b0565b9392505050565b600060408201905061338760008301856130b0565b61339460208301846132f5565b9392505050565b600060c0820190506133b060008301896130b0565b6133bd60208301886132f5565b6133ca604083018761312c565b6133d7606083018661312c565b6133e460808301856130b0565b6133f160a08301846132f5565b979650505050505050565b6000602082019050613411600083018461311d565b92915050565b60006020820190508181036000830152613431818461313b565b905092915050565b6000602082019050818103600083015261345281613174565b9050919050565b6000602082019050818103600083015261347281613197565b9050919050565b60006020820190508181036000830152613492816131ba565b9050919050565b600060208201905081810360008301526134b2816131dd565b9050919050565b600060208201905081810360008301526134d281613200565b9050919050565b600060208201905081810360008301526134f281613223565b9050919050565b6000602082019050818103600083015261351281613246565b9050919050565b6000602082019050818103600083015261353281613269565b9050919050565b600060208201905081810360008301526135528161328c565b9050919050565b60006020820190508181036000830152613572816132af565b9050919050565b60006020820190508181036000830152613592816132d2565b9050919050565b60006020820190506135ae60008301846132f5565b92915050565b600060a0820190506135c960008301886132f5565b6135d6602083018761312c565b81810360408301526135e881866130bf565b90506135f760608301856130b0565b61360460808301846132f5565b9695505050505050565b60006020820190506136236000830184613304565b92915050565b6000613633613644565b905061363f8282613890565b919050565b6000604051905090565b600067ffffffffffffffff82111561366957613668613968565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006136da82613834565b91506136e583613834565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561371a5761371961390a565b5b828201905092915050565b600061373082613834565b915061373b83613834565b92508261374b5761374a613939565b5b828204905092915050565b600061376182613834565b915061376c83613834565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156137a5576137a461390a565b5b828202905092915050565b60006137bb82613834565b91506137c683613834565b9250828210156137d9576137d861390a565b5b828203905092915050565b60006137ef82613814565b9050919050565b600061380182613814565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061385682613834565b9050919050565b60005b8381101561387b578082015181840152602081019050613860565b8381111561388a576000848401525b50505050565b61389982613997565b810181811067ffffffffffffffff821117156138b8576138b7613968565b5b80604052505050565b60006138cc82613834565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138ff576138fe61390a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613c7e816137e4565b8114613c8957600080fd5b50565b613c95816137f6565b8114613ca057600080fd5b50565b613cac81613808565b8114613cb757600080fd5b50565b613cc381613834565b8114613cce57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c69185c1cc6f1aff0c0a6726b676d89613754fbb6859b12029e21ed38e05d1264736f6c63430008040033

Deployed Bytecode Sourcemap

3858:12639:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5949:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6801:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6226:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6970:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15682:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16285:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6135:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15783:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14668:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14989:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14346:314;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16087:190;;;;;;;;;;;;;:::i;:::-;;6329:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2937:148;;;;;;;;;;;;;:::i;:::-;;2723:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6040:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6475:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15400:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15884:191;;;;;;;;;;;;;:::i;:::-;;15268:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13562:772;;;;;;;;;;;;;:::i;:::-;;4752:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14829:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16393:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6650:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15128:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5949:83;5986:13;6019:5;;;;;;;;;;;;;;;;;6012:12;;5949:83;:::o;6801:161::-;6876:4;6893:39;6902:12;:10;:12::i;:::-;6916:7;6925:6;6893:8;:39::i;:::-;6950:4;6943:11;;6801:161;;;;:::o;6226:95::-;6279:7;4311:12;6299:14;;6226:95;:::o;6970:313::-;7068:4;7085:36;7095:6;7103:9;7114:6;7085:9;:36::i;:::-;7132:121;7141:6;7149:12;:10;:12::i;:::-;7163:89;7201:6;7163:89;;;;;;;;;;;;;;;;;:11;:19;7175:6;7163:19;;;;;;;;;;;;;;;:33;7183:12;:10;:12::i;:::-;7163:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7132:8;:121::i;:::-;7271:4;7264:11;;6970:313;;;;;:::o;15682:89::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15758:5:::1;15742;:13;15748:6;15742:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;15682:89:::0;:::o;16285:100::-;16329:4;16353:24;16371:4;16353:9;:24::i;:::-;16346:31;;16285:100;:::o;6135:83::-;6176:5;4576:1;6194:16;;6135:83;:::o;15783:89::-;15831:4;15855:5;:9;15861:2;15855:9;;;;;;;;;;;;;;;;;;;;;;;;;15848:16;;15783:89;;;:::o;4793:46::-;;;;;;;;;;;;;:::o;14668:149::-;14757:11;;;;;;;;;;;14741:27;;:12;:10;:12::i;:::-;:27;;;14733:36;;;;;;14805:4;14780:18;:22;14799:2;14780:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14668:149;:::o;14989:127::-;15067:11;;;;;;;;;;;15051:27;;:12;:10;:12::i;:::-;:27;;;15043:36;;;;;;15103:5;15090:10;;:18;;;;;;;;;;;;;;;;;;14989:127;:::o;14346:314::-;14459:11;;;;;;;;;;;14443:27;;:12;:10;:12::i;:::-;:27;;;14435:36;;;;;;14528:5;14482:18;:43;14501:23;;;;;;;;;;;14482:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;14570:22;14544:23;;:48;;;;;;;;;;;;;;;;;;14648:4;14603:18;:42;14622:22;14603:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;14346:314;:::o;16087:190::-;16153:11;;;;;;;;;;;16137:27;;:12;:10;:12::i;:::-;:27;;;16129:36;;;;;;16176:26;16205:21;16176:50;;16237:32;16250:18;16237:12;:32::i;:::-;16087:190;:::o;6329:138::-;6395:7;6422:37;6442:7;:16;6450:7;6442:16;;;;;;;;;;;;;;;;6422:19;:37::i;:::-;6415:44;;6329:138;;;:::o;2937:148::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3044:1:::1;3007:40;;3028:6;::::0;::::1;;;;;;;;3007:40;;;;;;;;;;;;3075:1;3058:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2937:148::o:0;2723:79::-;2761:7;2788:6;;;;;;;;;;;2781:13;;2723:79;:::o;6040:87::-;6079:13;6112:7;;;;;;;;;;;;;;;;;6105:14;;6040:87;:::o;6475:167::-;6553:4;6570:42;6580:12;:10;:12::i;:::-;6594:9;6605:6;6570:9;:42::i;:::-;6630:4;6623:11;;6475:167;;;;:::o;15400:270::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15474:6:::1;15469:194;15490:5;:12;15486:1;:16;15469:194;;;15540:13;;;;;;;;;;;15528:25;;:5;15534:1;15528:8;;;;;;;;;;;;;;;;;;;;;;:25;;;;:65;;;;;15577:15;;;;;;;;;;;15557:36;;:5;15563:1;15557:8;;;;;;;;;;;;;;;;;;;;;;:36;;;;15528:65;15524:128;;;15632:4;15614:5;:15;15620:5;15626:1;15620:8;;;;;;;;;;;;;;;;;;;;;;15614:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15524:128;15504:3;;;;;:::i;:::-;;;;15469:194;;;;15400:270:::0;:::o;15884:191::-;15950:11;;;;;;;;;;;15934:27;;:12;:10;:12::i;:::-;:27;;;15926:36;;;;;;15973:23;15999:24;16017:4;15999:9;:24::i;:::-;15973:50;;16034:33;16051:15;16034:16;:33::i;:::-;15884:191;:::o;15268:120::-;15344:11;;;;;;;;;;;15328:27;;:12;:10;:12::i;:::-;:27;;;15320:36;;;;;;15377:3;15367:7;:13;;;;15268:120;:::o;13562:772::-;2860:12;:10;:12::i;:::-;2850:22;;:6;;;;;;;;;;:22;;;2842:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13626:11:::1;;;;;;;;;;;13625:12;13617:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;13675:35;13732:42;13675:100;;13804:16;13786:15;;:34;;;;;;;;;;;;;;;;;;13831:58;13848:4;13863:15;;;;;;;;;;;4311:12;13831:8;:58::i;:::-;13934:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13916:56;;;13981:4;13988:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13916:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13900:13;;:112;;;;;;;;;;;;;;;;;;14023:15;;;;;;;;;;;:31;;;14062:21;14093:4;14099:24;14117:4;14099:9;:24::i;:::-;14124:1;14126::::0;14128:7:::1;:5;:7::i;:::-;14136:15;14023:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14170:13;;;;;;;;;;;14163:29;;;14201:15;;;;;;;;;;;14219:14;14163:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14259:4;14245:11;;:18;;;;;;;;;;;;;;;;;;14315:10;14296:15;:30;;;;:::i;:::-;14274:19;:52;;;;2920:1;13562:772::o:0;4752:34::-;;;;;;;;;;;;;:::o;14829:148::-;14916:11;;;;;;;;;;;14900:27;;:12;:10;:12::i;:::-;:27;;;14892:36;;;;;;14964:5;14939:18;:22;14958:2;14939:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14829:148;:::o;16393:101::-;16438:4;16462:24;16472:13;;;;;;;;;;;16462:9;:24::i;:::-;16455:31;;16393:101;:::o;6650:143::-;6731:7;6758:11;:18;6770:5;6758:18;;;;;;;;;;;;;;;:27;6777:7;6758:27;;;;;;;;;;;;;;;;6751:34;;6650:143;;;;:::o;15128:124::-;15206:11;;;;;;;;;;;15190:27;;:12;:10;:12::i;:::-;:27;;;15182:36;;;;;;15240:4;15229:8;:15;;;;15128:124;:::o;132:98::-;185:7;212:10;205:17;;132:98;:::o;7898:335::-;8008:1;7991:19;;:5;:19;;;;7983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8089:1;8070:21;;:7;:21;;;;8062:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8171:6;8141:11;:18;8153:5;8141:18;;;;;;;;;;;;;;;:27;8160:7;8141:27;;;;;;;;;;;;;;;:36;;;;8209:7;8193:32;;8202:5;8193:32;;;8218:6;8193:32;;;;;;:::i;:::-;;;;;;;;7898:335;;;:::o;8245:1767::-;8349:1;8333:18;;:4;:18;;;;8325:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8426:1;8412:16;;:2;:16;;;;8404:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8496:1;8487:6;:10;8479:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8567:7;:5;:7::i;:::-;8559:15;;:4;:15;;;;:32;;;;;8584:7;:5;:7::i;:::-;8578:13;;:2;:13;;;;8559:32;8556:1238;;;8631:5;:11;8637:4;8631:11;;;;;;;;;;;;;;;;;;;;;;;;;8630:12;:26;;;;;8647:5;:9;8653:2;8647:9;;;;;;;;;;;;;;;;;;;;;;;;;8646:10;8630:26;8622:35;;;;;;8697:13;;;;;;;;;;;8689:21;;:4;:21;;;:55;;;;;8728:15;;;;;;;;;;;8714:30;;:2;:30;;;;8689:55;:82;;;;;8749:18;:22;8768:2;8749:22;;;;;;;;;;;;;;;;;;;;;;;;;8748:23;8689:82;8686:419;;;8800:11;;;;;;;;;;;8792:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8903:15;8881:19;;:37;8877:213;;;8943:18;8964:22;8982:2;8964:9;:22::i;:::-;8943:43;;9046:23;9065:3;9046:14;9058:1;4311:12;9046:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;9017:25;9028:13;9017:6;:10;;:25;;;;:::i;:::-;:52;;9009:61;;;;;;8877:213;;8686:419;9119:28;9150:24;9168:4;9150:9;:24::i;:::-;9119:55;;9195:6;;;;;;;;;;;9194:7;:32;;;;;9213:13;;;;;;;;;;;9205:21;;:4;:21;;;;9194:32;:47;;;;;9230:11;;;;;;;;;;;9194:47;9191:592;;;9288:1;9265:20;:24;9262:314;;;9340:40;9376:3;9340:31;9369:1;9340:24;9350:13;;;;;;;;;;;9340:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9317:20;:63;9314:182;;;9432:40;9468:3;9432:31;9461:1;9432:24;9442:13;;;;;;;;;;;9432:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9409:63;;9314:182;9518:38;9535:20;9518:16;:38::i;:::-;9262:314;9594:26;9623:21;9594:50;;9687:1;9666:18;:22;9663:105;;;9713:35;9726:21;9713:12;:35::i;:::-;9663:105;9191:592;;8556:1238;;9804:12;9819:4;9804:19;;9839:18;:24;9858:4;9839:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9867:18;:22;9886:2;9867:22;;;;;;;;;;;;;;;;;;;;;;;;;9839:50;:64;;;;9893:10;;;;;;;;;;;9839:64;9836:110;;;9929:5;9919:15;;9836:110;9966:38;9981:4;9986:2;9989:6;9996:7;9966:14;:38::i;:::-;8245:1767;;;;:::o;1269:190::-;1355:7;1388:1;1383;:6;;1391:12;1375:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1415:9;1431:1;1427;:5;;;;:::i;:::-;1415:17;;1450:1;1443:8;;;1269:190;;;;;:::o;10519:158::-;10576:11;;;;;;;;;;;:20;;:35;10597:13;10608:1;10597:6;:10;;:13;;;;:::i;:::-;10576:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10622:23;;;;;;;;;;;:32;;:47;10655:13;10666:1;10655:6;:10;;:13;;;;:::i;:::-;10622:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10519:158;:::o;7291:254::-;7358:7;7397;;7386;:18;;7378:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7462:19;7485:10;:8;:10::i;:::-;7462:33;;7513:24;7525:11;7513:7;:11;;:24;;;;:::i;:::-;7506:31;;;7291:254;;;:::o;10020:483::-;5394:4;5385:6;;:13;;;;;;;;;;;;;;;;;;10098:21:::1;10136:1;10122:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10098:40;;10167:4;10149;10154:1;10149:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10193:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10183:4;10188:1;10183:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10226:62;10243:4;10258:15;;;;;;;;;;;10276:11;10226:8;:62::i;:::-;10299:15;;;;;;;;;;;:66;;;10380:11;10406:1;10422:4;10449;10469:15;10299:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5409:1;5430:5:::0;5421:6;;:14;;;;;;;;;;;;;;;;;;10020:483;:::o;1467:245::-;1525:7;1553:1;1548;:6;1545:46;;;1578:1;1571:8;;;;1545:46;1601:9;1617:1;1613;:5;;;;:::i;:::-;1601:17;;1646:1;1641;1637;:5;;;;:::i;:::-;:10;1629:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1703:1;1696:8;;;1467:245;;;;;:::o;1720:132::-;1778:7;1805:39;1809:1;1812;1805:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1798:46;;1720:132;;;;:::o;938:179::-;996:7;1016:9;1032:1;1028;:5;;;;:::i;:::-;1016:17;;1057:1;1052;:6;;1044:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1108:1;1101:8;;;938:179;;;;:::o;10689:263::-;10801:7;10797:40;;10823:14;:12;:14::i;:::-;10797:40;10848:44;10866:6;10874:9;10885:6;10848:17;:44::i;:::-;10907:7;10903:41;;10929:15;:13;:15::i;:::-;10903:41;10689:263;;;;:::o;12293:163::-;12334:7;12355:15;12372;12391:19;:17;:19::i;:::-;12354:56;;;;12428:20;12440:7;12428;:11;;:20;;;;:::i;:::-;12421:27;;;;12293:163;:::o;1860:189::-;1946:7;1978:1;1974;:5;1981:12;1966:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2005:9;2021:1;2017;:5;;;;:::i;:::-;2005:17;;2040:1;2033:8;;;1860:189;;;;;:::o;7553:210::-;7610:1;7599:7;;:12;:29;;;;;7627:1;7615:8;;:13;7599:29;7596:41;;;7630:7;;7596:41;7665:7;;7647:15;:25;;;;7702:8;;7683:16;:27;;;;7731:1;7721:7;:11;;;;7754:1;7743:8;:12;;;;7553:210;:::o;10960:490::-;11059:15;11076:23;11101:12;11115:23;11140:12;11154:13;11171:19;11182:7;11171:10;:19::i;:::-;11058:132;;;;;;;;;;;;11219:28;11239:7;11219;:15;11227:6;11219:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11201:7;:15;11209:6;11201:15;;;;;;;;;;;;;;;:46;;;;11279:39;11302:15;11279:7;:18;11287:9;11279:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11258:7;:18;11266:9;11258:18;;;;;;;;;;;;;;;:60;;;;11332:16;11342:5;11332:9;:16::i;:::-;11359:23;11371:4;11377;11359:11;:23::i;:::-;11415:9;11398:44;;11407:6;11398:44;;;11426:15;11398:44;;;;;;:::i;:::-;;;;;;;;10960:490;;;;;;;;;:::o;7775:115::-;7829:15;;7819:7;:25;;;;7866:16;;7855:8;:27;;;;7775:115::o;12464:255::-;12514:7;12523;12543:15;12561:7;;12543:25;;12579:15;4311:12;12579:25;;12628:20;4311:12;12628:7;;:11;;:20;;;;:::i;:::-;12618:7;:30;12615:60;;;12658:7;;4311:12;12650:25;;;;;;;;12615:60;12694:7;12703;12686:25;;;;;;12464:255;;;:::o;11458:468::-;11517:7;11526;11535;11544;11553;11562;11583:23;11608:12;11622:13;11639:39;11651:7;11660;;11669:8;;11639:11;:39::i;:::-;11582:96;;;;;;11689:19;11712:10;:8;:10::i;:::-;11689:33;;11734:15;11751:23;11776:12;11792:46;11804:7;11813:4;11819:5;11826:11;11792;:46::i;:::-;11733:105;;;;;;11857:7;11866:15;11883:4;11889:15;11906:4;11912:5;11849:69;;;;;;;;;;;;;;;;;;;11458:468;;;;;;;:::o;1125:136::-;1183:7;1210:43;1214:1;1217;1210:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1203:50;;1125:136;;;;:::o;13144:214::-;13197:19;13220:10;:8;:10::i;:::-;13197:33;;13241:13;13257:22;13267:11;13257:5;:9;;:22;;;;:::i;:::-;13241:38;;13317:33;13344:5;13317:7;:22;13333:4;13317:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13292:7;:22;13308:4;13292:22;;;;;;;;;;;;;;;:58;;;;13144:214;;;:::o;13366:147::-;13444:17;13456:4;13444:7;;:11;;:17;;;;:::i;:::-;13434:7;:27;;;;13485:20;13500:4;13485:10;;:14;;:20;;;;:::i;:::-;13472:10;:33;;;;13366:147;;:::o;11934:351::-;12027:7;12036;12045;12065:12;12080:28;12104:3;12080:19;12092:6;12080:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12065:43;;12119:13;12135:29;12160:3;12135:20;12147:7;12135;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12119:45;;12175:23;12201:28;12223:5;12201:17;12213:4;12201:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12175:54;;12248:15;12265:4;12271:5;12240:37;;;;;;;;;11934:351;;;;;;;:::o;12727:409::-;12837:7;12846;12855;12875:15;12893:24;12905:11;12893:7;:11;;:24;;;;:::i;:::-;12875:42;;12928:12;12943:21;12952:11;12943:4;:8;;:21;;;;:::i;:::-;12928:36;;12975:13;12991:22;13001:11;12991:5;:9;;:22;;;;:::i;:::-;12975:38;;13024:23;13050:28;13072:5;13050:17;13062:4;13050:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13024:54;;13097:7;13106:15;13123:4;13089:39;;;;;;;;;;12727:409;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:596::-;5581:6;5589;5597;5646:2;5634:9;5625:7;5621:23;5617:32;5614:2;;;5662:1;5659;5652:12;5614:2;5705:1;5730:64;5786:7;5777:6;5766:9;5762:22;5730:64;:::i;:::-;5720:74;;5676:128;5843:2;5869:64;5925:7;5916:6;5905:9;5901:22;5869:64;:::i;:::-;5859:74;;5814:129;5982:2;6008:64;6064:7;6055:6;6044:9;6040:22;6008:64;:::i;:::-;5998:74;;5953:129;5604:485;;;;;:::o;6095:179::-;6164:10;6185:46;6227:3;6219:6;6185:46;:::i;:::-;6263:4;6258:3;6254:14;6240:28;;6175:99;;;;:::o;6280:142::-;6383:32;6409:5;6383:32;:::i;:::-;6378:3;6371:45;6361:61;;:::o;6428:108::-;6505:24;6523:5;6505:24;:::i;:::-;6500:3;6493:37;6483:53;;:::o;6542:118::-;6629:24;6647:5;6629:24;:::i;:::-;6624:3;6617:37;6607:53;;:::o;6696:732::-;6815:3;6844:54;6892:5;6844:54;:::i;:::-;6914:86;6993:6;6988:3;6914:86;:::i;:::-;6907:93;;7024:56;7074:5;7024:56;:::i;:::-;7103:7;7134:1;7119:284;7144:6;7141:1;7138:13;7119:284;;;7220:6;7214:13;7247:63;7306:3;7291:13;7247:63;:::i;:::-;7240:70;;7333:60;7386:6;7333:60;:::i;:::-;7323:70;;7179:224;7166:1;7163;7159:9;7154:14;;7119:284;;;7123:14;7419:3;7412:10;;6820:608;;;;;;;:::o;7434:109::-;7515:21;7530:5;7515:21;:::i;:::-;7510:3;7503:34;7493:50;;:::o;7549:147::-;7644:45;7683:5;7644:45;:::i;:::-;7639:3;7632:58;7622:74;;:::o;7702:364::-;7790:3;7818:39;7851:5;7818:39;:::i;:::-;7873:71;7937:6;7932:3;7873:71;:::i;:::-;7866:78;;7953:52;7998:6;7993:3;7986:4;7979:5;7975:16;7953:52;:::i;:::-;8030:29;8052:6;8030:29;:::i;:::-;8025:3;8021:39;8014:46;;7794:272;;;;;:::o;8072:366::-;8214:3;8235:67;8299:2;8294:3;8235:67;:::i;:::-;8228:74;;8311:93;8400:3;8311:93;:::i;:::-;8429:2;8424:3;8420:12;8413:19;;8218:220;;;:::o;8444:366::-;8586:3;8607:67;8671:2;8666:3;8607:67;:::i;:::-;8600:74;;8683:93;8772:3;8683:93;:::i;:::-;8801:2;8796:3;8792:12;8785:19;;8590:220;;;:::o;8816:366::-;8958:3;8979:67;9043:2;9038:3;8979:67;:::i;:::-;8972:74;;9055:93;9144:3;9055:93;:::i;:::-;9173:2;9168:3;9164:12;9157:19;;8962:220;;;:::o;9188:366::-;9330:3;9351:67;9415:2;9410:3;9351:67;:::i;:::-;9344:74;;9427:93;9516:3;9427:93;:::i;:::-;9545:2;9540:3;9536:12;9529:19;;9334:220;;;:::o;9560:366::-;9702:3;9723:67;9787:2;9782:3;9723:67;:::i;:::-;9716:74;;9799:93;9888:3;9799:93;:::i;:::-;9917:2;9912:3;9908:12;9901:19;;9706:220;;;:::o;9932:366::-;10074:3;10095:67;10159:2;10154:3;10095:67;:::i;:::-;10088:74;;10171:93;10260:3;10171:93;:::i;:::-;10289:2;10284:3;10280:12;10273:19;;10078:220;;;:::o;10304:366::-;10446:3;10467:67;10531:2;10526:3;10467:67;:::i;:::-;10460:74;;10543:93;10632:3;10543:93;:::i;:::-;10661:2;10656:3;10652:12;10645:19;;10450:220;;;:::o;10676:366::-;10818:3;10839:67;10903:2;10898:3;10839:67;:::i;:::-;10832:74;;10915:93;11004:3;10915:93;:::i;:::-;11033:2;11028:3;11024:12;11017:19;;10822:220;;;:::o;11048:366::-;11190:3;11211:67;11275:2;11270:3;11211:67;:::i;:::-;11204:74;;11287:93;11376:3;11287:93;:::i;:::-;11405:2;11400:3;11396:12;11389:19;;11194:220;;;:::o;11420:366::-;11562:3;11583:67;11647:2;11642:3;11583:67;:::i;:::-;11576:74;;11659:93;11748:3;11659:93;:::i;:::-;11777:2;11772:3;11768:12;11761:19;;11566:220;;;:::o;11792:366::-;11934:3;11955:67;12019:2;12014:3;11955:67;:::i;:::-;11948:74;;12031:93;12120:3;12031:93;:::i;:::-;12149:2;12144:3;12140:12;12133:19;;11938:220;;;:::o;12164:118::-;12251:24;12269:5;12251:24;:::i;:::-;12246:3;12239:37;12229:53;;:::o;12288:112::-;12371:22;12387:5;12371:22;:::i;:::-;12366:3;12359:35;12349:51;;:::o;12406:222::-;12499:4;12537:2;12526:9;12522:18;12514:26;;12550:71;12618:1;12607:9;12603:17;12594:6;12550:71;:::i;:::-;12504:124;;;;:::o;12634:254::-;12743:4;12781:2;12770:9;12766:18;12758:26;;12794:87;12878:1;12867:9;12863:17;12854:6;12794:87;:::i;:::-;12748:140;;;;:::o;12894:332::-;13015:4;13053:2;13042:9;13038:18;13030:26;;13066:71;13134:1;13123:9;13119:17;13110:6;13066:71;:::i;:::-;13147:72;13215:2;13204:9;13200:18;13191:6;13147:72;:::i;:::-;13020:206;;;;;:::o;13232:332::-;13353:4;13391:2;13380:9;13376:18;13368:26;;13404:71;13472:1;13461:9;13457:17;13448:6;13404:71;:::i;:::-;13485:72;13553:2;13542:9;13538:18;13529:6;13485:72;:::i;:::-;13358:206;;;;;:::o;13570:807::-;13819:4;13857:3;13846:9;13842:19;13834:27;;13871:71;13939:1;13928:9;13924:17;13915:6;13871:71;:::i;:::-;13952:72;14020:2;14009:9;14005:18;13996:6;13952:72;:::i;:::-;14034:80;14110:2;14099:9;14095:18;14086:6;14034:80;:::i;:::-;14124;14200:2;14189:9;14185:18;14176:6;14124:80;:::i;:::-;14214:73;14282:3;14271:9;14267:19;14258:6;14214:73;:::i;:::-;14297;14365:3;14354:9;14350:19;14341:6;14297:73;:::i;:::-;13824:553;;;;;;;;;:::o;14383:210::-;14470:4;14508:2;14497:9;14493:18;14485:26;;14521:65;14583:1;14572:9;14568:17;14559:6;14521:65;:::i;:::-;14475:118;;;;:::o;14599:313::-;14712:4;14750:2;14739:9;14735:18;14727:26;;14799:9;14793:4;14789:20;14785:1;14774:9;14770:17;14763:47;14827:78;14900:4;14891:6;14827:78;:::i;:::-;14819:86;;14717:195;;;;:::o;14918:419::-;15084:4;15122:2;15111:9;15107:18;15099:26;;15171:9;15165:4;15161:20;15157:1;15146:9;15142:17;15135:47;15199:131;15325:4;15199:131;:::i;:::-;15191:139;;15089:248;;;:::o;15343:419::-;15509:4;15547:2;15536:9;15532:18;15524:26;;15596:9;15590:4;15586:20;15582:1;15571:9;15567:17;15560:47;15624:131;15750:4;15624:131;:::i;:::-;15616:139;;15514:248;;;:::o;15768:419::-;15934:4;15972:2;15961:9;15957:18;15949:26;;16021:9;16015:4;16011:20;16007:1;15996:9;15992:17;15985:47;16049:131;16175:4;16049:131;:::i;:::-;16041:139;;15939:248;;;:::o;16193:419::-;16359:4;16397:2;16386:9;16382:18;16374:26;;16446:9;16440:4;16436:20;16432:1;16421:9;16417:17;16410:47;16474:131;16600:4;16474:131;:::i;:::-;16466:139;;16364:248;;;:::o;16618:419::-;16784:4;16822:2;16811:9;16807:18;16799:26;;16871:9;16865:4;16861:20;16857:1;16846:9;16842:17;16835:47;16899:131;17025:4;16899:131;:::i;:::-;16891:139;;16789:248;;;:::o;17043:419::-;17209:4;17247:2;17236:9;17232:18;17224:26;;17296:9;17290:4;17286:20;17282:1;17271:9;17267:17;17260:47;17324:131;17450:4;17324:131;:::i;:::-;17316:139;;17214:248;;;:::o;17468:419::-;17634:4;17672:2;17661:9;17657:18;17649:26;;17721:9;17715:4;17711:20;17707:1;17696:9;17692:17;17685:47;17749:131;17875:4;17749:131;:::i;:::-;17741:139;;17639:248;;;:::o;17893:419::-;18059:4;18097:2;18086:9;18082:18;18074:26;;18146:9;18140:4;18136:20;18132:1;18121:9;18117:17;18110:47;18174:131;18300:4;18174:131;:::i;:::-;18166:139;;18064:248;;;:::o;18318:419::-;18484:4;18522:2;18511:9;18507:18;18499:26;;18571:9;18565:4;18561:20;18557:1;18546:9;18542:17;18535:47;18599:131;18725:4;18599:131;:::i;:::-;18591:139;;18489:248;;;:::o;18743:419::-;18909:4;18947:2;18936:9;18932:18;18924:26;;18996:9;18990:4;18986:20;18982:1;18971:9;18967:17;18960:47;19024:131;19150:4;19024:131;:::i;:::-;19016:139;;18914:248;;;:::o;19168:419::-;19334:4;19372:2;19361:9;19357:18;19349:26;;19421:9;19415:4;19411:20;19407:1;19396:9;19392:17;19385:47;19449:131;19575:4;19449:131;:::i;:::-;19441:139;;19339:248;;;:::o;19593:222::-;19686:4;19724:2;19713:9;19709:18;19701:26;;19737:71;19805:1;19794:9;19790:17;19781:6;19737:71;:::i;:::-;19691:124;;;;:::o;19821:831::-;20084:4;20122:3;20111:9;20107:19;20099:27;;20136:71;20204:1;20193:9;20189:17;20180:6;20136:71;:::i;:::-;20217:80;20293:2;20282:9;20278:18;20269:6;20217:80;:::i;:::-;20344:9;20338:4;20334:20;20329:2;20318:9;20314:18;20307:48;20372:108;20475:4;20466:6;20372:108;:::i;:::-;20364:116;;20490:72;20558:2;20547:9;20543:18;20534:6;20490:72;:::i;:::-;20572:73;20640:3;20629:9;20625:19;20616:6;20572:73;:::i;:::-;20089:563;;;;;;;;:::o;20658:214::-;20747:4;20785:2;20774:9;20770:18;20762:26;;20798:67;20862:1;20851:9;20847:17;20838:6;20798:67;:::i;:::-;20752:120;;;;:::o;20878:129::-;20912:6;20939:20;;:::i;:::-;20929:30;;20968:33;20996:4;20988:6;20968:33;:::i;:::-;20919:88;;;:::o;21013:75::-;21046:6;21079:2;21073:9;21063:19;;21053:35;:::o;21094:311::-;21171:4;21261:18;21253:6;21250:30;21247:2;;;21283:18;;:::i;:::-;21247:2;21333:4;21325:6;21321:17;21313:25;;21393:4;21387;21383:15;21375:23;;21176:229;;;:::o;21411:132::-;21478:4;21501:3;21493:11;;21531:4;21526:3;21522:14;21514:22;;21483:60;;;:::o;21549:114::-;21616:6;21650:5;21644:12;21634:22;;21623:40;;;:::o;21669:99::-;21721:6;21755:5;21749:12;21739:22;;21728:40;;;:::o;21774:113::-;21844:4;21876;21871:3;21867:14;21859:22;;21849:38;;;:::o;21893:184::-;21992:11;22026:6;22021:3;22014:19;22066:4;22061:3;22057:14;22042:29;;22004:73;;;;:::o;22083:169::-;22167:11;22201:6;22196:3;22189:19;22241:4;22236:3;22232:14;22217:29;;22179:73;;;;:::o;22258:305::-;22298:3;22317:20;22335:1;22317:20;:::i;:::-;22312:25;;22351:20;22369:1;22351:20;:::i;:::-;22346:25;;22505:1;22437:66;22433:74;22430:1;22427:81;22424:2;;;22511:18;;:::i;:::-;22424:2;22555:1;22552;22548:9;22541:16;;22302:261;;;;:::o;22569:185::-;22609:1;22626:20;22644:1;22626:20;:::i;:::-;22621:25;;22660:20;22678:1;22660:20;:::i;:::-;22655:25;;22699:1;22689:2;;22704:18;;:::i;:::-;22689:2;22746:1;22743;22739:9;22734:14;;22611:143;;;;:::o;22760:348::-;22800:7;22823:20;22841:1;22823:20;:::i;:::-;22818:25;;22857:20;22875:1;22857:20;:::i;:::-;22852:25;;23045:1;22977:66;22973:74;22970:1;22967:81;22962:1;22955:9;22948:17;22944:105;22941:2;;;23052:18;;:::i;:::-;22941:2;23100:1;23097;23093:9;23082:20;;22808:300;;;;:::o;23114:191::-;23154:4;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23208:20;23226:1;23208:20;:::i;:::-;23203:25;;23247:1;23244;23241:8;23238:2;;;23252:18;;:::i;:::-;23238:2;23297:1;23294;23290:9;23282:17;;23159:146;;;;:::o;23311:96::-;23348:7;23377:24;23395:5;23377:24;:::i;:::-;23366:35;;23356:51;;;:::o;23413:104::-;23458:7;23487:24;23505:5;23487:24;:::i;:::-;23476:35;;23466:51;;;:::o;23523:90::-;23557:7;23600:5;23593:13;23586:21;23575:32;;23565:48;;;:::o;23619:126::-;23656:7;23696:42;23689:5;23685:54;23674:65;;23664:81;;;:::o;23751:77::-;23788:7;23817:5;23806:16;;23796:32;;;:::o;23834:86::-;23869:7;23909:4;23902:5;23898:16;23887:27;;23877:43;;;:::o;23926:121::-;23984:9;24017:24;24035:5;24017:24;:::i;:::-;24004:37;;23994:53;;;:::o;24053:307::-;24121:1;24131:113;24145:6;24142:1;24139:13;24131:113;;;24230:1;24225:3;24221:11;24215:18;24211:1;24206:3;24202:11;24195:39;24167:2;24164:1;24160:10;24155:15;;24131:113;;;24262:6;24259:1;24256:13;24253:2;;;24342:1;24333:6;24328:3;24324:16;24317:27;24253:2;24102:258;;;;:::o;24366:281::-;24449:27;24471:4;24449:27;:::i;:::-;24441:6;24437:40;24579:6;24567:10;24564:22;24543:18;24531:10;24528:34;24525:62;24522:2;;;24590:18;;:::i;:::-;24522:2;24630:10;24626:2;24619:22;24409:238;;;:::o;24653:233::-;24692:3;24715:24;24733:5;24715:24;:::i;:::-;24706:33;;24761:66;24754:5;24751:77;24748:2;;;24831:18;;:::i;:::-;24748:2;24878:1;24871:5;24867:13;24860:20;;24696:190;;;:::o;24892:180::-;24940:77;24937:1;24930:88;25037:4;25034:1;25027:15;25061:4;25058:1;25051:15;25078:180;25126:77;25123:1;25116:88;25223:4;25220:1;25213:15;25247:4;25244:1;25237:15;25264:180;25312:77;25309:1;25302:88;25409:4;25406:1;25399:15;25433:4;25430:1;25423:15;25450:102;25491:6;25542:2;25538:7;25533:2;25526:5;25522:14;25518:28;25508:38;;25498:54;;;:::o;25558:222::-;25698:34;25694:1;25686:6;25682:14;25675:58;25767:5;25762:2;25754:6;25750:15;25743:30;25664:116;:::o;25786:229::-;25926:34;25922:1;25914:6;25910:14;25903:58;25995:12;25990:2;25982:6;25978:15;25971:37;25892:123;:::o;26021:221::-;26161:34;26157:1;26149:6;26145:14;26138:58;26230:4;26225:2;26217:6;26213:15;26206:29;26127:115;:::o;26248:177::-;26388:29;26384:1;26376:6;26372:14;26365:53;26354:71;:::o;26431:220::-;26571:34;26567:1;26559:6;26555:14;26548:58;26640:3;26635:2;26627:6;26623:15;26616:28;26537:114;:::o;26657:182::-;26797:34;26793:1;26785:6;26781:14;26774:58;26763:76;:::o;26845:228::-;26985:34;26981:1;26973:6;26969:14;26962:58;27054:11;27049:2;27041:6;27037:15;27030:36;26951:122;:::o;27079:224::-;27219:34;27215:1;27207:6;27203:14;27196:58;27288:7;27283:2;27275:6;27271:15;27264:32;27185:118;:::o;27309:223::-;27449:34;27445:1;27437:6;27433:14;27426:58;27518:6;27513:2;27505:6;27501:15;27494:31;27415:117;:::o;27538:173::-;27678:25;27674:1;27666:6;27662:14;27655:49;27644:67;:::o;27717:174::-;27857:26;27853:1;27845:6;27841:14;27834:50;27823:68;:::o;27897:122::-;27970:24;27988:5;27970:24;:::i;:::-;27963:5;27960:35;27950:2;;28009:1;28006;27999:12;27950:2;27940:79;:::o;28025:138::-;28106:32;28132:5;28106:32;:::i;:::-;28099:5;28096:43;28086:2;;28153:1;28150;28143:12;28086:2;28076:87;:::o;28169:116::-;28239:21;28254:5;28239:21;:::i;:::-;28232:5;28229:32;28219:2;;28275:1;28272;28265:12;28219:2;28209:76;:::o;28291:122::-;28364:24;28382:5;28364:24;:::i;:::-;28357:5;28354:35;28344:2;;28403:1;28400;28393:12;28344:2;28334:79;:::o

Swarm Source

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