ETH Price: $3,088.04 (-0.02%)
Gas: 5 Gwei

Token

All Time High ⊙_☉ (ATH)
 

Overview

Max Total Supply

1,000,000 ATH

Holders

365

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
theunbrokenwindow.eth
Balance
0.015154543723568475 ATH

Value
$0.00
0x376a6efe8e98f3ae2af230b3d45b8cc5e962bc27
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
AllTimeHigh

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-28
*/

// SPDX-License-Identifier: MIT
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;
    }

}

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

interface IUniswapV2Pair {
	function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

contract AllTimeHigh is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint256) private sellcooldown;
    mapping (address => uint256) private buycooldown;
    mapping (address => bool) private bots;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
	uint256 private _ATHPrice;
	uint256 private _ATHResetPrice;
	uint256 private _ATHResetPercent;
	uint256 private _maxTxAmount = _tTotal;
	uint256 private _minTxAmount = 0;
    
    uint8 private _ATHFee = 0;
    uint8 private _devFee = 0;
    uint8 private _previousATHFee = _ATHFee;
    uint8 private _previousDevFee = _devFee;
    
    address payable private _devWallet;
    address payable private _ATHWallet;
    address payable private _marketingWallet;
    
    
    string private constant _name = unicode"All Time High \xE2\x8A\x99_\xE2\x98\x89";
    string private constant _symbol = "ATH";
    uint8 private constant _decimals = 18;
    
    IUniswapV2Router02 private uniswapV2Router;
	IUniswapV2Pair private uniswapV2Pair;
    address private _uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
	
	
	event ATHUpdated(uint256 _ATHPrice, address _ATHWallet);
	event MaxTxAmountUpdated(uint256 _maxTxAmount);
	event MinTxAmountUpdated(uint256 _minTxAmount);
	event ATHPayout (uint256 amount, address _ATHWallet);
	
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    receive() external payable {}   
    
    constructor (address mktWallet) {
        _devWallet = payable(_msgSender());
        _ATHWallet = payable(0);
        _marketingWallet = payable(mktWallet);
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;
		_ATHPrice = 0;
		_ATHResetPrice = 0;
		_ATHResetPercent = 30;
		emit Transfer(address(0), address(this), _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 ATHPrice() public view returns (uint256) {
        return _ATHPrice;
    }
    
    function ATHWallet() public view returns (address) {
        return _ATHWallet;
    }
	
	function pairAddress() public view returns (address) {
        return _uniswapV2Pair;
    }
    
    function ATHResetPrice() public view returns (uint256) {
        return _ATHResetPrice;
    }
    
    function maxTxAmount() public view returns (uint256) {
        return _maxTxAmount;
    }
    
    function minTxAmount() public view returns (uint256) {
        return _minTxAmount;
    }

    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 _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");
		if (owner != address(this)) {
			require(tradingOpen, "Trading not open yet");
		}
        _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]) {
                // Buying
				require(tradingOpen, "Trading not open yet");
                require(amount <= _maxTxAmount, "Buy amount exceeds max TX amount");
				require(amount >= _minTxAmount, "Buy amount under min TX amount");
				require(buycooldown[to] < block.timestamp, "Buying again too soon");
				
				sellcooldown[to] = block.timestamp + (5 minutes);
				buycooldown[to] = block.timestamp + (3 minutes);
				
				uint256 currentPrice = getPrice();
				if (currentPrice > _ATHPrice) {
					// new ATH has been reached 
					_ATHWallet = payable(to);
					_ATHPrice = currentPrice;
					_ATHResetPrice = currentPrice.sub(currentPrice.mul(_ATHResetPercent).div(10**2));
					emit ATHUpdated(_ATHPrice, _ATHWallet);
				}
			}
			
            if (from == _ATHWallet) {
				// Our ATH wallet holder is selling/transferring,
				// reset price so next buyer becomes ATH holder.
				_ATHPrice = 0;
				_ATHWallet = payable(0);
				emit ATHUpdated(_ATHPrice, _ATHWallet);
			}
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != _uniswapV2Pair && swapEnabled) {
                require(sellcooldown[from] < block.timestamp, "Selling too soon");
                // Check to see if price has gone below ATH Reset price.
                uint256 currentPrice = getPrice();
                if (currentPrice < _ATHResetPrice) {
                        _ATHPrice = 0;
                        _ATHWallet = payable(0);
                        _ATHResetPrice = 0;
                }
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0 && _ATHWallet != address(0)) {
                    sendETHToFee(address(this).balance);
                }
            }

        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
              takeFee = false;
         }
        _tokenTransfer(from,to,amount, takeFee);
    }
    
    function airDrop(address[] calldata _addresses, uint256[] calldata _amounts) payable public onlyOwner() {
        require(!tradingOpen);
        require(_addresses.length == _amounts.length);
        for (uint8 i; i < _addresses.length; i++) {
             _tokenTransfer(address(this), _addresses[i], _amounts[i], false);
        }
    }

    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 {
        
        uint256 athAmount = amount.mul(50).div(100);
        _ATHWallet.transfer(athAmount);
        _devWallet.transfer(amount.mul(33).div(100));
        _marketingWallet.transfer(amount.mul(17).div(100));
        emit ATHPayout(athAmount, _ATHWallet);
        
    }
    
    function createPair() public 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(uint256).max);
    }
    
    function openTrading() public onlyOwner(){
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        _ATHFee = 3;
        _devFee = 3;
    }
    
    function setATHResetPercent(uint256 newResetPercent) external onlyOwner() {
        _ATHResetPercent = newResetPercent;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
	
	function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
    
    function setMktWallet(address payable newMktWallet) external onlyOwner() {
        _marketingWallet = payable(newMktWallet);
    }
    
    function setMinTxAmount(uint256 minAmount) external onlyOwner() {
        require(minAmount > 0, "Amount must be greater than 0");
        _minTxAmount = minAmount;
        emit MinTxAmountUpdated(_minTxAmount);
    }
        
    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 _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);
    }
    
    function _removeAllFee() private {
        if(_ATHFee == 0 && _devFee == 0) return;
        
        _previousATHFee = _ATHFee;
        _previousDevFee = _devFee;
        
        _ATHFee = 0;
        _devFee = 0;
    }
    
    function _restoreAllFee() private {
         _ATHFee = _previousATHFee;
         _devFee = _previousDevFee;
    }

    function manualswap() external {
        require(_msgSender() == _devWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _devWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
	
	function getPrice() public view returns (uint256) {
	    require(tradingOpen,"trading isn't open");
		IUniswapV2Pair pair = IUniswapV2Pair(_uniswapV2Pair);
		(uint112 token0, uint112 token1,) = pair.getReserves();
		(uint256 tokenReserves, uint256 ethReserves) = (address(this) < uniswapV2Router.WETH()) ? (token0, token1) : (token1, token0);
		return ethReserves.mul(10000000000).div(tokenReserves);
	}
	
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _devFee, _ATHFee);
        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 _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 _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);
    }
	
	
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"mktWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"_ATHWallet","type":"address"}],"name":"ATHPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_ATHPrice","type":"uint256"},{"indexed":false,"internalType":"address","name":"_ATHWallet","type":"address"}],"name":"ATHUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_minTxAmount","type":"uint256"}],"name":"MinTxAmountUpdated","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":"ATHPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ATHResetPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ATHWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"airDrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","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":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newResetPercent","type":"uint256"}],"name":"setATHResetPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minAmount","type":"uint256"}],"name":"setMinTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMktWallet","type":"address"}],"name":"setMktWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006000196200001e919062000666565b6000196200002d9190620005ed565b60085569d3c21bcecceda1000000600d556000600e556000600f60006101000a81548160ff021916908360ff1602179055506000600f60016101000a81548160ff021916908360ff160217905550600f60009054906101000a900460ff16600f60026101000a81548160ff021916908360ff160217905550600f60019054906101000a900460ff16600f60036101000a81548160ff021916908360ff1602179055506000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011257600080fd5b50604051620052133803806200521383398181016040528101906200013891906200058d565b60006200014a6200054560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001f86200054560201b60201c565b600f60046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620003176200054d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600a819055506000600b81905550601e600c819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620005369190620005d0565b60405180910390a3506200071b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620005878162000701565b92915050565b600060208284031215620005a657620005a5620006fc565b5b6000620005b68482850162000576565b91505092915050565b620005ca816200065c565b82525050565b6000602082019050620005e76000830184620005bf565b92915050565b6000620005fa826200065c565b915062000607836200065c565b9250828210156200061d576200061c6200069e565b5b828203905092915050565b600062000635826200063c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600062000673826200065c565b915062000680836200065c565b925082620006935762000692620006cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6200070c8162000628565b81146200071857600080fd5b50565b614ae8806200072b6000396000f3fe6080604052600436106101c65760003560e01c806370a08231116100f75780639ece25ff11610095578063c3c8cd8011610064578063c3c8cd80146105f8578063c9567bf91461060f578063d543dbeb14610626578063dd62ed3e1461064f576101cd565b80639ece25ff1461053e578063a8b0898214610567578063a9059cbb14610592578063b515566a146105cf576101cd565b80638da5cb5b116100d15780638da5cb5b146104a657806395d89b41146104d157806398d5fdca146104fc5780639e78fb4f14610527576101cd565b806370a0823114610427578063715018a6146104645780638c0b5e221461047b576101cd565b806323b872dd11610164578063313ce5671161013e578063313ce5671461039e57806361a63d31146103c957806365216a41146103f45780636fc3eaec14610410576101cd565b806323b872dd1461030d578063273123b71461034a57806328670a1214610373576101cd565b806315133c49116101a057806315133c491461026357806318160ddd1461028e57806318d7df12146102b957806321588d90146102e2576101cd565b8063065e812b146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f491906137d3565b61068c565b005b34801561020757600080fd5b50610210610765565b60405161021d9190613ef1565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190613893565b6107a2565b60405161025a9190613ed6565b60405180910390f35b34801561026f57600080fd5b506102786107c0565b6040516102859190614133565b60405180910390f35b34801561029a57600080fd5b506102a36107ca565b6040516102b09190614133565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190613a1d565b6107dc565b005b3480156102ee57600080fd5b506102f76108f7565b6040516103049190613e08565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190613840565b610921565b6040516103419190613ed6565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190613779565b6109fa565b005b34801561037f57600080fd5b50610388610aea565b6040516103959190614133565b60405180910390f35b3480156103aa57600080fd5b506103b3610af4565b6040516103c091906141d1565b60405180910390f35b3480156103d557600080fd5b506103de610afd565b6040516103eb9190614133565b60405180910390f35b61040e600480360381019061040991906138d3565b610b07565b005b34801561041c57600080fd5b50610425610c44565b005b34801561043357600080fd5b5061044e60048036038101906104499190613779565b610cb6565b60405161045b9190614133565b60405180910390f35b34801561047057600080fd5b50610479610d07565b005b34801561048757600080fd5b50610490610e5a565b60405161049d9190614133565b60405180910390f35b3480156104b257600080fd5b506104bb610e64565b6040516104c89190613e08565b60405180910390f35b3480156104dd57600080fd5b506104e6610e8d565b6040516104f39190613ef1565b60405180910390f35b34801561050857600080fd5b50610511610eca565b60405161051e9190614133565b60405180910390f35b34801561053357600080fd5b5061053c6110fd565b005b34801561054a57600080fd5b5061056560048036038101906105609190613a1d565b6115f8565b005b34801561057357600080fd5b5061057c611697565b6040516105899190613e08565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613893565b6116c1565b6040516105c69190613ed6565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190613954565b6116df565b005b34801561060457600080fd5b5061060d611809565b005b34801561061b57600080fd5b50610624611883565b005b34801561063257600080fd5b5061064d60048036038101906106489190613a1d565b6119d5565b005b34801561065b57600080fd5b5061067660048036038101906106719190613800565b611b1f565b6040516106839190614133565b60405180910390f35b610694611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890614053565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280601581526020017f416c6c2054696d65204869676820e28a995fe298890000000000000000000000815250905090565b60006107b66107af611ba6565b8484611bae565b6001905092915050565b6000600b54905090565b600069d3c21bcecceda1000000905090565b6107e4611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086890614053565b60405180910390fd5b600081116108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90613fb3565b60405180910390fd5b80600e819055507f78410bdbc81290e237844d4d5be2c2a1d0cb831a4618405dc2a92c85a20712f7600e546040516108ec9190614133565b60405180910390a150565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061092e848484611dfa565b6109ef8461093a611ba6565b6109ea85604051806060016040528060288152602001614a8b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a0611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128039092919063ffffffff16565b611bae565b600190509392505050565b610a02611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690614053565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e54905090565b60006012905090565b6000600a54905090565b610b0f611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390614053565b60405180910390fd5b60148054906101000a900460ff1615610bb457600080fd5b818190508484905014610bc657600080fd5b60005b848490508160ff161015610c3d57610c2a3086868460ff16818110610bf157610bf06145b5565b5b9050602002016020810190610c069190613779565b85858560ff16818110610c1c57610c1b6145b5565b5b905060200201356000612867565b8080610c359061452d565b915050610bc9565b5050505050565b600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c85611ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610ca557600080fd5b6000479050610cb381612894565b50565b6000610d00600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa5565b9050919050565b610d0f611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390614053565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4154480000000000000000000000000000000000000000000000000000000000815250905090565b600060148054906101000a900460ff16610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090614113565b60405180910390fd5b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f8957600080fd5b505afa158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc191906139ca565b5091509150600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561103157600080fd5b505afa158015611045573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106991906137a6565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106110a25782846110a5565b83835b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506110f3826110e56402540be40084612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9550505050505090565b611105611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990614053565b60405180910390fd5b60148054906101000a900460ff16156111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d7906140f3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061127130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611bae565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b757600080fd5b505afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef91906137a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138991906137a6565b6040518363ffffffff1660e01b81526004016113a6929190613e23565b602060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f891906137a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148130610cb6565b60008061148c610e64565b426040518863ffffffff1660e01b81526004016114ae96959493929190613e75565b6060604051808303818588803b1580156114c757600080fd5b505af11580156114db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115009190613a4a565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115a2929190613e4c565b602060405180830381600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f4919061399d565b5050565b611600611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490614053565b60405180910390fd5b80600c8190555050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d56116ce611ba6565b8484611dfa565b6001905092915050565b6116e7611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90614053565b60405180910390fd5b60005b815181101561180557600160076000848481518110611799576117986145b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117fd906144e4565b915050611777565b5050565b600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184a611ba6565b73ffffffffffffffffffffffffffffffffffffffff161461186a57600080fd5b600061187530610cb6565b905061188081612bd8565b50565b61188b611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90614053565b60405180910390fd5b60148054906101000a900460ff1615611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d906140f3565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055506003600f60006101000a81548160ff021916908360ff1602179055506003600f60016101000a81548160ff021916908360ff160217905550565b6119dd611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614053565b60405180910390fd5b60008111611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613fb3565b60405180910390fd5b611add6064611acf8369d3c21bcecceda1000000612b1390919063ffffffff16565b612b8e90919063ffffffff16565b600d819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600d54604051611b149190614133565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c15906140d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613f73565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d0f5760148054906101000a900460ff16611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613ff3565b60405180910390fd5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ded9190614133565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e61906140b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190613f13565b60405180910390fd5b60008111611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490614073565b60405180910390fd5b611f25610e64565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f935750611f63610e64565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561274057600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61204557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120f05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121465750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124425760148054906101000a900460ff16612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613ff3565b60405180910390fd5b600d548111156121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490613f33565b60405180910390fd5b600e54811015612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614093565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613fd3565b60405180910390fd5b61012c426122b19190614292565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060b4426123019190614292565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061234e610eca565b9050600a548111156124405782601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a819055506123dc6123cd60646123bf600c5485612b1390919063ffffffff16565b612b8e90919063ffffffff16565b82612e6090919063ffffffff16565b600b819055507f1b23c40005f4d445a417325cc4cc2515cfbe529f49945aa04fec1d79ca3414d2600a54601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161243792919061414e565b60405180910390a15b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612540576000600a819055506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1b23c40005f4d445a417325cc4cc2515cfbe529f49945aa04fec1d79ca3414d2600a54601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161253792919061414e565b60405180910390a15b600061254b30610cb6565b9050601460159054906101000a900460ff161580156125b85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156125d05750601460169054906101000a900460ff165b1561273e5742600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d90614013565b60405180910390fd5b6000612660610eca565b9050600b548110156126bf576000600a819055506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b819055505b6126c882612bd8565b600047905060008111801561272c5750600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561273b5761273a47612894565b5b50505b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e75750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127f157600090505b6127fd84848484612867565b50505050565b600083831115829061284b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128429190613ef1565b60405180910390fd5b506000838561285a9190614373565b9050809150509392505050565b8061287557612874612eaa565b5b612880848484612f77565b8061288e5761288d613142565b5b50505050565b60006128bd60646128af603285612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612927573d6000803e3d6000fd5b50600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61298b606461297d602187612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129b6573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a1a6064612a0c601187612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a45573d6000803e3d6000fd5b507ff216c5a19ba763042d4173173c292c1ab6c832bf11105799bcd3cba27d85f28681601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612a9992919061414e565b60405180910390a15050565b6000600854821115612aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae390613f53565b60405180910390fd5b6000612af6613198565b9050612b0b8184612b8e90919063ffffffff16565b915050919050565b600080831415612b265760009050612b88565b60008284612b349190614319565b9050828482612b4391906142e8565b14612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a90614033565b60405180910390fd5b809150505b92915050565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131c3565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c1057612c0f6145e4565b5b604051908082528060200260200182016040528015612c3e5781602001602082028036833780820191505090505b5090503081600081518110612c5657612c556145b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612cf857600080fd5b505afa158015612d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3091906137a6565b81600181518110612d4457612d436145b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612dab30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bae565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e0f959493929190614177565b600060405180830381600087803b158015612e2957600080fd5b505af1158015612e3d573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000612ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612803565b905092915050565b6000600f60009054906101000a900460ff1660ff16148015612ede57506000600f60019054906101000a900460ff1660ff16145b15612ee857612f75565b600f60009054906101000a900460ff16600f60026101000a81548160ff021916908360ff160217905550600f60019054906101000a900460ff16600f60036101000a81548160ff021916908360ff1602179055506000600f60006101000a81548160ff021916908360ff1602179055506000600f60016101000a81548160ff021916908360ff1602179055505b565b600080600080600080612f8987613226565b955095509550955095509550612fe786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e6090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061307c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ae90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130c88161330c565b6130d284836133c9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161312f9190614133565b60405180910390a3505050505050505050565b600f60029054906101000a900460ff16600f60006101000a81548160ff021916908360ff160217905550600f60039054906101000a900460ff16600f60016101000a81548160ff021916908360ff160217905550565b60008060006131a5613403565b915091506131bc8183612b8e90919063ffffffff16565b9250505090565b6000808311829061320a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132019190613ef1565b60405180910390fd5b506000838561321991906142e8565b9050809150509392505050565b60008060008060008060008060006132638a600f60019054906101000a900460ff1660ff16600f60009054906101000a900460ff1660ff16613468565b9250925092506000613273613198565b905060008060006132868e8787876134fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846132bd9190614292565b905083811015613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990613f93565b60405180910390fd5b8091505092915050565b6000613316613198565b9050600061332d8284612b1390919063ffffffff16565b905061338181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ae90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133de82600854612e6090919063ffffffff16565b6008819055506133f9816009546132ae90919063ffffffff16565b6009819055505050565b60008060006008549050600069d3c21bcecceda1000000905061343b69d3c21bcecceda1000000600854612b8e90919063ffffffff16565b82101561345b5760085469d3c21bcecceda1000000935093505050613464565b81819350935050505b9091565b6000806000806134946064613486888a612b1390919063ffffffff16565b612b8e90919063ffffffff16565b905060006134be60646134b0888b612b1390919063ffffffff16565b612b8e90919063ffffffff16565b905060006134e7826134d9858c612e6090919063ffffffff16565b612e6090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135178589612b1390919063ffffffff16565b9050600061352e8689612b1390919063ffffffff16565b905060006135458789612b1390919063ffffffff16565b9050600061356e826135608587612e6090919063ffffffff16565b612e6090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061359a61359584614211565b6141ec565b905080838252602082019050828560208602820111156135bd576135bc61461d565b5b60005b858110156135ed57816135d388826135f7565b8452602084019350602083019250506001810190506135c0565b5050509392505050565b60008135905061360681614a00565b92915050565b60008151905061361b81614a00565b92915050565b60008135905061363081614a17565b92915050565b60008083601f84011261364c5761364b614618565b5b8235905067ffffffffffffffff81111561366957613668614613565b5b6020830191508360208202830111156136855761368461461d565b5b9250929050565b600082601f8301126136a1576136a0614618565b5b81356136b1848260208601613587565b91505092915050565b60008083601f8401126136d0576136cf614618565b5b8235905067ffffffffffffffff8111156136ed576136ec614613565b5b6020830191508360208202830111156137095761370861461d565b5b9250929050565b60008151905061371f81614a2e565b92915050565b60008151905061373481614a45565b92915050565b60008135905061374981614a5c565b92915050565b60008151905061375e81614a5c565b92915050565b60008151905061377381614a73565b92915050565b60006020828403121561378f5761378e614627565b5b600061379d848285016135f7565b91505092915050565b6000602082840312156137bc576137bb614627565b5b60006137ca8482850161360c565b91505092915050565b6000602082840312156137e9576137e8614627565b5b60006137f784828501613621565b91505092915050565b6000806040838503121561381757613816614627565b5b6000613825858286016135f7565b9250506020613836858286016135f7565b9150509250929050565b60008060006060848603121561385957613858614627565b5b6000613867868287016135f7565b9350506020613878868287016135f7565b92505060406138898682870161373a565b9150509250925092565b600080604083850312156138aa576138a9614627565b5b60006138b8858286016135f7565b92505060206138c98582860161373a565b9150509250929050565b600080600080604085870312156138ed576138ec614627565b5b600085013567ffffffffffffffff81111561390b5761390a614622565b5b61391787828801613636565b9450945050602085013567ffffffffffffffff81111561393a57613939614622565b5b613946878288016136ba565b925092505092959194509250565b60006020828403121561396a57613969614627565b5b600082013567ffffffffffffffff81111561398857613987614622565b5b6139948482850161368c565b91505092915050565b6000602082840312156139b3576139b2614627565b5b60006139c184828501613710565b91505092915050565b6000806000606084860312156139e3576139e2614627565b5b60006139f186828701613725565b9350506020613a0286828701613725565b9250506040613a1386828701613764565b9150509250925092565b600060208284031215613a3357613a32614627565b5b6000613a418482850161373a565b91505092915050565b600080600060608486031215613a6357613a62614627565b5b6000613a718682870161374f565b9350506020613a828682870161374f565b9250506040613a938682870161374f565b9150509250925092565b6000613aa98383613ac4565b60208301905092915050565b613abe81614438565b82525050565b613acd816143a7565b82525050565b613adc816143a7565b82525050565b6000613aed8261424d565b613af78185614270565b9350613b028361423d565b8060005b83811015613b33578151613b1a8882613a9d565b9750613b2583614263565b925050600181019050613b06565b5085935050505092915050565b613b49816143cb565b82525050565b613b588161444a565b82525050565b6000613b6982614258565b613b738185614281565b9350613b83818560208601614480565b613b8c8161462c565b840191505092915050565b6000613ba4602383614281565b9150613baf8261463d565b604082019050919050565b6000613bc7602083614281565b9150613bd28261468c565b602082019050919050565b6000613bea602a83614281565b9150613bf5826146b5565b604082019050919050565b6000613c0d602283614281565b9150613c1882614704565b604082019050919050565b6000613c30601b83614281565b9150613c3b82614753565b602082019050919050565b6000613c53601d83614281565b9150613c5e8261477c565b602082019050919050565b6000613c76601583614281565b9150613c81826147a5565b602082019050919050565b6000613c99601483614281565b9150613ca4826147ce565b602082019050919050565b6000613cbc601083614281565b9150613cc7826147f7565b602082019050919050565b6000613cdf602183614281565b9150613cea82614820565b604082019050919050565b6000613d02602083614281565b9150613d0d8261486f565b602082019050919050565b6000613d25602983614281565b9150613d3082614898565b604082019050919050565b6000613d48601e83614281565b9150613d53826148e7565b602082019050919050565b6000613d6b602583614281565b9150613d7682614910565b604082019050919050565b6000613d8e602483614281565b9150613d998261495f565b604082019050919050565b6000613db1601783614281565b9150613dbc826149ae565b602082019050919050565b6000613dd4601283614281565b9150613ddf826149d7565b602082019050919050565b613df381614411565b82525050565b613e028161442b565b82525050565b6000602082019050613e1d6000830184613ad3565b92915050565b6000604082019050613e386000830185613ad3565b613e456020830184613ad3565b9392505050565b6000604082019050613e616000830185613ad3565b613e6e6020830184613dea565b9392505050565b600060c082019050613e8a6000830189613ad3565b613e976020830188613dea565b613ea46040830187613b4f565b613eb16060830186613b4f565b613ebe6080830185613ad3565b613ecb60a0830184613dea565b979650505050505050565b6000602082019050613eeb6000830184613b40565b92915050565b60006020820190508181036000830152613f0b8184613b5e565b905092915050565b60006020820190508181036000830152613f2c81613b97565b9050919050565b60006020820190508181036000830152613f4c81613bba565b9050919050565b60006020820190508181036000830152613f6c81613bdd565b9050919050565b60006020820190508181036000830152613f8c81613c00565b9050919050565b60006020820190508181036000830152613fac81613c23565b9050919050565b60006020820190508181036000830152613fcc81613c46565b9050919050565b60006020820190508181036000830152613fec81613c69565b9050919050565b6000602082019050818103600083015261400c81613c8c565b9050919050565b6000602082019050818103600083015261402c81613caf565b9050919050565b6000602082019050818103600083015261404c81613cd2565b9050919050565b6000602082019050818103600083015261406c81613cf5565b9050919050565b6000602082019050818103600083015261408c81613d18565b9050919050565b600060208201905081810360008301526140ac81613d3b565b9050919050565b600060208201905081810360008301526140cc81613d5e565b9050919050565b600060208201905081810360008301526140ec81613d81565b9050919050565b6000602082019050818103600083015261410c81613da4565b9050919050565b6000602082019050818103600083015261412c81613dc7565b9050919050565b60006020820190506141486000830184613dea565b92915050565b60006040820190506141636000830185613dea565b6141706020830184613ab5565b9392505050565b600060a08201905061418c6000830188613dea565b6141996020830187613b4f565b81810360408301526141ab8186613ae2565b90506141ba6060830185613ad3565b6141c76080830184613dea565b9695505050505050565b60006020820190506141e66000830184613df9565b92915050565b60006141f6614207565b905061420282826144b3565b919050565b6000604051905090565b600067ffffffffffffffff82111561422c5761422b6145e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061429d82614411565b91506142a883614411565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142dd576142dc614557565b5b828201905092915050565b60006142f382614411565b91506142fe83614411565b92508261430e5761430d614586565b5b828204905092915050565b600061432482614411565b915061432f83614411565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561436857614367614557565b5b828202905092915050565b600061437e82614411565b915061438983614411565b92508282101561439c5761439b614557565b5b828203905092915050565b60006143b2826143f1565b9050919050565b60006143c4826143f1565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006144438261445c565b9050919050565b600061445582614411565b9050919050565b60006144678261446e565b9050919050565b6000614479826143f1565b9050919050565b60005b8381101561449e578082015181840152602081019050614483565b838111156144ad576000848401525b50505050565b6144bc8261462c565b810181811067ffffffffffffffff821117156144db576144da6145e4565b5b80604052505050565b60006144ef82614411565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561452257614521614557565b5b600182019050919050565b60006145388261442b565b915060ff82141561454c5761454b614557565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42757920616d6f756e742065786365656473206d617820545820616d6f756e74600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f427579696e6720616761696e20746f6f20736f6f6e0000000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f53656c6c696e6720746f6f20736f6f6e00000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42757920616d6f756e7420756e646572206d696e20545820616d6f756e740000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f74726164696e672069736e2774206f70656e0000000000000000000000000000600082015250565b614a09816143a7565b8114614a1457600080fd5b50565b614a20816143b9565b8114614a2b57600080fd5b50565b614a37816143cb565b8114614a4257600080fd5b50565b614a4e816143d7565b8114614a5957600080fd5b50565b614a6581614411565b8114614a7057600080fd5b50565b614a7c8161441b565b8114614a8757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205e1ec127a8888e0231280ef15191fb921f3bf108191e7f1d41f367e3e9550ead64736f6c63430008060033000000000000000000000000ea2ca53c07d0e3d28ce376bad6c8467be9383a06

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f75780639ece25ff11610095578063c3c8cd8011610064578063c3c8cd80146105f8578063c9567bf91461060f578063d543dbeb14610626578063dd62ed3e1461064f576101cd565b80639ece25ff1461053e578063a8b0898214610567578063a9059cbb14610592578063b515566a146105cf576101cd565b80638da5cb5b116100d15780638da5cb5b146104a657806395d89b41146104d157806398d5fdca146104fc5780639e78fb4f14610527576101cd565b806370a0823114610427578063715018a6146104645780638c0b5e221461047b576101cd565b806323b872dd11610164578063313ce5671161013e578063313ce5671461039e57806361a63d31146103c957806365216a41146103f45780636fc3eaec14610410576101cd565b806323b872dd1461030d578063273123b71461034a57806328670a1214610373576101cd565b806315133c49116101a057806315133c491461026357806318160ddd1461028e57806318d7df12146102b957806321588d90146102e2576101cd565b8063065e812b146101d257806306fdde03146101fb578063095ea7b314610226576101cd565b366101cd57005b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f491906137d3565b61068c565b005b34801561020757600080fd5b50610210610765565b60405161021d9190613ef1565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190613893565b6107a2565b60405161025a9190613ed6565b60405180910390f35b34801561026f57600080fd5b506102786107c0565b6040516102859190614133565b60405180910390f35b34801561029a57600080fd5b506102a36107ca565b6040516102b09190614133565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db9190613a1d565b6107dc565b005b3480156102ee57600080fd5b506102f76108f7565b6040516103049190613e08565b60405180910390f35b34801561031957600080fd5b50610334600480360381019061032f9190613840565b610921565b6040516103419190613ed6565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c9190613779565b6109fa565b005b34801561037f57600080fd5b50610388610aea565b6040516103959190614133565b60405180910390f35b3480156103aa57600080fd5b506103b3610af4565b6040516103c091906141d1565b60405180910390f35b3480156103d557600080fd5b506103de610afd565b6040516103eb9190614133565b60405180910390f35b61040e600480360381019061040991906138d3565b610b07565b005b34801561041c57600080fd5b50610425610c44565b005b34801561043357600080fd5b5061044e60048036038101906104499190613779565b610cb6565b60405161045b9190614133565b60405180910390f35b34801561047057600080fd5b50610479610d07565b005b34801561048757600080fd5b50610490610e5a565b60405161049d9190614133565b60405180910390f35b3480156104b257600080fd5b506104bb610e64565b6040516104c89190613e08565b60405180910390f35b3480156104dd57600080fd5b506104e6610e8d565b6040516104f39190613ef1565b60405180910390f35b34801561050857600080fd5b50610511610eca565b60405161051e9190614133565b60405180910390f35b34801561053357600080fd5b5061053c6110fd565b005b34801561054a57600080fd5b5061056560048036038101906105609190613a1d565b6115f8565b005b34801561057357600080fd5b5061057c611697565b6040516105899190613e08565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613893565b6116c1565b6040516105c69190613ed6565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f19190613954565b6116df565b005b34801561060457600080fd5b5061060d611809565b005b34801561061b57600080fd5b50610624611883565b005b34801561063257600080fd5b5061064d60048036038101906106489190613a1d565b6119d5565b005b34801561065b57600080fd5b5061067660048036038101906106719190613800565b611b1f565b6040516106839190614133565b60405180910390f35b610694611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890614053565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606040518060400160405280601581526020017f416c6c2054696d65204869676820e28a995fe298890000000000000000000000815250905090565b60006107b66107af611ba6565b8484611bae565b6001905092915050565b6000600b54905090565b600069d3c21bcecceda1000000905090565b6107e4611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086890614053565b60405180910390fd5b600081116108b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ab90613fb3565b60405180910390fd5b80600e819055507f78410bdbc81290e237844d4d5be2c2a1d0cb831a4618405dc2a92c85a20712f7600e546040516108ec9190614133565b60405180910390a150565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061092e848484611dfa565b6109ef8461093a611ba6565b6109ea85604051806060016040528060288152602001614a8b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a0611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128039092919063ffffffff16565b611bae565b600190509392505050565b610a02611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8690614053565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600e54905090565b60006012905090565b6000600a54905090565b610b0f611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9390614053565b60405180910390fd5b60148054906101000a900460ff1615610bb457600080fd5b818190508484905014610bc657600080fd5b60005b848490508160ff161015610c3d57610c2a3086868460ff16818110610bf157610bf06145b5565b5b9050602002016020810190610c069190613779565b85858560ff16818110610c1c57610c1b6145b5565b5b905060200201356000612867565b8080610c359061452d565b915050610bc9565b5050505050565b600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c85611ba6565b73ffffffffffffffffffffffffffffffffffffffff1614610ca557600080fd5b6000479050610cb381612894565b50565b6000610d00600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa5565b9050919050565b610d0f611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390614053565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600d54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4154480000000000000000000000000000000000000000000000000000000000815250905090565b600060148054906101000a900460ff16610f19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1090614113565b60405180910390fd5b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015610f8957600080fd5b505afa158015610f9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc191906139ca565b5091509150600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561103157600080fd5b505afa158015611045573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106991906137a6565b73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16106110a25782846110a5565b83835b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506110f3826110e56402540be40084612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9550505050505090565b611105611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990614053565b60405180910390fd5b60148054906101000a900460ff16156111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d7906140f3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061127130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669d3c21bcecceda1000000611bae565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156112b757600080fd5b505afa1580156112cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ef91906137a6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505afa158015611365573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138991906137a6565b6040518363ffffffff1660e01b81526004016113a6929190613e23565b602060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f891906137a6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061148130610cb6565b60008061148c610e64565b426040518863ffffffff1660e01b81526004016114ae96959493929190613e75565b6060604051808303818588803b1580156114c757600080fd5b505af11580156114db573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115009190613a4a565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016115a2929190613e4c565b602060405180830381600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f4919061399d565b5050565b611600611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490614053565b60405180910390fd5b80600c8190555050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d56116ce611ba6565b8484611dfa565b6001905092915050565b6116e7611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176b90614053565b60405180910390fd5b60005b815181101561180557600160076000848481518110611799576117986145b5565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806117fd906144e4565b915050611777565b5050565b600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184a611ba6565b73ffffffffffffffffffffffffffffffffffffffff161461186a57600080fd5b600061187530610cb6565b905061188081612bd8565b50565b61188b611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90614053565b60405180910390fd5b60148054906101000a900460ff1615611966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195d906140f3565b60405180910390fd5b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055506003600f60006101000a81548160ff021916908360ff1602179055506003600f60016101000a81548160ff021916908360ff160217905550565b6119dd611ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6190614053565b60405180910390fd5b60008111611aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa490613fb3565b60405180910390fd5b611add6064611acf8369d3c21bcecceda1000000612b1390919063ffffffff16565b612b8e90919063ffffffff16565b600d819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600d54604051611b149190614133565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c15906140d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8590613f73565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d0f5760148054906101000a900460ff16611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613ff3565b60405180910390fd5b5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ded9190614133565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e61906140b3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed190613f13565b60405180910390fd5b60008111611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490614073565b60405180910390fd5b611f25610e64565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f935750611f63610e64565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561274057600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561203c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61204557600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120f05750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156121465750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124425760148054906101000a900460ff16612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613ff3565b60405180910390fd5b600d548111156121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490613f33565b60405180910390fd5b600e54811015612222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221990614093565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613fd3565b60405180910390fd5b61012c426122b19190614292565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060b4426123019190614292565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061234e610eca565b9050600a548111156124405782601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a819055506123dc6123cd60646123bf600c5485612b1390919063ffffffff16565b612b8e90919063ffffffff16565b82612e6090919063ffffffff16565b600b819055507f1b23c40005f4d445a417325cc4cc2515cfbe529f49945aa04fec1d79ca3414d2600a54601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161243792919061414e565b60405180910390a15b505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612540576000600a819055506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1b23c40005f4d445a417325cc4cc2515cfbe529f49945aa04fec1d79ca3414d2600a54601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161253792919061414e565b60405180910390a15b600061254b30610cb6565b9050601460159054906101000a900460ff161580156125b85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156125d05750601460169054906101000a900460ff165b1561273e5742600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264d90614013565b60405180910390fd5b6000612660610eca565b9050600b548110156126bf576000600a819055506000601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b819055505b6126c882612bd8565b600047905060008111801561272c5750600073ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561273b5761273a47612894565b5b50505b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127e75750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156127f157600090505b6127fd84848484612867565b50505050565b600083831115829061284b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128429190613ef1565b60405180910390fd5b506000838561285a9190614373565b9050809150509392505050565b8061287557612874612eaa565b5b612880848484612f77565b8061288e5761288d613142565b5b50505050565b60006128bd60646128af603285612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612927573d6000803e3d6000fd5b50600f60049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61298b606461297d602187612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129b6573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a1a6064612a0c601187612b1390919063ffffffff16565b612b8e90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a45573d6000803e3d6000fd5b507ff216c5a19ba763042d4173173c292c1ab6c832bf11105799bcd3cba27d85f28681601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051612a9992919061414e565b60405180910390a15050565b6000600854821115612aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ae390613f53565b60405180910390fd5b6000612af6613198565b9050612b0b8184612b8e90919063ffffffff16565b915050919050565b600080831415612b265760009050612b88565b60008284612b349190614319565b9050828482612b4391906142e8565b14612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a90614033565b60405180910390fd5b809150505b92915050565b6000612bd083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131c3565b905092915050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612c1057612c0f6145e4565b5b604051908082528060200260200182016040528015612c3e5781602001602082028036833780820191505090505b5090503081600081518110612c5657612c556145b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612cf857600080fd5b505afa158015612d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d3091906137a6565b81600181518110612d4457612d436145b5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612dab30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bae565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612e0f959493929190614177565b600060405180830381600087803b158015612e2957600080fd5b505af1158015612e3d573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000612ea283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612803565b905092915050565b6000600f60009054906101000a900460ff1660ff16148015612ede57506000600f60019054906101000a900460ff1660ff16145b15612ee857612f75565b600f60009054906101000a900460ff16600f60026101000a81548160ff021916908360ff160217905550600f60019054906101000a900460ff16600f60036101000a81548160ff021916908360ff1602179055506000600f60006101000a81548160ff021916908360ff1602179055506000600f60016101000a81548160ff021916908360ff1602179055505b565b600080600080600080612f8987613226565b955095509550955095509550612fe786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e6090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061307c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ae90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130c88161330c565b6130d284836133c9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161312f9190614133565b60405180910390a3505050505050505050565b600f60029054906101000a900460ff16600f60006101000a81548160ff021916908360ff160217905550600f60039054906101000a900460ff16600f60016101000a81548160ff021916908360ff160217905550565b60008060006131a5613403565b915091506131bc8183612b8e90919063ffffffff16565b9250505090565b6000808311829061320a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132019190613ef1565b60405180910390fd5b506000838561321991906142e8565b9050809150509392505050565b60008060008060008060008060006132638a600f60019054906101000a900460ff1660ff16600f60009054906101000a900460ff1660ff16613468565b9250925092506000613273613198565b905060008060006132868e8787876134fe565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60008082846132bd9190614292565b905083811015613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990613f93565b60405180910390fd5b8091505092915050565b6000613316613198565b9050600061332d8284612b1390919063ffffffff16565b905061338181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546132ae90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133de82600854612e6090919063ffffffff16565b6008819055506133f9816009546132ae90919063ffffffff16565b6009819055505050565b60008060006008549050600069d3c21bcecceda1000000905061343b69d3c21bcecceda1000000600854612b8e90919063ffffffff16565b82101561345b5760085469d3c21bcecceda1000000935093505050613464565b81819350935050505b9091565b6000806000806134946064613486888a612b1390919063ffffffff16565b612b8e90919063ffffffff16565b905060006134be60646134b0888b612b1390919063ffffffff16565b612b8e90919063ffffffff16565b905060006134e7826134d9858c612e6090919063ffffffff16565b612e6090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806135178589612b1390919063ffffffff16565b9050600061352e8689612b1390919063ffffffff16565b905060006135458789612b1390919063ffffffff16565b9050600061356e826135608587612e6090919063ffffffff16565b612e6090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061359a61359584614211565b6141ec565b905080838252602082019050828560208602820111156135bd576135bc61461d565b5b60005b858110156135ed57816135d388826135f7565b8452602084019350602083019250506001810190506135c0565b5050509392505050565b60008135905061360681614a00565b92915050565b60008151905061361b81614a00565b92915050565b60008135905061363081614a17565b92915050565b60008083601f84011261364c5761364b614618565b5b8235905067ffffffffffffffff81111561366957613668614613565b5b6020830191508360208202830111156136855761368461461d565b5b9250929050565b600082601f8301126136a1576136a0614618565b5b81356136b1848260208601613587565b91505092915050565b60008083601f8401126136d0576136cf614618565b5b8235905067ffffffffffffffff8111156136ed576136ec614613565b5b6020830191508360208202830111156137095761370861461d565b5b9250929050565b60008151905061371f81614a2e565b92915050565b60008151905061373481614a45565b92915050565b60008135905061374981614a5c565b92915050565b60008151905061375e81614a5c565b92915050565b60008151905061377381614a73565b92915050565b60006020828403121561378f5761378e614627565b5b600061379d848285016135f7565b91505092915050565b6000602082840312156137bc576137bb614627565b5b60006137ca8482850161360c565b91505092915050565b6000602082840312156137e9576137e8614627565b5b60006137f784828501613621565b91505092915050565b6000806040838503121561381757613816614627565b5b6000613825858286016135f7565b9250506020613836858286016135f7565b9150509250929050565b60008060006060848603121561385957613858614627565b5b6000613867868287016135f7565b9350506020613878868287016135f7565b92505060406138898682870161373a565b9150509250925092565b600080604083850312156138aa576138a9614627565b5b60006138b8858286016135f7565b92505060206138c98582860161373a565b9150509250929050565b600080600080604085870312156138ed576138ec614627565b5b600085013567ffffffffffffffff81111561390b5761390a614622565b5b61391787828801613636565b9450945050602085013567ffffffffffffffff81111561393a57613939614622565b5b613946878288016136ba565b925092505092959194509250565b60006020828403121561396a57613969614627565b5b600082013567ffffffffffffffff81111561398857613987614622565b5b6139948482850161368c565b91505092915050565b6000602082840312156139b3576139b2614627565b5b60006139c184828501613710565b91505092915050565b6000806000606084860312156139e3576139e2614627565b5b60006139f186828701613725565b9350506020613a0286828701613725565b9250506040613a1386828701613764565b9150509250925092565b600060208284031215613a3357613a32614627565b5b6000613a418482850161373a565b91505092915050565b600080600060608486031215613a6357613a62614627565b5b6000613a718682870161374f565b9350506020613a828682870161374f565b9250506040613a938682870161374f565b9150509250925092565b6000613aa98383613ac4565b60208301905092915050565b613abe81614438565b82525050565b613acd816143a7565b82525050565b613adc816143a7565b82525050565b6000613aed8261424d565b613af78185614270565b9350613b028361423d565b8060005b83811015613b33578151613b1a8882613a9d565b9750613b2583614263565b925050600181019050613b06565b5085935050505092915050565b613b49816143cb565b82525050565b613b588161444a565b82525050565b6000613b6982614258565b613b738185614281565b9350613b83818560208601614480565b613b8c8161462c565b840191505092915050565b6000613ba4602383614281565b9150613baf8261463d565b604082019050919050565b6000613bc7602083614281565b9150613bd28261468c565b602082019050919050565b6000613bea602a83614281565b9150613bf5826146b5565b604082019050919050565b6000613c0d602283614281565b9150613c1882614704565b604082019050919050565b6000613c30601b83614281565b9150613c3b82614753565b602082019050919050565b6000613c53601d83614281565b9150613c5e8261477c565b602082019050919050565b6000613c76601583614281565b9150613c81826147a5565b602082019050919050565b6000613c99601483614281565b9150613ca4826147ce565b602082019050919050565b6000613cbc601083614281565b9150613cc7826147f7565b602082019050919050565b6000613cdf602183614281565b9150613cea82614820565b604082019050919050565b6000613d02602083614281565b9150613d0d8261486f565b602082019050919050565b6000613d25602983614281565b9150613d3082614898565b604082019050919050565b6000613d48601e83614281565b9150613d53826148e7565b602082019050919050565b6000613d6b602583614281565b9150613d7682614910565b604082019050919050565b6000613d8e602483614281565b9150613d998261495f565b604082019050919050565b6000613db1601783614281565b9150613dbc826149ae565b602082019050919050565b6000613dd4601283614281565b9150613ddf826149d7565b602082019050919050565b613df381614411565b82525050565b613e028161442b565b82525050565b6000602082019050613e1d6000830184613ad3565b92915050565b6000604082019050613e386000830185613ad3565b613e456020830184613ad3565b9392505050565b6000604082019050613e616000830185613ad3565b613e6e6020830184613dea565b9392505050565b600060c082019050613e8a6000830189613ad3565b613e976020830188613dea565b613ea46040830187613b4f565b613eb16060830186613b4f565b613ebe6080830185613ad3565b613ecb60a0830184613dea565b979650505050505050565b6000602082019050613eeb6000830184613b40565b92915050565b60006020820190508181036000830152613f0b8184613b5e565b905092915050565b60006020820190508181036000830152613f2c81613b97565b9050919050565b60006020820190508181036000830152613f4c81613bba565b9050919050565b60006020820190508181036000830152613f6c81613bdd565b9050919050565b60006020820190508181036000830152613f8c81613c00565b9050919050565b60006020820190508181036000830152613fac81613c23565b9050919050565b60006020820190508181036000830152613fcc81613c46565b9050919050565b60006020820190508181036000830152613fec81613c69565b9050919050565b6000602082019050818103600083015261400c81613c8c565b9050919050565b6000602082019050818103600083015261402c81613caf565b9050919050565b6000602082019050818103600083015261404c81613cd2565b9050919050565b6000602082019050818103600083015261406c81613cf5565b9050919050565b6000602082019050818103600083015261408c81613d18565b9050919050565b600060208201905081810360008301526140ac81613d3b565b9050919050565b600060208201905081810360008301526140cc81613d5e565b9050919050565b600060208201905081810360008301526140ec81613d81565b9050919050565b6000602082019050818103600083015261410c81613da4565b9050919050565b6000602082019050818103600083015261412c81613dc7565b9050919050565b60006020820190506141486000830184613dea565b92915050565b60006040820190506141636000830185613dea565b6141706020830184613ab5565b9392505050565b600060a08201905061418c6000830188613dea565b6141996020830187613b4f565b81810360408301526141ab8186613ae2565b90506141ba6060830185613ad3565b6141c76080830184613dea565b9695505050505050565b60006020820190506141e66000830184613df9565b92915050565b60006141f6614207565b905061420282826144b3565b919050565b6000604051905090565b600067ffffffffffffffff82111561422c5761422b6145e4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061429d82614411565b91506142a883614411565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156142dd576142dc614557565b5b828201905092915050565b60006142f382614411565b91506142fe83614411565b92508261430e5761430d614586565b5b828204905092915050565b600061432482614411565b915061432f83614411565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561436857614367614557565b5b828202905092915050565b600061437e82614411565b915061438983614411565b92508282101561439c5761439b614557565b5b828203905092915050565b60006143b2826143f1565b9050919050565b60006143c4826143f1565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006144438261445c565b9050919050565b600061445582614411565b9050919050565b60006144678261446e565b9050919050565b6000614479826143f1565b9050919050565b60005b8381101561449e578082015181840152602081019050614483565b838111156144ad576000848401525b50505050565b6144bc8261462c565b810181811067ffffffffffffffff821117156144db576144da6145e4565b5b80604052505050565b60006144ef82614411565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561452257614521614557565b5b600182019050919050565b60006145388261442b565b915060ff82141561454c5761454b614557565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f42757920616d6f756e742065786365656473206d617820545820616d6f756e74600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f427579696e6720616761696e20746f6f20736f6f6e0000000000000000000000600082015250565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b7f53656c6c696e6720746f6f20736f6f6e00000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f42757920616d6f756e7420756e646572206d696e20545820616d6f756e740000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f74726164696e672069736e2774206f70656e0000000000000000000000000000600082015250565b614a09816143a7565b8114614a1457600080fd5b50565b614a20816143b9565b8114614a2b57600080fd5b50565b614a37816143cb565b8114614a4257600080fd5b50565b614a4e816143d7565b8114614a5957600080fd5b50565b614a6581614411565b8114614a7057600080fd5b50565b614a7c8161441b565b8114614a8757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205e1ec127a8888e0231280ef15191fb921f3bf108191e7f1d41f367e3e9550ead64736f6c63430008060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ea2ca53c07d0e3d28ce376bad6c8467be9383a06

-----Decoded View---------------
Arg [0] : mktWallet (address): 0xEA2cA53C07d0E3D28ce376BAD6c8467be9383A06

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ea2ca53c07d0e3d28ce376bad6c8467be9383a06


Deployed Bytecode Sourcemap

3655:14881:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14112:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6088:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6767:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14256:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6569:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7717:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13751:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6977:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6274:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6472:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11324:344;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16233:189;;;;;;;;;;;;;:::i;:::-;;7076:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:148;;;;;;;;;;;;;:::i;:::-;;6874:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2375:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6179:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16428:409;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12520:682;;;;;;;;;;;;;:::i;:::-;;13436:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6662:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7222:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13575:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16031:190;;;;;;;;;;;;;:::i;:::-;;13214:210;;;;;;;;;;;;;:::i;:::-;;13845:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7397:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14112:132;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14223:12:::1;14196:16;;:40;;;;;;;;;;;;;;;;;;14112:132:::0;:::o;6088:83::-;6125:13;6158:5;;;;;;;;;;;;;;;;;6151:12;;6088:83;:::o;7548:161::-;7623:4;7640:39;7649:12;:10;:12::i;:::-;7663:7;7672:6;7640:8;:39::i;:::-;7697:4;7690:11;;7548:161;;;;:::o;6767:95::-;6813:7;6840:14;;6833:21;;6767:95;:::o;6365:::-;6418:7;4170:16;6438:14;;6365:95;:::o;14256:221::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14351:1:::1;14339:9;:13;14331:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14412:9;14397:12;:24;;;;14437:32;14456:12;;14437:32;;;;;;:::i;:::-;;;;;;;;14256:221:::0;:::o;6569:87::-;6611:7;6638:10;;;;;;;;;;;6631:17;;6569:87;:::o;7717:313::-;7815:4;7832:36;7842:6;7850:9;7861:6;7832:9;:36::i;:::-;7879:121;7888:6;7896:12;:10;:12::i;:::-;7910:89;7948:6;7910:89;;;;;;;;;;;;;;;;;:11;:19;7922:6;7910:19;;;;;;;;;;;;;;;:33;7930:12;:10;:12::i;:::-;7910:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7879:8;:121::i;:::-;8018:4;8011:11;;7717:313;;;;;:::o;13751:88::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13826:5:::1;13811:4;:12;13816:6;13811:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13751:88:::0;:::o;6977:91::-;7021:7;7048:12;;7041:19;;6977:91;:::o;6274:83::-;6315:5;4936:2;6333:16;;6274:83;:::o;6472:85::-;6513:7;6540:9;;6533:16;;6472:85;:::o;11324:344::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11448:11:::1;::::0;::::1;;;;;;;;11447:12;11439:21;;;::::0;::::1;;11500:8;;:15;;11479:10;;:17;;:36;11471:45;;;::::0;::::1;;11532:7;11527:134;11545:10;;:17;;11541:1;:21;;;11527:134;;;11585:64;11608:4;11615:10;;11626:1;11615:13;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11630:8;;11639:1;11630:11;;;;;;;;;:::i;:::-;;;;;;;;11643:5;11585:14;:64::i;:::-;11564:3;;;;;:::i;:::-;;;;11527:134;;;;11324:344:::0;;;;:::o;16233:189::-;16299:10;;;;;;;;;;;16283:26;;:12;:10;:12::i;:::-;:26;;;16275:35;;;;;;16321:26;16350:21;16321:50;;16382:32;16395:18;16382:12;:32::i;:::-;16264:158;16233:189::o;7076:138::-;7142:7;7169:37;7189:7;:16;7197:7;7189:16;;;;;;;;;;;;;;;;7169:19;:37::i;:::-;7162:44;;7076:138;;;:::o;2589:148::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2696:1:::1;2659:40;;2680:6;::::0;::::1;;;;;;;;2659:40;;;;;;;;;;;;2727:1;2710:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2589:148::o:0;6874:91::-;6918:7;6945:12;;6938:19;;6874:91;:::o;2375:79::-;2413:7;2440:6;;;;;;;;;;;2433:13;;2375:79;:::o;6179:87::-;6218:13;6251:7;;;;;;;;;;;;;;;;;6244:14;;6179:87;:::o;16428:409::-;16469:7;16494:11;;;;;;;;;;16486:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;16532:19;16569:14;;;;;;;;;;;16532:52;;16590:14;16606;16625:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16589:54;;;;;16649:21;16672:19;16712:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16696:38;;16704:4;16696:38;;;16695:78;;16758:6;16766;16695:78;;;16739:6;16747;16695:78;16648:125;;;;;;;;16785:47;16818:13;16785:28;16801:11;16785;:15;;:28;;;;:::i;:::-;:32;;:47;;;;:::i;:::-;16778:54;;;;;;;16428:409;:::o;12520:682::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12581:11:::1;::::0;::::1;;;;;;;;12580:12;12572:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12630:35;12687:42;12630:100;;12759:16;12741:15;;:34;;;;;;;;;;;;;;;;;;12786:58;12803:4;12818:15;;;;;;;;;;;4170:16;12786:8;:58::i;:::-;12890:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12872:56;;;12937:4;12944:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12872:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12855:14;;:113;;;;;;;;;;;;;;;;;;12979:15;;;;;;;;;;;:31;;;13018:21;13049:4;13055:24;13073:4;13055:9;:24::i;:::-;13080:1;13082::::0;13084:7:::1;:5;:7::i;:::-;13092:15;12979:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13126:14;;;;;;;;;;;13119:30;;;13158:15;;;;;;;;;;;13176:17;13119:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12561:641;12520:682::o:0;13436:127::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13540:15:::1;13521:16;:34;;;;13436:127:::0;:::o;6662:93::-;6706:7;6733:14;;;;;;;;;;;6726:21;;6662:93;:::o;7222:167::-;7300:4;7317:42;7327:12;:10;:12::i;:::-;7341:9;7352:6;7317:9;:42::i;:::-;7377:4;7370:11;;7222:167;;;;:::o;13575:164::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13649:6:::1;13644:88;13665:5;:12;13661:1;:16;13644:88;;;13716:4;13699;:14;13704:5;13710:1;13704:8;;;;;;;;:::i;:::-;;;;;;;;13699:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13679:3;;;;;:::i;:::-;;;;13644:88;;;;13575:164:::0;:::o;16031:190::-;16097:10;;;;;;;;;;;16081:26;;:12;:10;:12::i;:::-;:26;;;16073:35;;;;;;16119:23;16145:24;16163:4;16145:9;:24::i;:::-;16119:50;;16180:33;16197:15;16180:16;:33::i;:::-;16062:159;16031:190::o;13214:210::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13275:11:::1;::::0;::::1;;;;;;;;13274:12;13266:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13339:4;13325:11;;:18;;;;;;;;;;;;;;;;;;13368:4;13354:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;13393:1;13383:7;;:11;;;;;;;;;;;;;;;;;;13415:1;13405:7;;:11;;;;;;;;;;;;;;;;;;13214:210::o:0;13845:255::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13947:1:::1;13932:12;:16;13924:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14008:36;14038:5;14008:25;14020:12;4170:16;14008:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;13993:12;:51;;;;14060:32;14079:12;;14060:32;;;;;;:::i;:::-;;;;;;;;13845:255:::0;:::o;7397:143::-;7478:7;7505:11;:18;7517:5;7505:18;;;;;;;;;;;;;;;:27;7524:7;7505:27;;;;;;;;;;;;;;;;7498:34;;7397:143;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;8300:423::-;8410:1;8393:19;;:5;:19;;;;8385:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8491:1;8472:21;;:7;:21;;;;8464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8558:4;8541:22;;:5;:22;;;8537:84;;8579:11;;;;;;;;;;8571:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;8537:84;8661:6;8631:11;:18;8643:5;8631:18;;;;;;;;;;;;;;;:27;8650:7;8631:27;;;;;;;;;;;;;;;:36;;;;8699:7;8683:32;;8692:5;8683:32;;;8708:6;8683:32;;;;;;:::i;:::-;;;;;;;;8300:423;;;:::o;8731:2581::-;8835:1;8819:18;;:4;:18;;;;8811:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8912:1;8898:16;;:2;:16;;;;8890:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8982:1;8973:6;:10;8965:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9052:7;:5;:7::i;:::-;9044:15;;:4;:15;;;;:32;;;;;9069:7;:5;:7::i;:::-;9063:13;;:2;:13;;;;9044:32;9040:2076;;;9102:4;:10;9107:4;9102:10;;;;;;;;;;;;;;;;;;;;;;;;;9101:11;:24;;;;;9117:4;:8;9122:2;9117:8;;;;;;;;;;;;;;;;;;;;;;;;;9116:9;9101:24;9093:33;;;;;;9153:14;;;;;;;;;;;9145:22;;:4;:22;;;:56;;;;;9185:15;;;;;;;;;;;9171:30;;:2;:30;;;;9145:56;:84;;;;;9207:18;:22;9226:2;9207:22;;;;;;;;;;;;;;;;;;;;;;;;;9205:24;9145:84;9141:845;;;9273:11;;;;;;;;;;9265:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:12;;9336:6;:22;;9328:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9420:12;;9410:6;:22;;9402:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9500:15;9482:11;:15;9494:2;9482:15;;;;;;;;;;;;;;;;:33;9474:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9592:9;9573:15;:29;;;;:::i;:::-;9554:12;:16;9567:2;9554:16;;;;;;;;;;;;;;;:48;;;;9646:9;9627:15;:29;;;;:::i;:::-;9609:11;:15;9621:2;9609:15;;;;;;;;;;;;;;;:47;;;;9669:20;9692:10;:8;:10::i;:::-;9669:33;;9728:9;;9713:12;:24;9709:271;;;9803:2;9782:10;;:24;;;;;;;;;;;;;;;;;;9826:12;9814:9;:24;;;;9863:63;9880:45;9919:5;9880:34;9897:16;;9880:12;:16;;:34;;;;:::i;:::-;:38;;:45;;;;:::i;:::-;9863:12;:16;;:63;;;;:::i;:::-;9846:14;:80;;;;9939:33;9950:9;;9961:10;;;;;;;;;;;9939:33;;;;;;;:::i;:::-;;;;;;;;9709:271;9231:755;9141:845;10017:10;;;;;;;;;;;10009:18;;:4;:18;;;10005:235;;;10157:1;10145:9;:13;;;;10186:1;10165:10;;:23;;;;;;;;;;;;;;;;;;10200:33;10211:9;;10222:10;;;;;;;;;;;10200:33;;;;;;;:::i;:::-;;;;;;;;10005:235;10268:28;10299:24;10317:4;10299:9;:24::i;:::-;10268:55;;10343:6;;;;;;;;;;;10342:7;:33;;;;;10361:14;;;;;;;;;;;10353:22;;:4;:22;;;;10342:33;:48;;;;;10379:11;;;;;;;;;;;10342:48;10338:765;;;10440:15;10419:12;:18;10432:4;10419:18;;;;;;;;;;;;;;;;:36;10411:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10569:20;10592:10;:8;:10::i;:::-;10569:33;;10640:14;;10625:12;:29;10621:190;;;10695:1;10683:9;:13;;;;10744:1;10723:10;;:23;;;;;;;;;;;;;;;;;;10790:1;10773:14;:18;;;;10621:190;10829:38;10846:20;10829:16;:38::i;:::-;10886:26;10915:21;10886:50;;10979:1;10958:18;:22;:50;;;;;11006:1;10984:24;;:10;;;;;;;;;;;:24;;;;10958:50;10955:133;;;11033:35;11046:21;11033:12;:35::i;:::-;10955:133;10392:711;;10338:765;9078:2038;9040:2076;11126:12;11141:4;11126:19;;11159:18;:24;11178:4;11159:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11187:18;:22;11206:2;11187:22;;;;;;;;;;;;;;;;;;;;;;;;;11159:50;11156:99;;;11237:5;11227:15;;11156:99;11265:39;11280:4;11285:2;11288:6;11296:7;11265:14;:39::i;:::-;8800:2512;8731:2581;;;:::o;1230:190::-;1316:7;1349:1;1344;:6;;1352:12;1336:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1376:9;1392:1;1388;:5;;;;:::i;:::-;1376:17;;1411:1;1404:8;;;1230:190;;;;;:::o;14493:268::-;14606:7;14602:41;;14628:15;:13;:15::i;:::-;14602:41;14655:44;14673:6;14681:9;14692:6;14655:17;:44::i;:::-;14715:7;14711:42;;14737:16;:14;:16::i;:::-;14711:42;14493:268;;;;:::o;12175:333::-;12242:17;12262:23;12281:3;12262:14;12273:2;12262:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12242:43;;12296:10;;;;;;;;;;;:19;;:30;12316:9;12296:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12337:10;;;;;;;;;;;:19;;:44;12357:23;12376:3;12357:14;12368:2;12357:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12337:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12392:16;;;;;;;;;;;:25;;:50;12418:23;12437:3;12418:14;12429:2;12418:6;:10;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;12392:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12458:32;12468:9;12479:10;;;;;;;;;;;12458:32;;;;;;;:::i;:::-;;;;;;;;12221:287;12175:333;:::o;8038:254::-;8105:7;8144;;8133;:18;;8125:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8209:19;8232:10;:8;:10::i;:::-;8209:33;;8260:24;8272:11;8260:7;:11;;:24;;;;:::i;:::-;8253:31;;;8038:254;;;:::o;1428:246::-;1486:7;1515:1;1510;:6;1506:47;;;1540:1;1533:8;;;;1506:47;1563:9;1579:1;1575;:5;;;;:::i;:::-;1563:17;;1608:1;1603;1599;:5;;;;:::i;:::-;:10;1591:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1665:1;1658:8;;;1428:246;;;;;:::o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;;1682:132;;;;:::o;11676:483::-;5446:4;5437:6;;:13;;;;;;;;;;;;;;;;;;11754:21:::1;11792:1;11778:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11754:40;;11823:4;11805;11810:1;11805:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11849:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11839:4;11844:1;11839:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11882:62;11899:4;11914:15;;;;;;;;;;;11932:11;11882:8;:62::i;:::-;11955:15;;;;;;;;;;;:66;;;12036:11;12062:1;12078:4;12105;12125:15;11955:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11743:416;5482:5:::0;5473:6;;:14;;;;;;;;;;;;;;;;;;11676:483;:::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1164:50;;1086:136;;;;:::o;15668:227::-;15726:1;15715:7;;;;;;;;;;;:12;;;:28;;;;;15742:1;15731:7;;;;;;;;;;;:12;;;15715:28;15712:40;;;15745:7;;15712:40;15790:7;;;;;;;;;;;15772:15;;:25;;;;;;;;;;;;;;;;;;15826:7;;;;;;;;;;;15808:15;;:25;;;;;;;;;;;;;;;;;;15864:1;15854:7;;:11;;;;;;;;;;;;;;;;;;15886:1;15876:7;;:11;;;;;;;;;;;;;;;;;;15668:227;:::o;14769:512::-;14872:15;14889:23;14914:12;14928:23;14953:12;14967:13;14984:19;14995:7;14984:10;:19::i;:::-;14871:132;;;;;;;;;;;;15036:28;15056:7;15036;:15;15044:6;15036:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15018:7;:15;15026:6;15018:15;;;;;;;;;;;;;;;:46;;;;15100:39;15123:15;15100:7;:18;15108:9;15100:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15079:7;:18;15087:9;15079:18;;;;;;;;;;;;;;;:60;;;;15155:16;15165:5;15155:9;:16::i;:::-;15186:23;15198:4;15204;15186:11;:23::i;:::-;15246:9;15229:44;;15238:6;15229:44;;;15257:15;15229:44;;;;;;:::i;:::-;;;;;;;;14856:425;;;;;;14769:512;;;:::o;15907:116::-;15963:15;;;;;;;;;;;15953:7;;:25;;;;;;;;;;;;;;;;;;16000:15;;;;;;;;;;;15990:7;;:25;;;;;;;;;;;;;;;;;;15907:116::o;18094:163::-;18135:7;18156:15;18173;18192:19;:17;:19::i;:::-;18155:56;;;;18229:20;18241:7;18229;:11;;:20;;;;:::i;:::-;18222:27;;;;18094:163;:::o;1822:189::-;1908:7;1940:1;1936;:5;1943:12;1928:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1967:9;1983:1;1979;:5;;;;:::i;:::-;1967:17;;2002:1;1995:8;;;1822:189;;;;;:::o;16846:467::-;16905:7;16914;16923;16932;16941;16950;16971:23;16996:12;17010:13;17027:38;17039:7;17048;;;;;;;;;;;17027:38;;17057:7;;;;;;;;;;;17027:38;;:11;:38::i;:::-;16970:95;;;;;;17076:19;17099:10;:8;:10::i;:::-;17076:33;;17121:15;17138:23;17163:12;17179:46;17191:7;17200:4;17206:5;17213:11;17179;:46::i;:::-;17120:105;;;;;;17244:7;17253:15;17270:4;17276:15;17293:4;17299:5;17236:69;;;;;;;;;;;;;;;;;;;16846:467;;;;;;;:::o;899:179::-;957:7;977:9;993:1;989;:5;;;;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1069:1;1062:8;;;899:179;;;;:::o;15289:212::-;15342:19;15365:10;:8;:10::i;:::-;15342:33;;15386:13;15402:22;15412:11;15402:5;:9;;:22;;;;:::i;:::-;15386:38;;15460:33;15487:5;15460:7;:22;15476:4;15460:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15435:7;:22;15451:4;15435:22;;;;;;;;;;;;;;;:58;;;;15331:170;;15289:212;:::o;15509:147::-;15587:17;15599:4;15587:7;;:11;;:17;;;;:::i;:::-;15577:7;:27;;;;15628:20;15643:4;15628:10;;:14;;:20;;;;:::i;:::-;15615:10;:33;;;;15509:147;;:::o;18265:262::-;18315:7;18324;18344:15;18362:7;;18344:25;;18380:15;4170:16;18380:25;;18436:20;4170:16;18436:7;;:11;;:20;;;;:::i;:::-;18426:7;:30;18422:61;;;18466:7;;4170:16;18458:25;;;;;;;;18422:61;18502:7;18511;18494:25;;;;;;18265:262;;;:::o;17321:351::-;17414:7;17423;17432;17452:12;17467:28;17491:3;17467:19;17479:6;17467:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;17452:43;;17506:13;17522:29;17547:3;17522:20;17534:7;17522;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;17506:45;;17562:23;17588:28;17610:5;17588:17;17600:4;17588:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17562:54;;17635:15;17652:4;17658:5;17627:37;;;;;;;;;17321:351;;;;;;;:::o;17680:409::-;17790:7;17799;17808;17828:15;17846:24;17858:11;17846:7;:11;;:24;;;;:::i;:::-;17828:42;;17881:12;17896:21;17905:11;17896:4;:8;;:21;;;;:::i;:::-;17881:36;;17928:13;17944:22;17954:11;17944:5;:9;;:22;;;;:::i;:::-;17928:38;;17977:23;18003:28;18025:5;18003:17;18015:4;18003:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17977:54;;18050:7;18059:15;18076:4;18042:39;;;;;;;;;;17680:409;;;;;;;;:::o;24:722: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;;;404:79;;:::i;:::-;350:2;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;804:87;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;960:80;;;;:::o;1046:155::-;1100:5;1138:6;1125:20;1116:29;;1154:41;1189:5;1154:41;:::i;:::-;1106:95;;;;:::o;1224:568::-;1297:8;1307:6;1357:3;1350:4;1342:6;1338:17;1334:27;1324:2;;1365:79;;:::i;:::-;1324:2;1478:6;1465:20;1455:30;;1508:18;1500:6;1497:30;1494:2;;;1530:79;;:::i;:::-;1494:2;1644:4;1636:6;1632:17;1620:29;;1698:3;1690:4;1682:6;1678:17;1668:8;1664:32;1661:41;1658:2;;;1705:79;;:::i;:::-;1658:2;1314:478;;;;;:::o;1815:370::-;1886:5;1935:3;1928:4;1920:6;1916:17;1912:27;1902:2;;1943:79;;:::i;:::-;1902:2;2060:6;2047:20;2085:94;2175:3;2167:6;2160:4;2152:6;2148:17;2085:94;:::i;:::-;2076:103;;1892:293;;;;;:::o;2208:568::-;2281:8;2291:6;2341:3;2334:4;2326:6;2322:17;2318:27;2308:2;;2349:79;;:::i;:::-;2308:2;2462:6;2449:20;2439:30;;2492:18;2484:6;2481:30;2478:2;;;2514:79;;:::i;:::-;2478:2;2628:4;2620:6;2616:17;2604:29;;2682:3;2674:4;2666:6;2662:17;2652:8;2648:32;2645:41;2642:2;;;2689:79;;:::i;:::-;2642:2;2298:478;;;;;:::o;2782:137::-;2836:5;2867:6;2861:13;2852:22;;2883:30;2907:5;2883:30;:::i;:::-;2842:77;;;;:::o;2925:143::-;2982:5;3013:6;3007:13;2998:22;;3029:33;3056:5;3029:33;:::i;:::-;2988:80;;;;:::o;3074:139::-;3120:5;3158:6;3145:20;3136:29;;3174:33;3201:5;3174:33;:::i;:::-;3126:87;;;;:::o;3219:143::-;3276:5;3307:6;3301:13;3292:22;;3323:33;3350:5;3323:33;:::i;:::-;3282:80;;;;:::o;3368:141::-;3424:5;3455:6;3449:13;3440:22;;3471:32;3497:5;3471:32;:::i;:::-;3430:79;;;;:::o;3515:329::-;3574:6;3623:2;3611:9;3602:7;3598:23;3594:32;3591:2;;;3629:79;;:::i;:::-;3591:2;3749:1;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3720:117;3581:263;;;;:::o;3850:351::-;3920:6;3969:2;3957:9;3948:7;3944:23;3940:32;3937:2;;;3975:79;;:::i;:::-;3937:2;4095:1;4120:64;4176:7;4167:6;4156:9;4152:22;4120:64;:::i;:::-;4110:74;;4066:128;3927:274;;;;:::o;4207:345::-;4274:6;4323:2;4311:9;4302:7;4298:23;4294:32;4291:2;;;4329:79;;:::i;:::-;4291:2;4449:1;4474:61;4527:7;4518:6;4507:9;4503:22;4474:61;:::i;:::-;4464:71;;4420:125;4281:271;;;;:::o;4558:474::-;4626:6;4634;4683:2;4671:9;4662:7;4658:23;4654:32;4651:2;;;4689:79;;:::i;:::-;4651:2;4809:1;4834:53;4879:7;4870:6;4859:9;4855:22;4834:53;:::i;:::-;4824:63;;4780:117;4936:2;4962:53;5007:7;4998:6;4987:9;4983:22;4962:53;:::i;:::-;4952:63;;4907:118;4641:391;;;;;:::o;5038:619::-;5115:6;5123;5131;5180:2;5168:9;5159:7;5155:23;5151:32;5148:2;;;5186:79;;:::i;:::-;5148:2;5306:1;5331:53;5376:7;5367:6;5356:9;5352:22;5331:53;:::i;:::-;5321:63;;5277:117;5433:2;5459:53;5504:7;5495:6;5484:9;5480:22;5459:53;:::i;:::-;5449:63;;5404:118;5561:2;5587:53;5632:7;5623:6;5612:9;5608:22;5587:53;:::i;:::-;5577:63;;5532:118;5138:519;;;;;:::o;5663:474::-;5731:6;5739;5788:2;5776:9;5767:7;5763:23;5759:32;5756:2;;;5794:79;;:::i;:::-;5756:2;5914:1;5939:53;5984:7;5975:6;5964:9;5960:22;5939:53;:::i;:::-;5929:63;;5885:117;6041:2;6067:53;6112:7;6103:6;6092:9;6088:22;6067:53;:::i;:::-;6057:63;;6012:118;5746:391;;;;;:::o;6143:934::-;6265:6;6273;6281;6289;6338:2;6326:9;6317:7;6313:23;6309:32;6306:2;;;6344:79;;:::i;:::-;6306:2;6492:1;6481:9;6477:17;6464:31;6522:18;6514:6;6511:30;6508:2;;;6544:79;;:::i;:::-;6508:2;6657:80;6729:7;6720:6;6709:9;6705:22;6657:80;:::i;:::-;6639:98;;;;6435:312;6814:2;6803:9;6799:18;6786:32;6845:18;6837:6;6834:30;6831:2;;;6867:79;;:::i;:::-;6831:2;6980:80;7052:7;7043:6;7032:9;7028:22;6980:80;:::i;:::-;6962:98;;;;6757:313;6296:781;;;;;;;:::o;7083:539::-;7167:6;7216:2;7204:9;7195:7;7191:23;7187:32;7184:2;;;7222:79;;:::i;:::-;7184:2;7370:1;7359:9;7355:17;7342:31;7400:18;7392:6;7389:30;7386:2;;;7422:79;;:::i;:::-;7386:2;7527:78;7597:7;7588:6;7577:9;7573:22;7527:78;:::i;:::-;7517:88;;7313:302;7174:448;;;;:::o;7628:345::-;7695:6;7744:2;7732:9;7723:7;7719:23;7715:32;7712:2;;;7750:79;;:::i;:::-;7712:2;7870:1;7895:61;7948:7;7939:6;7928:9;7924:22;7895:61;:::i;:::-;7885:71;;7841:125;7702:271;;;;:::o;7979:661::-;8066:6;8074;8082;8131:2;8119:9;8110:7;8106:23;8102:32;8099:2;;;8137:79;;:::i;:::-;8099:2;8257:1;8282:64;8338:7;8329:6;8318:9;8314:22;8282:64;:::i;:::-;8272:74;;8228:128;8395:2;8421:64;8477:7;8468:6;8457:9;8453:22;8421:64;:::i;:::-;8411:74;;8366:129;8534:2;8560:63;8615:7;8606:6;8595:9;8591:22;8560:63;:::i;:::-;8550:73;;8505:128;8089:551;;;;;:::o;8646:329::-;8705:6;8754:2;8742:9;8733:7;8729:23;8725:32;8722:2;;;8760:79;;:::i;:::-;8722:2;8880:1;8905:53;8950:7;8941:6;8930:9;8926:22;8905:53;:::i;:::-;8895:63;;8851:117;8712:263;;;;:::o;8981:663::-;9069:6;9077;9085;9134:2;9122:9;9113:7;9109:23;9105:32;9102:2;;;9140:79;;:::i;:::-;9102:2;9260:1;9285:64;9341:7;9332:6;9321:9;9317:22;9285:64;:::i;:::-;9275:74;;9231:128;9398:2;9424:64;9480:7;9471:6;9460:9;9456:22;9424:64;:::i;:::-;9414:74;;9369:129;9537:2;9563:64;9619:7;9610:6;9599:9;9595:22;9563:64;:::i;:::-;9553:74;;9508:129;9092:552;;;;;:::o;9650:179::-;9719:10;9740:46;9782:3;9774:6;9740:46;:::i;:::-;9818:4;9813:3;9809:14;9795:28;;9730:99;;;;:::o;9835:147::-;9930:45;9969:5;9930:45;:::i;:::-;9925:3;9918:58;9908:74;;:::o;9988:108::-;10065:24;10083:5;10065:24;:::i;:::-;10060:3;10053:37;10043:53;;:::o;10102:118::-;10189:24;10207:5;10189:24;:::i;:::-;10184:3;10177:37;10167:53;;:::o;10256:732::-;10375:3;10404:54;10452:5;10404:54;:::i;:::-;10474:86;10553:6;10548:3;10474:86;:::i;:::-;10467:93;;10584:56;10634:5;10584:56;:::i;:::-;10663:7;10694:1;10679:284;10704:6;10701:1;10698:13;10679:284;;;10780:6;10774:13;10807:63;10866:3;10851:13;10807:63;:::i;:::-;10800:70;;10893:60;10946:6;10893:60;:::i;:::-;10883:70;;10739:224;10726:1;10723;10719:9;10714:14;;10679:284;;;10683:14;10979:3;10972:10;;10380:608;;;;;;;:::o;10994:109::-;11075:21;11090:5;11075:21;:::i;:::-;11070:3;11063:34;11053:50;;:::o;11109:147::-;11204:45;11243:5;11204:45;:::i;:::-;11199:3;11192:58;11182:74;;:::o;11262:364::-;11350:3;11378:39;11411:5;11378:39;:::i;:::-;11433:71;11497:6;11492:3;11433:71;:::i;:::-;11426:78;;11513:52;11558:6;11553:3;11546:4;11539:5;11535:16;11513:52;:::i;:::-;11590:29;11612:6;11590:29;:::i;:::-;11585:3;11581:39;11574:46;;11354:272;;;;;:::o;11632:366::-;11774:3;11795:67;11859:2;11854:3;11795:67;:::i;:::-;11788:74;;11871:93;11960:3;11871:93;:::i;:::-;11989:2;11984:3;11980:12;11973:19;;11778:220;;;:::o;12004:366::-;12146:3;12167:67;12231:2;12226:3;12167:67;:::i;:::-;12160:74;;12243:93;12332:3;12243:93;:::i;:::-;12361:2;12356:3;12352:12;12345:19;;12150:220;;;:::o;12376:366::-;12518:3;12539:67;12603:2;12598:3;12539:67;:::i;:::-;12532:74;;12615:93;12704:3;12615:93;:::i;:::-;12733:2;12728:3;12724:12;12717:19;;12522:220;;;:::o;12748:366::-;12890:3;12911:67;12975:2;12970:3;12911:67;:::i;:::-;12904:74;;12987:93;13076:3;12987:93;:::i;:::-;13105:2;13100:3;13096:12;13089:19;;12894:220;;;:::o;13120:366::-;13262:3;13283:67;13347:2;13342:3;13283:67;:::i;:::-;13276:74;;13359:93;13448:3;13359:93;:::i;:::-;13477:2;13472:3;13468:12;13461:19;;13266:220;;;:::o;13492:366::-;13634:3;13655:67;13719:2;13714:3;13655:67;:::i;:::-;13648:74;;13731:93;13820:3;13731:93;:::i;:::-;13849:2;13844:3;13840:12;13833:19;;13638:220;;;:::o;13864:366::-;14006:3;14027:67;14091:2;14086:3;14027:67;:::i;:::-;14020:74;;14103:93;14192:3;14103:93;:::i;:::-;14221:2;14216:3;14212:12;14205:19;;14010:220;;;:::o;14236:366::-;14378:3;14399:67;14463:2;14458:3;14399:67;:::i;:::-;14392:74;;14475:93;14564:3;14475:93;:::i;:::-;14593:2;14588:3;14584:12;14577:19;;14382:220;;;:::o;14608:366::-;14750:3;14771:67;14835:2;14830:3;14771:67;:::i;:::-;14764:74;;14847:93;14936:3;14847:93;:::i;:::-;14965:2;14960:3;14956:12;14949:19;;14754:220;;;:::o;14980:366::-;15122:3;15143:67;15207:2;15202:3;15143:67;:::i;:::-;15136:74;;15219:93;15308:3;15219:93;:::i;:::-;15337:2;15332:3;15328:12;15321:19;;15126:220;;;:::o;15352:366::-;15494:3;15515:67;15579:2;15574:3;15515:67;:::i;:::-;15508:74;;15591:93;15680:3;15591:93;:::i;:::-;15709:2;15704:3;15700:12;15693:19;;15498:220;;;:::o;15724:366::-;15866:3;15887:67;15951:2;15946:3;15887:67;:::i;:::-;15880:74;;15963:93;16052:3;15963:93;:::i;:::-;16081:2;16076:3;16072:12;16065:19;;15870:220;;;:::o;16096:366::-;16238:3;16259:67;16323:2;16318:3;16259:67;:::i;:::-;16252:74;;16335:93;16424:3;16335:93;:::i;:::-;16453:2;16448:3;16444:12;16437:19;;16242:220;;;:::o;16468:366::-;16610:3;16631:67;16695:2;16690:3;16631:67;:::i;:::-;16624:74;;16707:93;16796:3;16707:93;:::i;:::-;16825:2;16820:3;16816:12;16809:19;;16614:220;;;:::o;16840:366::-;16982:3;17003:67;17067:2;17062:3;17003:67;:::i;:::-;16996:74;;17079:93;17168:3;17079:93;:::i;:::-;17197:2;17192:3;17188:12;17181:19;;16986:220;;;:::o;17212:366::-;17354:3;17375:67;17439:2;17434:3;17375:67;:::i;:::-;17368:74;;17451:93;17540:3;17451:93;:::i;:::-;17569:2;17564:3;17560:12;17553:19;;17358:220;;;:::o;17584:366::-;17726:3;17747:67;17811:2;17806:3;17747:67;:::i;:::-;17740:74;;17823:93;17912:3;17823:93;:::i;:::-;17941:2;17936:3;17932:12;17925:19;;17730:220;;;:::o;17956:118::-;18043:24;18061:5;18043:24;:::i;:::-;18038:3;18031:37;18021:53;;:::o;18080:112::-;18163:22;18179:5;18163:22;:::i;:::-;18158:3;18151:35;18141:51;;:::o;18198:222::-;18291:4;18329:2;18318:9;18314:18;18306:26;;18342:71;18410:1;18399:9;18395:17;18386:6;18342:71;:::i;:::-;18296:124;;;;:::o;18426:332::-;18547:4;18585:2;18574:9;18570:18;18562:26;;18598:71;18666:1;18655:9;18651:17;18642:6;18598:71;:::i;:::-;18679:72;18747:2;18736:9;18732:18;18723:6;18679:72;:::i;:::-;18552:206;;;;;:::o;18764:332::-;18885:4;18923:2;18912:9;18908:18;18900:26;;18936:71;19004:1;18993:9;18989:17;18980:6;18936:71;:::i;:::-;19017:72;19085:2;19074:9;19070:18;19061:6;19017:72;:::i;:::-;18890:206;;;;;:::o;19102:807::-;19351:4;19389:3;19378:9;19374:19;19366:27;;19403:71;19471:1;19460:9;19456:17;19447:6;19403:71;:::i;:::-;19484:72;19552:2;19541:9;19537:18;19528:6;19484:72;:::i;:::-;19566:80;19642:2;19631:9;19627:18;19618:6;19566:80;:::i;:::-;19656;19732:2;19721:9;19717:18;19708:6;19656:80;:::i;:::-;19746:73;19814:3;19803:9;19799:19;19790:6;19746:73;:::i;:::-;19829;19897:3;19886:9;19882:19;19873:6;19829:73;:::i;:::-;19356:553;;;;;;;;;:::o;19915:210::-;20002:4;20040:2;20029:9;20025:18;20017:26;;20053:65;20115:1;20104:9;20100:17;20091:6;20053:65;:::i;:::-;20007:118;;;;:::o;20131:313::-;20244:4;20282:2;20271:9;20267:18;20259:26;;20331:9;20325:4;20321:20;20317:1;20306:9;20302:17;20295:47;20359:78;20432:4;20423:6;20359:78;:::i;:::-;20351:86;;20249:195;;;;:::o;20450:419::-;20616:4;20654:2;20643:9;20639:18;20631:26;;20703:9;20697:4;20693:20;20689:1;20678:9;20674:17;20667:47;20731:131;20857:4;20731:131;:::i;:::-;20723:139;;20621:248;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;21046:248;;;:::o;21300:419::-;21466:4;21504:2;21493:9;21489:18;21481:26;;21553:9;21547:4;21543:20;21539:1;21528:9;21524:17;21517:47;21581:131;21707:4;21581:131;:::i;:::-;21573:139;;21471:248;;;:::o;21725:419::-;21891:4;21929:2;21918:9;21914:18;21906:26;;21978:9;21972:4;21968:20;21964:1;21953:9;21949:17;21942:47;22006:131;22132:4;22006:131;:::i;:::-;21998:139;;21896:248;;;:::o;22150:419::-;22316:4;22354:2;22343:9;22339:18;22331:26;;22403:9;22397:4;22393:20;22389:1;22378:9;22374:17;22367:47;22431:131;22557:4;22431:131;:::i;:::-;22423:139;;22321:248;;;:::o;22575:419::-;22741:4;22779:2;22768:9;22764:18;22756:26;;22828:9;22822:4;22818:20;22814:1;22803:9;22799:17;22792:47;22856:131;22982:4;22856:131;:::i;:::-;22848:139;;22746:248;;;:::o;23000:419::-;23166:4;23204:2;23193:9;23189:18;23181:26;;23253:9;23247:4;23243:20;23239:1;23228:9;23224:17;23217:47;23281:131;23407:4;23281:131;:::i;:::-;23273:139;;23171:248;;;:::o;23425:419::-;23591:4;23629:2;23618:9;23614:18;23606:26;;23678:9;23672:4;23668:20;23664:1;23653:9;23649:17;23642:47;23706:131;23832:4;23706:131;:::i;:::-;23698:139;;23596:248;;;:::o;23850:419::-;24016:4;24054:2;24043:9;24039:18;24031:26;;24103:9;24097:4;24093:20;24089:1;24078:9;24074:17;24067:47;24131:131;24257:4;24131:131;:::i;:::-;24123:139;;24021:248;;;:::o;24275:419::-;24441:4;24479:2;24468:9;24464:18;24456:26;;24528:9;24522:4;24518:20;24514:1;24503:9;24499:17;24492:47;24556:131;24682:4;24556:131;:::i;:::-;24548:139;;24446:248;;;:::o;24700:419::-;24866:4;24904:2;24893:9;24889:18;24881:26;;24953:9;24947:4;24943:20;24939:1;24928:9;24924:17;24917:47;24981:131;25107:4;24981:131;:::i;:::-;24973:139;;24871:248;;;:::o;25125:419::-;25291:4;25329:2;25318:9;25314:18;25306:26;;25378:9;25372:4;25368:20;25364:1;25353:9;25349:17;25342:47;25406:131;25532:4;25406:131;:::i;:::-;25398:139;;25296:248;;;:::o;25550:419::-;25716:4;25754:2;25743:9;25739:18;25731:26;;25803:9;25797:4;25793:20;25789:1;25778:9;25774:17;25767:47;25831:131;25957:4;25831:131;:::i;:::-;25823:139;;25721:248;;;:::o;25975:419::-;26141:4;26179:2;26168:9;26164:18;26156:26;;26228:9;26222:4;26218:20;26214:1;26203:9;26199:17;26192:47;26256:131;26382:4;26256:131;:::i;:::-;26248:139;;26146:248;;;:::o;26400:419::-;26566:4;26604:2;26593:9;26589:18;26581:26;;26653:9;26647:4;26643:20;26639:1;26628:9;26624:17;26617:47;26681:131;26807:4;26681:131;:::i;:::-;26673:139;;26571:248;;;:::o;26825:419::-;26991:4;27029:2;27018:9;27014:18;27006:26;;27078:9;27072:4;27068:20;27064:1;27053:9;27049:17;27042:47;27106:131;27232:4;27106:131;:::i;:::-;27098:139;;26996:248;;;:::o;27250:419::-;27416:4;27454:2;27443:9;27439:18;27431:26;;27503:9;27497:4;27493:20;27489:1;27478:9;27474:17;27467:47;27531:131;27657:4;27531:131;:::i;:::-;27523:139;;27421:248;;;:::o;27675:222::-;27768:4;27806:2;27795:9;27791:18;27783:26;;27819:71;27887:1;27876:9;27872:17;27863:6;27819:71;:::i;:::-;27773:124;;;;:::o;27903:348::-;28032:4;28070:2;28059:9;28055:18;28047:26;;28083:71;28151:1;28140:9;28136:17;28127:6;28083:71;:::i;:::-;28164:80;28240:2;28229:9;28225:18;28216:6;28164:80;:::i;:::-;28037:214;;;;;:::o;28257:831::-;28520:4;28558:3;28547:9;28543:19;28535:27;;28572:71;28640:1;28629:9;28625:17;28616:6;28572:71;:::i;:::-;28653:80;28729:2;28718:9;28714:18;28705:6;28653:80;:::i;:::-;28780:9;28774:4;28770:20;28765:2;28754:9;28750:18;28743:48;28808:108;28911:4;28902:6;28808:108;:::i;:::-;28800:116;;28926:72;28994:2;28983:9;28979:18;28970:6;28926:72;:::i;:::-;29008:73;29076:3;29065:9;29061:19;29052:6;29008:73;:::i;:::-;28525:563;;;;;;;;:::o;29094:214::-;29183:4;29221:2;29210:9;29206:18;29198:26;;29234:67;29298:1;29287:9;29283:17;29274:6;29234:67;:::i;:::-;29188:120;;;;:::o;29314:129::-;29348:6;29375:20;;:::i;:::-;29365:30;;29404:33;29432:4;29424:6;29404:33;:::i;:::-;29355:88;;;:::o;29449:75::-;29482:6;29515:2;29509:9;29499:19;;29489:35;:::o;29530:311::-;29607:4;29697:18;29689:6;29686:30;29683:2;;;29719:18;;:::i;:::-;29683:2;29769:4;29761:6;29757:17;29749:25;;29829:4;29823;29819:15;29811:23;;29612:229;;;:::o;29847:132::-;29914:4;29937:3;29929:11;;29967:4;29962:3;29958:14;29950:22;;29919:60;;;:::o;29985:114::-;30052:6;30086:5;30080:12;30070:22;;30059:40;;;:::o;30105:99::-;30157:6;30191:5;30185:12;30175:22;;30164:40;;;:::o;30210:113::-;30280:4;30312;30307:3;30303:14;30295:22;;30285:38;;;:::o;30329:184::-;30428:11;30462:6;30457:3;30450:19;30502:4;30497:3;30493:14;30478:29;;30440:73;;;;:::o;30519:169::-;30603:11;30637:6;30632:3;30625:19;30677:4;30672:3;30668:14;30653:29;;30615:73;;;;:::o;30694:305::-;30734:3;30753:20;30771:1;30753:20;:::i;:::-;30748:25;;30787:20;30805:1;30787:20;:::i;:::-;30782:25;;30941:1;30873:66;30869:74;30866:1;30863:81;30860:2;;;30947:18;;:::i;:::-;30860:2;30991:1;30988;30984:9;30977:16;;30738:261;;;;:::o;31005:185::-;31045:1;31062:20;31080:1;31062:20;:::i;:::-;31057:25;;31096:20;31114:1;31096:20;:::i;:::-;31091:25;;31135:1;31125:2;;31140:18;;:::i;:::-;31125:2;31182:1;31179;31175:9;31170:14;;31047:143;;;;:::o;31196:348::-;31236:7;31259:20;31277:1;31259:20;:::i;:::-;31254:25;;31293:20;31311:1;31293:20;:::i;:::-;31288:25;;31481:1;31413:66;31409:74;31406:1;31403:81;31398:1;31391:9;31384:17;31380:105;31377:2;;;31488:18;;:::i;:::-;31377:2;31536:1;31533;31529:9;31518:20;;31244:300;;;;:::o;31550:191::-;31590:4;31610:20;31628:1;31610:20;:::i;:::-;31605:25;;31644:20;31662:1;31644:20;:::i;:::-;31639:25;;31683:1;31680;31677:8;31674:2;;;31688:18;;:::i;:::-;31674:2;31733:1;31730;31726:9;31718:17;;31595:146;;;;:::o;31747:96::-;31784:7;31813:24;31831:5;31813:24;:::i;:::-;31802:35;;31792:51;;;:::o;31849:104::-;31894:7;31923:24;31941:5;31923:24;:::i;:::-;31912:35;;31902:51;;;:::o;31959:90::-;31993:7;32036:5;32029:13;32022:21;32011:32;;32001:48;;;:::o;32055:114::-;32092:7;32132:30;32125:5;32121:42;32110:53;;32100:69;;;:::o;32175:126::-;32212:7;32252:42;32245:5;32241:54;32230:65;;32220:81;;;:::o;32307:77::-;32344:7;32373:5;32362:16;;32352:32;;;:::o;32390:93::-;32426:7;32466:10;32459:5;32455:22;32444:33;;32434:49;;;:::o;32489:86::-;32524:7;32564:4;32557:5;32553:16;32542:27;;32532:43;;;:::o;32581:134::-;32639:9;32672:37;32703:5;32672:37;:::i;:::-;32659:50;;32649:66;;;:::o;32721:121::-;32779:9;32812:24;32830:5;32812:24;:::i;:::-;32799:37;;32789:53;;;:::o;32848:126::-;32898:9;32931:37;32962:5;32931:37;:::i;:::-;32918:50;;32908:66;;;:::o;32980:113::-;33030:9;33063:24;33081:5;33063:24;:::i;:::-;33050:37;;33040:53;;;:::o;33099:307::-;33167:1;33177:113;33191:6;33188:1;33185:13;33177:113;;;33276:1;33271:3;33267:11;33261:18;33257:1;33252:3;33248:11;33241:39;33213:2;33210:1;33206:10;33201:15;;33177:113;;;33308:6;33305:1;33302:13;33299:2;;;33388:1;33379:6;33374:3;33370:16;33363:27;33299:2;33148:258;;;;:::o;33412:281::-;33495:27;33517:4;33495:27;:::i;:::-;33487:6;33483:40;33625:6;33613:10;33610:22;33589:18;33577:10;33574:34;33571:62;33568:2;;;33636:18;;:::i;:::-;33568:2;33676:10;33672:2;33665:22;33455:238;;;:::o;33699:233::-;33738:3;33761:24;33779:5;33761:24;:::i;:::-;33752:33;;33807:66;33800:5;33797:77;33794:2;;;33877:18;;:::i;:::-;33794:2;33924:1;33917:5;33913:13;33906:20;;33742:190;;;:::o;33938:167::-;33975:3;33998:22;34014:5;33998:22;:::i;:::-;33989:31;;34042:4;34035:5;34032:15;34029:2;;;34050:18;;:::i;:::-;34029:2;34097:1;34090:5;34086:13;34079:20;;33979:126;;;:::o;34111:180::-;34159:77;34156:1;34149:88;34256:4;34253:1;34246:15;34280:4;34277:1;34270:15;34297:180;34345:77;34342:1;34335:88;34442:4;34439:1;34432:15;34466:4;34463:1;34456:15;34483:180;34531:77;34528:1;34521:88;34628:4;34625:1;34618:15;34652:4;34649:1;34642:15;34669:180;34717:77;34714:1;34707:88;34814:4;34811:1;34804:15;34838:4;34835:1;34828:15;34855:117;34964:1;34961;34954:12;34978:117;35087:1;35084;35077:12;35101:117;35210:1;35207;35200:12;35224:117;35333:1;35330;35323:12;35347:117;35456:1;35453;35446:12;35470:102;35511:6;35562:2;35558:7;35553:2;35546:5;35542:14;35538:28;35528:38;;35518:54;;;:::o;35578:222::-;35718:34;35714:1;35706:6;35702:14;35695:58;35787:5;35782:2;35774:6;35770:15;35763:30;35684:116;:::o;35806:182::-;35946:34;35942:1;35934:6;35930:14;35923:58;35912:76;:::o;35994:229::-;36134:34;36130:1;36122:6;36118:14;36111:58;36203:12;36198:2;36190:6;36186:15;36179:37;36100:123;:::o;36229:221::-;36369:34;36365:1;36357:6;36353:14;36346:58;36438:4;36433:2;36425:6;36421:15;36414:29;36335:115;:::o;36456:177::-;36596:29;36592:1;36584:6;36580:14;36573:53;36562:71;:::o;36639:179::-;36779:31;36775:1;36767:6;36763:14;36756:55;36745:73;:::o;36824:171::-;36964:23;36960:1;36952:6;36948:14;36941:47;36930:65;:::o;37001:170::-;37141:22;37137:1;37129:6;37125:14;37118:46;37107:64;:::o;37177:166::-;37317:18;37313:1;37305:6;37301:14;37294:42;37283:60;:::o;37349:220::-;37489:34;37485:1;37477:6;37473:14;37466:58;37558:3;37553:2;37545:6;37541:15;37534:28;37455:114;:::o;37575:182::-;37715:34;37711:1;37703:6;37699:14;37692:58;37681:76;:::o;37763:228::-;37903:34;37899:1;37891:6;37887:14;37880:58;37972:11;37967:2;37959:6;37955:15;37948:36;37869:122;:::o;37997:180::-;38137:32;38133:1;38125:6;38121:14;38114:56;38103:74;:::o;38183:224::-;38323:34;38319:1;38311:6;38307:14;38300:58;38392:7;38387:2;38379:6;38375:15;38368:32;38289:118;:::o;38413:223::-;38553:34;38549:1;38541:6;38537:14;38530:58;38622:6;38617:2;38609:6;38605:15;38598:31;38519:117;:::o;38642:173::-;38782:25;38778:1;38770:6;38766:14;38759:49;38748:67;:::o;38821:168::-;38961:20;38957:1;38949:6;38945:14;38938:44;38927:62;:::o;38995:122::-;39068:24;39086:5;39068:24;:::i;:::-;39061:5;39058:35;39048:2;;39107:1;39104;39097:12;39048:2;39038:79;:::o;39123:138::-;39204:32;39230:5;39204:32;:::i;:::-;39197:5;39194:43;39184:2;;39251:1;39248;39241:12;39184:2;39174:87;:::o;39267:116::-;39337:21;39352:5;39337:21;:::i;:::-;39330:5;39327:32;39317:2;;39373:1;39370;39363:12;39317:2;39307:76;:::o;39389:122::-;39462:24;39480:5;39462:24;:::i;:::-;39455:5;39452:35;39442:2;;39501:1;39498;39491:12;39442:2;39432:79;:::o;39517:122::-;39590:24;39608:5;39590:24;:::i;:::-;39583:5;39580:35;39570:2;;39629:1;39626;39619:12;39570:2;39560:79;:::o;39645:120::-;39717:23;39734:5;39717:23;:::i;:::-;39710:5;39707:34;39697:2;;39755:1;39752;39745:12;39697:2;39687:78;:::o

Swarm Source

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