ETH Price: $3,109.98 (-0.18%)

Token

0xbased (0xb)
 

Overview

Max Total Supply

100,000,000 0xb

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 5 Decimals)

Filtered by Token Holder
sadinoel.eth
Balance
0.60824 0xb

Value
$0.00
0xfDc27a55425718097e61924c2A604b5f694e2B8B
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:
ERC20

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-16
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// Twitter: https://twitter.com/0xBased290415
// Website: https://0xbased.io/
// Docs: https://docs.0xbased.io/

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

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapTokensForExactETH(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    
    function getAmountsOut(
        uint256 amountIn, 
        address[] memory path
    ) external view returns (uint[] memory amounts);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
    ) external view returns (uint[] memory amounts);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address public owner;
    address private vesting;
    uint256 private claim_count_1 = 0;
    uint256 private claim_count_2 = 0;
    uint256 private deploy_timestamp;
    uint256 private vesting_period = 30*24*60*60*2; //seconds
    uint256 private vesting_balance;
    uint256 private claim_amount;
    address private marketing_1 = 0x544FdE36ED7991F91510B0Ab96A449cC09a63EAb;
    address private marketing_2 = 0xEd26FCc338c79587b727C8dd84b1623924B7420e;
    uint256 private _totalSupply;
    string  private _name;
    string  private _symbol;
    uint256 public buy_fee  = 250;
    uint256 public sell_fee = 300;  

    uint256 public maxBuySell; 
    uint256 private swapThreshold = 0;

    bool public inSwapAndLiquify = false;
    bool public feeSwapEnable = false;

    address private constant RouterV2 = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;      
    address private constant WrappedNativeToken = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;  

    function getPoolAddress() public view returns (address) {        
        address poolAddress = IUniswapV2Factory(IUniswapV2Router(RouterV2).factory()).getPair(address(this), WrappedNativeToken);        
        return poolAddress;
    }
    function getAmountOutMin(uint256 _amount) public view returns (uint256) {
		address[] memory path;
		path = new address[](2);
		path[0] = address(this);
		path[1] = IUniswapV2Router(RouterV2).WETH();
		uint256[] memory amountOutMins = IUniswapV2Router(RouterV2).getAmountsOut(_amount, path);
		return amountOutMins[path.length - 1];
	}   
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    function swapTokensForETH() public  {
        IERC20(address(this)).approve(RouterV2, type(uint256).max);
        uint256 tokenBalance = balanceOf(address(this)) - vesting_balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = IUniswapV2Router(RouterV2).WETH();
        IUniswapV2Router(RouterV2).swapExactTokensForETH(
            tokenBalance,
            1,
            path,
            address(this),
            block.timestamp
        );
    }
    modifier onlyOwner() {
        require(owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function claim_1() public {
        require(marketing_1 == msg.sender, "Ownable: caller is not the vesting");
        require((block.timestamp - deploy_timestamp) / vesting_period > claim_count_1 , "You can't brand that much in this vesting period");
        require(4 > claim_count_1 , "Vesting for this wallet is closed");
        vesting_balance - claim_amount;
        IERC20(address(this)).transfer(marketing_1, claim_amount);
        claim_count_1++;
    }
    function claim_2() public {
        require(marketing_2 == msg.sender, "Ownable: caller is not the vesting");
        require((block.timestamp - deploy_timestamp) / vesting_period > claim_count_2 , "You can't brand that much in this vesting period");
        require(4 > claim_count_2 , "Vesting for this wallet is closed");
        vesting_balance - claim_amount;
        IERC20(address(this)).transfer(marketing_2, claim_amount);
        claim_count_2++;
    }
    function setFees_15_20() public onlyOwner {                
        buy_fee  = 150;  
        sell_fee = 200;  
    }
    function setFees_10_10() public onlyOwner {                
        buy_fee  = 100;
        sell_fee = 100;
    }
    function setFees__0_8__1_2() public onlyOwner {                
        buy_fee  = 8;
        sell_fee = 12; 
    }
    function removeAllFees() public onlyOwner {
        buy_fee  = 0;
        sell_fee = 0; 
    }
    function RemoveAllLimits() public onlyOwner {
       maxBuySell = 0;
    }
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function exclude_from_fee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }    
    function include_in_fee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }  

    constructor() {
        _name = "0xbased";
        _symbol = "0xb";
        
        uint256 owner_balance = 92000000*10**5;
        vesting_balance = 8000000*10**5;    
        claim_amount = vesting_balance / 8;
        _balances[msg.sender] = owner_balance;
        _balances[address(this)] = vesting_balance;
        emit Transfer(address(0), msg.sender, owner_balance);
        emit Transfer(address(0), address(this), vesting_balance);
       
        _totalSupply = vesting_balance + owner_balance;
        maxBuySell =  _totalSupply * 2 / 100;
        owner = msg.sender;

        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[marketing_1] = true;
        _isExcludedFromFee[marketing_2] = true;
        _isExcludedFromFee[address(this)] = true;
        deploy_timestamp = block.timestamp;

        // create pool
        IUniswapV2Factory(IUniswapV2Router(RouterV2).factory()).createPair(address(this), WrappedNativeToken);       
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    } 
    function decimals() public view virtual override returns (uint8) {
        return 5;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address _owner = _msgSender();
        _transfer(_owner, to, amount);
        return true;
    }
    function allowance(address _owner, address spender) public view virtual override returns (uint256) {
        return _allowances[_owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address _owner = _msgSender();
        _approve(_owner, spender, amount);
        return true;
    }
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address _owner = _msgSender();
        _approve(_owner, spender, allowance(_owner, spender) + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address _owner = _msgSender();
        uint256 currentAllowance = allowance(_owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");      
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");

        //swap fees
        if (feeSwapEnable){
            uint256 AmountOutMin = getAmountOutMin(_balances[address(this)] - vesting_balance);                
            if(AmountOutMin > swapThreshold &&  !inSwapAndLiquify &&  from != getPoolAddress()){
                inSwapAndLiquify = true;
                swapTokensForETH();
                inSwapAndLiquify = false;    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to] || inSwapAndLiquify) {           
                _balances[from] = fromBalance - amount;
                _balances[to] += amount;        
            emit Transfer(from, to, amount);
        } else {             
                if (to == getPoolAddress() || from == getPoolAddress()) {
                    uint256 _this_fee;   
                    if(maxBuySell > 0) require(maxBuySell >= amount, "ERC20: The amount of the transfer is more than allowed");
                    if(to == getPoolAddress()) _this_fee = sell_fee; //if sell 
                    if(from == getPoolAddress()) _this_fee = buy_fee; //if buy                    
                
                    uint256 _amount = amount * (1000 - _this_fee) / 1000;
                    _balances[from] = fromBalance - amount;
                    _balances[to]   += _amount;
                    emit Transfer(from, to, _amount);
            
                    uint256 _this_fee_value  = amount * _this_fee  / 1000;               
                    _balances[address(this)] += _this_fee_value;                   
                } else { //if transfer             
                    _balances[from] = fromBalance - amount;
                    _balances[to] += amount;               
                    emit Transfer(from, to, amount);
                } 
            }
         // send fees   
         if(address(this).balance > 1 ){
            uint256 send_balance = address(this).balance / 2;
            payable(marketing_1).transfer(send_balance);
            payable(marketing_2).transfer(send_balance);
         }    
    }
    function set_swapThresholdx(uint256 _swapThreshold) public onlyOwner {
        swapThreshold = _swapThreshold;
    }
    function flipFeeSwapEnable() public onlyOwner {
        feeSwapEnable = !feeSwapEnable;
    }
    function _approve(address _owner, address spender, uint256 amount) internal virtual {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[_owner][spender] = amount;
        emit Approval(_owner, spender, amount);
    }
    function _spendAllowance(address _owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(_owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(_owner, spender, currentAllowance - amount);
            }
        }
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":"RemoveAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim_1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"exclude_from_fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeSwapEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipFeeSwapEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getAmountOutMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"include_in_fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuySell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sell_fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setFees_10_10","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFees_15_20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setFees__0_8__1_2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapThreshold","type":"uint256"}],"name":"set_swapThresholdx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensForETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006005556000600655624f1a0060085573544fde36ed7991f91510b0ab96a449cc09a63eab600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ed26fcc338c79587b727c8dd84b1623924b7420e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060fa60105561012c60115560006013556000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055503480156200011257600080fd5b506040518060400160405280600781526020017f3078626173656400000000000000000000000000000000000000000000000000815250600e9081620001599190620008ee565b506040518060400160405280600381526020017f3078620000000000000000000000000000000000000000000000000000000000815250600f9081620001a09190620008ee565b50600065085e0abb6000905064ba43b740006009819055506008600954620001c9919062000a33565b600a81905550806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506009546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002b7919062000a7c565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000321919062000a7c565b60405180910390a38060095462000339919062000a99565b600d8190555060646002600d5462000352919062000ad4565b6200035e919062000a33565b60128190555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160026000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555042600781905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d6919062000b89565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b81526004016200062692919062000bcc565b6020604051808303816000875af115801562000646573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200066c919062000b89565b505062000bf9565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620006f657607f821691505b6020821081036200070c576200070b620006ae565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000737565b62000782868362000737565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620007cf620007c9620007c3846200079a565b620007a4565b6200079a565b9050919050565b6000819050919050565b620007eb83620007ae565b62000803620007fa82620007d6565b84845462000744565b825550505050565b600090565b6200081a6200080b565b62000827818484620007e0565b505050565b5b818110156200084f576200084360008262000810565b6001810190506200082d565b5050565b601f8211156200089e57620008688162000712565b620008738462000727565b8101602085101562000883578190505b6200089b620008928562000727565b8301826200082c565b50505b505050565b600082821c905092915050565b6000620008c360001984600802620008a3565b1980831691505092915050565b6000620008de8383620008b0565b9150826002028217905092915050565b620008f98262000674565b67ffffffffffffffff8111156200091557620009146200067f565b5b620009218254620006dd565b6200092e82828562000853565b600060209050601f83116001811462000966576000841562000951578287015190505b6200095d8582620008d0565b865550620009cd565b601f198416620009768662000712565b60005b82811015620009a05784890151825560018201915060208501945060208101905062000979565b86831015620009c05784890151620009bc601f891682620008b0565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a40826200079a565b915062000a4d836200079a565b92508262000a605762000a5f620009d5565b5b828204905092915050565b62000a76816200079a565b82525050565b600060208201905062000a93600083018462000a6b565b92915050565b600062000aa6826200079a565b915062000ab3836200079a565b925082820190508082111562000ace5762000acd62000a04565b5b92915050565b600062000ae1826200079a565b915062000aee836200079a565b925082820262000afe816200079a565b9150828204841483151762000b185762000b1762000a04565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b518262000b24565b9050919050565b62000b638162000b44565b811462000b6f57600080fd5b50565b60008151905062000b838162000b58565b92915050565b60006020828403121562000ba25762000ba162000b1f565b5b600062000bb28482850162000b72565b91505092915050565b62000bc68162000b44565b82525050565b600060408201905062000be3600083018562000bbb565b62000bf2602083018462000bbb565b9392505050565b61384d8062000c096000396000f3fe6080604052600436106101e75760003560e01c8063715018a611610102578063ba26471411610095578063e18fb5d811610064578063e18fb5d81461066d578063ed2cef9c14610696578063f3c533f6146106ad578063f586c6d9146106ea576101ee565b8063ba264714146105d9578063c747c533146105f0578063dd62ed3e14610607578063e09b481314610644576101ee565b8063a457c2d7116100d1578063a457c2d71461051d578063a9059cbb1461055a578063abd545bf14610597578063ad80a807146105c2576101ee565b8063715018a61461049957806372c0ee37146104b05780638da5cb5b146104c757806395d89b41146104f2576101ee565b8063220f66961161017a578063395093511161014957806339509351146103f15780635e685f441461042e5780636b130f9a1461044557806370a082311461045c576101ee565b8063220f66961461034757806323b872dd146103725780632fc60281146103af578063313ce567146103c6576101ee565b8063162b51fc116101b6578063162b51fc146102b157806318160ddd146102dc5780631eace99314610307578063210ab5d61461031e576101ee565b806306fdde03146101f3578063090666d61461021e578063095ea7b3146102495780630cf4c5be14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610715565b60405161021591906128a3565b60405180910390f35b34801561022a57600080fd5b506102336107a7565b60405161024091906128e0565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b91906129a3565b6107ba565b60405161027d91906128e0565b60405180910390f35b34801561029257600080fd5b5061029b6107dd565b6040516102a891906129f2565b60405180910390f35b3480156102bd57600080fd5b506102c66107e3565b6040516102d391906129f2565b60405180910390f35b3480156102e857600080fd5b506102f16107e9565b6040516102fe91906129f2565b60405180910390f35b34801561031357600080fd5b5061031c6107f3565b005b34801561032a57600080fd5b5061034560048036038101906103409190612a0d565b610895565b005b34801561035357600080fd5b5061035c610980565b60405161036991906128e0565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612a3a565b610993565b6040516103a691906128e0565b60405180910390f35b3480156103bb57600080fd5b506103c46109c2565b005b3480156103d257600080fd5b506103db610a7e565b6040516103e89190612aa9565b60405180910390f35b3480156103fd57600080fd5b50610418600480360381019061041391906129a3565b610a87565b60405161042591906128e0565b60405180910390f35b34801561043a57600080fd5b50610443610abe565b005b34801561045157600080fd5b5061045a610b60565b005b34801561046857600080fd5b50610483600480360381019061047e9190612a0d565b610c02565b60405161049091906129f2565b60405180910390f35b3480156104a557600080fd5b506104ae610c4a565b005b3480156104bc57600080fd5b506104c5610ce6565b005b3480156104d357600080fd5b506104dc610ee7565b6040516104e99190612ad3565b60405180910390f35b3480156104fe57600080fd5b50610507610f0d565b60405161051491906128a3565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f91906129a3565b610f9f565b60405161055191906128e0565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c91906129a3565b611016565b60405161058e91906128e0565b60405180910390f35b3480156105a357600080fd5b506105ac611039565b6040516105b991906129f2565b60405180910390f35b3480156105ce57600080fd5b506105d761103f565b005b3480156105e557600080fd5b506105ee6110e1565b005b3480156105fc57600080fd5b5061060561117b565b005b34801561061357600080fd5b5061062e60048036038101906106299190612aee565b611459565b60405161063b91906129f2565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612a0d565b6114e0565b005b34801561067957600080fd5b50610694600480360381019061068f9190612b2e565b6115cb565b005b3480156106a257600080fd5b506106ab611665565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b2e565b611866565b6040516106e191906129f2565b60405180910390f35b3480156106f657600080fd5b506106ff611aa0565b60405161070c9190612ad3565b60405180910390f35b6060600e805461072490612b8a565b80601f016020809104026020016040519081016040528092919081815260200182805461075090612b8a565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b5050505050905090565b601460019054906101000a900460ff1681565b6000806107c5611bbe565b90506107d2818585611bc6565b600191505092915050565b60125481565b60105481565b6000600d54905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a90612c07565b60405180910390fd5b609660108190555060c8601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612c07565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900460ff1681565b60008061099e611bbe565b90506109ab858285611d8f565b6109b6858585611e1b565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612c07565b60405180910390fd5b601460019054906101000a900460ff1615601460016101000a81548160ff021916908315150217905550565b60006005905090565b600080610a92611bbe565b9050610ab3818585610aa48589611459565b610aae9190612c56565b611bc6565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612c07565b60405180910390fd5b60646010819055506064601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612c07565b60405180910390fd5b60006010819055506000601181905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612c07565b60405180910390fd5b610ce4600061274d565b565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612cfc565b60405180910390fd5b60055460085460075442610d8a9190612d1c565b610d949190612d7f565b11610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90612e22565b60405180910390fd5b600554600411610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090612eb4565b60405180910390fd5b600a54600954610e299190612d1c565b503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546040518363ffffffff1660e01b8152600401610e89929190612ed4565b6020604051808303816000875af1158015610ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecc9190612f29565b5060056000815480929190610ee090612f56565b9190505550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600f8054610f1c90612b8a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4890612b8a565b8015610f955780601f10610f6a57610100808354040283529160200191610f95565b820191906000526020600020905b815481529060010190602001808311610f7857829003601f168201915b5050505050905090565b600080610faa611bbe565b90506000610fb88286611459565b905083811015610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490613010565b60405180910390fd5b61100a8286868403611bc6565b60019250505092915050565b600080611021611bbe565b905061102e818585611e1b565b600191505092915050565b60115481565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690612c07565b60405180910390fd5b6008601081905550600c601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890612c07565b60405180910390fd5b6000601281905550565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111ea929190612ed4565b6020604051808303816000875af1158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612f29565b50600060095461123c30610c02565b6112469190612d1c565b90506000600267ffffffffffffffff81111561126557611264613030565b5b6040519080825280602002602001820160405280156112935781602001602082028036833780820191505090505b50905030816000815181106112ab576112aa61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136891906130a3565b8160018151811061137c5761137b61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe58360018430426040518663ffffffff1660e01b815260040161140c9594939291906131d3565b6000604051808303816000875af115801561142b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611454919061335b565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612c07565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612c07565b60405180910390fd5b8060138190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90612cfc565b60405180910390fd5b600654600854600754426117099190612d1c565b6117139190612d7f565b11611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612e22565b60405180910390fd5b600654600411611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90612eb4565b60405180910390fd5b600a546009546117a89190612d1c565b503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546040518363ffffffff1660e01b8152600401611808929190612ed4565b6020604051808303816000875af1158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612f29565b506006600081548092919061185f90612f56565b9190505550565b60006060600267ffffffffffffffff81111561188557611884613030565b5b6040519080825280602002602001820160405280156118b35781602001602082028036833780820191505090505b50905030816000815181106118cb576118ca61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198891906130a3565b8160018151811061199c5761199b61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b8152600401611a279291906133a4565b600060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a6d919061335b565b90508060018351611a7e9190612d1c565b81518110611a8f57611a8e61305f565b5b602002602001015192505050919050565b600080737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2691906130a3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611b749291906133d4565b602060405180830381865afa158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb591906130a3565b90508091505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c9061346f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613501565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8291906129f2565b60405180910390a3505050565b6000611d9b8484611459565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e155781811015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061356d565b60405180910390fd5b611e148484848403611bc6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e81906135ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613691565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7690613723565b60405180910390fd5b601460019054906101000a900460ff161561208f576000611fea6009546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe59190612d1c565b611866565b90506013548111801561200a5750601460009054906101000a900460ff16155b80156120495750612019611aa0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561208d576001601460006101000a81548160ff02191690831515021790555061207161117b565b6000601460006101000a81548160ff0219169083151502179055505b505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121305750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121475750601460009054906101000a900460ff165b156122595781816121589190612d1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121e89190612c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161224c91906129f2565b60405180910390a3612659565b612261611aa0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122cc575061229d611aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561254f57600080601254111561232357826012541015612322576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612319906137b5565b60405180910390fd5b5b61232b611aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123635760115490505b61236b611aa0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123a35760105490505b60006103e8826103e86123b69190612d1c565b856123c191906137d5565b6123cb9190612d7f565b905083836123d99190612d1c565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124699190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124cd91906129f2565b60405180910390a360006103e883866124e691906137d5565b6124f09190612d7f565b9050806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125409190612c56565b92505081905550505050612658565b818161255b9190612d1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125eb9190612c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161264f91906129f2565b60405180910390a35b5b60014711156127475760006002476126719190612d7f565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126db573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612744573d6000803e3d6000fd5b50505b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561284d578082015181840152602081019050612832565b60008484015250505050565b6000601f19601f8301169050919050565b600061287582612813565b61287f818561281e565b935061288f81856020860161282f565b61289881612859565b840191505092915050565b600060208201905081810360008301526128bd818461286a565b905092915050565b60008115159050919050565b6128da816128c5565b82525050565b60006020820190506128f560008301846128d1565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293a8261290f565b9050919050565b61294a8161292f565b811461295557600080fd5b50565b60008135905061296781612941565b92915050565b6000819050919050565b6129808161296d565b811461298b57600080fd5b50565b60008135905061299d81612977565b92915050565b600080604083850312156129ba576129b9612905565b5b60006129c885828601612958565b92505060206129d98582860161298e565b9150509250929050565b6129ec8161296d565b82525050565b6000602082019050612a0760008301846129e3565b92915050565b600060208284031215612a2357612a22612905565b5b6000612a3184828501612958565b91505092915050565b600080600060608486031215612a5357612a52612905565b5b6000612a6186828701612958565b9350506020612a7286828701612958565b9250506040612a838682870161298e565b9150509250925092565b600060ff82169050919050565b612aa381612a8d565b82525050565b6000602082019050612abe6000830184612a9a565b92915050565b612acd8161292f565b82525050565b6000602082019050612ae86000830184612ac4565b92915050565b60008060408385031215612b0557612b04612905565b5b6000612b1385828601612958565b9250506020612b2485828601612958565b9150509250929050565b600060208284031215612b4457612b43612905565b5b6000612b528482850161298e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ba257607f821691505b602082108103612bb557612bb4612b5b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bf160208361281e565b9150612bfc82612bbb565b602082019050919050565b60006020820190508181036000830152612c2081612be4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c618261296d565b9150612c6c8361296d565b9250828201905080821115612c8457612c83612c27565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f742074686520766573746960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ce660228361281e565b9150612cf182612c8a565b604082019050919050565b60006020820190508181036000830152612d1581612cd9565b9050919050565b6000612d278261296d565b9150612d328361296d565b9250828203905081811115612d4a57612d49612c27565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d8a8261296d565b9150612d958361296d565b925082612da557612da4612d50565b5b828204905092915050565b7f596f752063616e2774206272616e642074686174206d75636820696e2074686960008201527f732076657374696e6720706572696f6400000000000000000000000000000000602082015250565b6000612e0c60308361281e565b9150612e1782612db0565b604082019050919050565b60006020820190508181036000830152612e3b81612dff565b9050919050565b7f56657374696e6720666f7220746869732077616c6c657420697320636c6f736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9e60218361281e565b9150612ea982612e42565b604082019050919050565b60006020820190508181036000830152612ecd81612e91565b9050919050565b6000604082019050612ee96000830185612ac4565b612ef660208301846129e3565b9392505050565b612f06816128c5565b8114612f1157600080fd5b50565b600081519050612f2381612efd565b92915050565b600060208284031215612f3f57612f3e612905565b5b6000612f4d84828501612f14565b91505092915050565b6000612f618261296d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f9357612f92612c27565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612ffa60258361281e565b915061300582612f9e565b604082019050919050565b6000602082019050818103600083015261302981612fed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061309d81612941565b92915050565b6000602082840312156130b9576130b8612905565b5b60006130c78482850161308e565b91505092915050565b6000819050919050565b6000819050919050565b60006130ff6130fa6130f5846130d0565b6130da565b61296d565b9050919050565b61310f816130e4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61314a8161292f565b82525050565b600061315c8383613141565b60208301905092915050565b6000602082019050919050565b600061318082613115565b61318a8185613120565b935061319583613131565b8060005b838110156131c65781516131ad8882613150565b97506131b883613168565b925050600181019050613199565b5085935050505092915050565b600060a0820190506131e860008301886129e3565b6131f56020830187613106565b81810360408301526132078186613175565b90506132166060830185612ac4565b61322360808301846129e3565b9695505050505050565b600080fd5b61323b82612859565b810181811067ffffffffffffffff8211171561325a57613259613030565b5b80604052505050565b600061326d6128fb565b90506132798282613232565b919050565b600067ffffffffffffffff82111561329957613298613030565b5b602082029050602081019050919050565b600080fd5b6000815190506132be81612977565b92915050565b60006132d76132d28461327e565b613263565b905080838252602082019050602084028301858111156132fa576132f96132aa565b5b835b81811015613323578061330f88826132af565b8452602084019350506020810190506132fc565b5050509392505050565b600082601f8301126133425761334161322d565b5b81516133528482602086016132c4565b91505092915050565b60006020828403121561337157613370612905565b5b600082015167ffffffffffffffff81111561338f5761338e61290a565b5b61339b8482850161332d565b91505092915050565b60006040820190506133b960008301856129e3565b81810360208301526133cb8184613175565b90509392505050565b60006040820190506133e96000830185612ac4565b6133f66020830184612ac4565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061345960248361281e565b9150613464826133fd565b604082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134eb60228361281e565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613557601d8361281e565b915061356282613521565b602082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135e960258361281e565b91506135f48261358d565b604082019050919050565b60006020820190508181036000830152613618816135dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061367b60238361281e565b91506136868261361f565b604082019050919050565b600060208201905081810360008301526136aa8161366e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061370d60268361281e565b9150613718826136b1565b604082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b7f45524332303a2054686520616d6f756e74206f6620746865207472616e73666560008201527f72206973206d6f7265207468616e20616c6c6f77656400000000000000000000602082015250565b600061379f60368361281e565b91506137aa82613743565b604082019050919050565b600060208201905081810360008301526137ce81613792565b9050919050565b60006137e08261296d565b91506137eb8361296d565b92508282026137f98161296d565b915082820484148315176138105761380f612c27565b5b509291505056fea26469706673582212207d782046ec3984b555ef5983fbd5e448891fc764cd1a3b4d2c73f53ef1413dda64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063715018a611610102578063ba26471411610095578063e18fb5d811610064578063e18fb5d81461066d578063ed2cef9c14610696578063f3c533f6146106ad578063f586c6d9146106ea576101ee565b8063ba264714146105d9578063c747c533146105f0578063dd62ed3e14610607578063e09b481314610644576101ee565b8063a457c2d7116100d1578063a457c2d71461051d578063a9059cbb1461055a578063abd545bf14610597578063ad80a807146105c2576101ee565b8063715018a61461049957806372c0ee37146104b05780638da5cb5b146104c757806395d89b41146104f2576101ee565b8063220f66961161017a578063395093511161014957806339509351146103f15780635e685f441461042e5780636b130f9a1461044557806370a082311461045c576101ee565b8063220f66961461034757806323b872dd146103725780632fc60281146103af578063313ce567146103c6576101ee565b8063162b51fc116101b6578063162b51fc146102b157806318160ddd146102dc5780631eace99314610307578063210ab5d61461031e576101ee565b806306fdde03146101f3578063090666d61461021e578063095ea7b3146102495780630cf4c5be14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610715565b60405161021591906128a3565b60405180910390f35b34801561022a57600080fd5b506102336107a7565b60405161024091906128e0565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b91906129a3565b6107ba565b60405161027d91906128e0565b60405180910390f35b34801561029257600080fd5b5061029b6107dd565b6040516102a891906129f2565b60405180910390f35b3480156102bd57600080fd5b506102c66107e3565b6040516102d391906129f2565b60405180910390f35b3480156102e857600080fd5b506102f16107e9565b6040516102fe91906129f2565b60405180910390f35b34801561031357600080fd5b5061031c6107f3565b005b34801561032a57600080fd5b5061034560048036038101906103409190612a0d565b610895565b005b34801561035357600080fd5b5061035c610980565b60405161036991906128e0565b60405180910390f35b34801561037e57600080fd5b5061039960048036038101906103949190612a3a565b610993565b6040516103a691906128e0565b60405180910390f35b3480156103bb57600080fd5b506103c46109c2565b005b3480156103d257600080fd5b506103db610a7e565b6040516103e89190612aa9565b60405180910390f35b3480156103fd57600080fd5b50610418600480360381019061041391906129a3565b610a87565b60405161042591906128e0565b60405180910390f35b34801561043a57600080fd5b50610443610abe565b005b34801561045157600080fd5b5061045a610b60565b005b34801561046857600080fd5b50610483600480360381019061047e9190612a0d565b610c02565b60405161049091906129f2565b60405180910390f35b3480156104a557600080fd5b506104ae610c4a565b005b3480156104bc57600080fd5b506104c5610ce6565b005b3480156104d357600080fd5b506104dc610ee7565b6040516104e99190612ad3565b60405180910390f35b3480156104fe57600080fd5b50610507610f0d565b60405161051491906128a3565b60405180910390f35b34801561052957600080fd5b50610544600480360381019061053f91906129a3565b610f9f565b60405161055191906128e0565b60405180910390f35b34801561056657600080fd5b50610581600480360381019061057c91906129a3565b611016565b60405161058e91906128e0565b60405180910390f35b3480156105a357600080fd5b506105ac611039565b6040516105b991906129f2565b60405180910390f35b3480156105ce57600080fd5b506105d761103f565b005b3480156105e557600080fd5b506105ee6110e1565b005b3480156105fc57600080fd5b5061060561117b565b005b34801561061357600080fd5b5061062e60048036038101906106299190612aee565b611459565b60405161063b91906129f2565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612a0d565b6114e0565b005b34801561067957600080fd5b50610694600480360381019061068f9190612b2e565b6115cb565b005b3480156106a257600080fd5b506106ab611665565b005b3480156106b957600080fd5b506106d460048036038101906106cf9190612b2e565b611866565b6040516106e191906129f2565b60405180910390f35b3480156106f657600080fd5b506106ff611aa0565b60405161070c9190612ad3565b60405180910390f35b6060600e805461072490612b8a565b80601f016020809104026020016040519081016040528092919081815260200182805461075090612b8a565b801561079d5780601f106107725761010080835404028352916020019161079d565b820191906000526020600020905b81548152906001019060200180831161078057829003601f168201915b5050505050905090565b601460019054906101000a900460ff1681565b6000806107c5611bbe565b90506107d2818585611bc6565b600191505092915050565b60125481565b60105481565b6000600d54905090565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a90612c07565b60405180910390fd5b609660108190555060c8601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612c07565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460009054906101000a900460ff1681565b60008061099e611bbe565b90506109ab858285611d8f565b6109b6858585611e1b565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612c07565b60405180910390fd5b601460019054906101000a900460ff1615601460016101000a81548160ff021916908315150217905550565b60006005905090565b600080610a92611bbe565b9050610ab3818585610aa48589611459565b610aae9190612c56565b611bc6565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612c07565b60405180910390fd5b60646010819055506064601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be790612c07565b60405180910390fd5b60006010819055506000601181905550565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190612c07565b60405180910390fd5b610ce4600061274d565b565b3373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90612cfc565b60405180910390fd5b60055460085460075442610d8a9190612d1c565b610d949190612d7f565b11610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb90612e22565b60405180910390fd5b600554600411610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090612eb4565b60405180910390fd5b600a54600954610e299190612d1c565b503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546040518363ffffffff1660e01b8152600401610e89929190612ed4565b6020604051808303816000875af1158015610ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecc9190612f29565b5060056000815480929190610ee090612f56565b9190505550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600f8054610f1c90612b8a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4890612b8a565b8015610f955780601f10610f6a57610100808354040283529160200191610f95565b820191906000526020600020905b815481529060010190602001808311610f7857829003601f168201915b5050505050905090565b600080610faa611bbe565b90506000610fb88286611459565b905083811015610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff490613010565b60405180910390fd5b61100a8286868403611bc6565b60019250505092915050565b600080611021611bbe565b905061102e818585611e1b565b600191505092915050565b60115481565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c690612c07565b60405180910390fd5b6008601081905550600c601181905550565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890612c07565b60405180910390fd5b6000601281905550565b3073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111ea929190612ed4565b6020604051808303816000875af1158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612f29565b50600060095461123c30610c02565b6112469190612d1c565b90506000600267ffffffffffffffff81111561126557611264613030565b5b6040519080825280602002602001820160405280156112935781602001602082028036833780820191505090505b50905030816000815181106112ab576112aa61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136891906130a3565b8160018151811061137c5761137b61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166318cbafe58360018430426040518663ffffffff1660e01b815260040161140c9594939291906131d3565b6000604051808303816000875af115801561142b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611454919061335b565b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612c07565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612c07565b60405180910390fd5b8060138190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec90612cfc565b60405180910390fd5b600654600854600754426117099190612d1c565b6117139190612d7f565b11611753576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174a90612e22565b60405180910390fd5b600654600411611798576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178f90612eb4565b60405180910390fd5b600a546009546117a89190612d1c565b503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a546040518363ffffffff1660e01b8152600401611808929190612ed4565b6020604051808303816000875af1158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612f29565b506006600081548092919061185f90612f56565b9190505550565b60006060600267ffffffffffffffff81111561188557611884613030565b5b6040519080825280602002602001820160405280156118b35781602001602082028036833780820191505090505b50905030816000815181106118cb576118ca61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198891906130a3565b8160018151811061199c5761199b61305f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663d06ca61f85846040518363ffffffff1660e01b8152600401611a279291906133a4565b600060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a6d919061335b565b90508060018351611a7e9190612d1c565b81518110611a8f57611a8e61305f565b5b602002602001015192505050919050565b600080737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2691906130a3565b73ffffffffffffffffffffffffffffffffffffffff1663e6a439053073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611b749291906133d4565b602060405180830381865afa158015611b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb591906130a3565b90508091505090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c9061346f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90613501565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d8291906129f2565b60405180910390a3505050565b6000611d9b8484611459565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611e155781811015611e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfe9061356d565b60405180910390fd5b611e148484848403611bc6565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e81906135ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613691565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7690613723565b60405180910390fd5b601460019054906101000a900460ff161561208f576000611fea6009546000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe59190612d1c565b611866565b90506013548111801561200a5750601460009054906101000a900460ff16155b80156120495750612019611aa0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561208d576001601460006101000a81548160ff02191690831515021790555061207161117b565b6000601460006101000a81548160ff0219169083151502179055505b505b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121305750600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121475750601460009054906101000a900460ff165b156122595781816121589190612d1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121e89190612c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161224c91906129f2565b60405180910390a3612659565b612261611aa0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806122cc575061229d611aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561254f57600080601254111561232357826012541015612322576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612319906137b5565b60405180910390fd5b5b61232b611aa0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036123635760115490505b61236b611aa0565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123a35760105490505b60006103e8826103e86123b69190612d1c565b856123c191906137d5565b6123cb9190612d7f565b905083836123d99190612d1c565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124699190612c56565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124cd91906129f2565b60405180910390a360006103e883866124e691906137d5565b6124f09190612d7f565b9050806000803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125409190612c56565b92505081905550505050612658565b818161255b9190612d1c565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125eb9190612c56565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161264f91906129f2565b60405180910390a35b5b60014711156127475760006002476126719190612d7f565b9050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126db573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612744573d6000803e3d6000fd5b50505b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561284d578082015181840152602081019050612832565b60008484015250505050565b6000601f19601f8301169050919050565b600061287582612813565b61287f818561281e565b935061288f81856020860161282f565b61289881612859565b840191505092915050565b600060208201905081810360008301526128bd818461286a565b905092915050565b60008115159050919050565b6128da816128c5565b82525050565b60006020820190506128f560008301846128d1565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061293a8261290f565b9050919050565b61294a8161292f565b811461295557600080fd5b50565b60008135905061296781612941565b92915050565b6000819050919050565b6129808161296d565b811461298b57600080fd5b50565b60008135905061299d81612977565b92915050565b600080604083850312156129ba576129b9612905565b5b60006129c885828601612958565b92505060206129d98582860161298e565b9150509250929050565b6129ec8161296d565b82525050565b6000602082019050612a0760008301846129e3565b92915050565b600060208284031215612a2357612a22612905565b5b6000612a3184828501612958565b91505092915050565b600080600060608486031215612a5357612a52612905565b5b6000612a6186828701612958565b9350506020612a7286828701612958565b9250506040612a838682870161298e565b9150509250925092565b600060ff82169050919050565b612aa381612a8d565b82525050565b6000602082019050612abe6000830184612a9a565b92915050565b612acd8161292f565b82525050565b6000602082019050612ae86000830184612ac4565b92915050565b60008060408385031215612b0557612b04612905565b5b6000612b1385828601612958565b9250506020612b2485828601612958565b9150509250929050565b600060208284031215612b4457612b43612905565b5b6000612b528482850161298e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ba257607f821691505b602082108103612bb557612bb4612b5b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bf160208361281e565b9150612bfc82612bbb565b602082019050919050565b60006020820190508181036000830152612c2081612be4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c618261296d565b9150612c6c8361296d565b9250828201905080821115612c8457612c83612c27565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f742074686520766573746960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ce660228361281e565b9150612cf182612c8a565b604082019050919050565b60006020820190508181036000830152612d1581612cd9565b9050919050565b6000612d278261296d565b9150612d328361296d565b9250828203905081811115612d4a57612d49612c27565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612d8a8261296d565b9150612d958361296d565b925082612da557612da4612d50565b5b828204905092915050565b7f596f752063616e2774206272616e642074686174206d75636820696e2074686960008201527f732076657374696e6720706572696f6400000000000000000000000000000000602082015250565b6000612e0c60308361281e565b9150612e1782612db0565b604082019050919050565b60006020820190508181036000830152612e3b81612dff565b9050919050565b7f56657374696e6720666f7220746869732077616c6c657420697320636c6f736560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e9e60218361281e565b9150612ea982612e42565b604082019050919050565b60006020820190508181036000830152612ecd81612e91565b9050919050565b6000604082019050612ee96000830185612ac4565b612ef660208301846129e3565b9392505050565b612f06816128c5565b8114612f1157600080fd5b50565b600081519050612f2381612efd565b92915050565b600060208284031215612f3f57612f3e612905565b5b6000612f4d84828501612f14565b91505092915050565b6000612f618261296d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f9357612f92612c27565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612ffa60258361281e565b915061300582612f9e565b604082019050919050565b6000602082019050818103600083015261302981612fed565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061309d81612941565b92915050565b6000602082840312156130b9576130b8612905565b5b60006130c78482850161308e565b91505092915050565b6000819050919050565b6000819050919050565b60006130ff6130fa6130f5846130d0565b6130da565b61296d565b9050919050565b61310f816130e4565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61314a8161292f565b82525050565b600061315c8383613141565b60208301905092915050565b6000602082019050919050565b600061318082613115565b61318a8185613120565b935061319583613131565b8060005b838110156131c65781516131ad8882613150565b97506131b883613168565b925050600181019050613199565b5085935050505092915050565b600060a0820190506131e860008301886129e3565b6131f56020830187613106565b81810360408301526132078186613175565b90506132166060830185612ac4565b61322360808301846129e3565b9695505050505050565b600080fd5b61323b82612859565b810181811067ffffffffffffffff8211171561325a57613259613030565b5b80604052505050565b600061326d6128fb565b90506132798282613232565b919050565b600067ffffffffffffffff82111561329957613298613030565b5b602082029050602081019050919050565b600080fd5b6000815190506132be81612977565b92915050565b60006132d76132d28461327e565b613263565b905080838252602082019050602084028301858111156132fa576132f96132aa565b5b835b81811015613323578061330f88826132af565b8452602084019350506020810190506132fc565b5050509392505050565b600082601f8301126133425761334161322d565b5b81516133528482602086016132c4565b91505092915050565b60006020828403121561337157613370612905565b5b600082015167ffffffffffffffff81111561338f5761338e61290a565b5b61339b8482850161332d565b91505092915050565b60006040820190506133b960008301856129e3565b81810360208301526133cb8184613175565b90509392505050565b60006040820190506133e96000830185612ac4565b6133f66020830184612ac4565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061345960248361281e565b9150613464826133fd565b604082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134eb60228361281e565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613557601d8361281e565b915061356282613521565b602082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135e960258361281e565b91506135f48261358d565b604082019050919050565b60006020820190508181036000830152613618816135dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061367b60238361281e565b91506136868261361f565b604082019050919050565b600060208201905081810360008301526136aa8161366e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061370d60268361281e565b9150613718826136b1565b604082019050919050565b6000602082019050818103600083015261373c81613700565b9050919050565b7f45524332303a2054686520616d6f756e74206f6620746865207472616e73666560008201527f72206973206d6f7265207468616e20616c6c6f77656400000000000000000000602082015250565b600061379f60368361281e565b91506137aa82613743565b604082019050919050565b600060208201905081810360008301526137ce81613792565b9050919050565b60006137e08261296d565b91506137eb8361296d565b92508282026137f98161296d565b915082820484148315176138105761380f612c27565b5b509291505056fea26469706673582212207d782046ec3984b555ef5983fbd5e448891fc764cd1a3b4d2c73f53ef1413dda64736f6c63430008120033

Deployed Bytecode Sourcemap

3918:11358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9662:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4916:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10584:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4798:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4722:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9977:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7457:120;;;;;;;;;;;;;:::i;:::-;;8545:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4873:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10793:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14361:95;;;;;;;;;;;;;:::i;:::-;;9879:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11060:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7583:116;;;;;;;;;;;;;:::i;:::-;;7829:97;;;;;;;;;;;;;:::i;:::-;;10091:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8311:103;;;;;;;;;;;;;:::i;:::-;;6507:469;;;;;;;;;;;;;:::i;:::-;;4159:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9768:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11307:437;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10224:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4758:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7705:118;;;;;;;;;;;;;:::i;:::-;;7932:76;;;;;;;;;;;;;:::i;:::-;;5861:518;;;;;;;;;;;;;:::i;:::-;;10425:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8422:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14237:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6982:469;;;;;;;;;;;;;:::i;:::-;;5394:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5148:240;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9662:100;9716:13;9749:5;9742:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9662:100;:::o;4916:33::-;;;;;;;;;;;;;:::o;10584:203::-;10667:4;10684:14;10701:12;:10;:12::i;:::-;10684:29;;10724:33;10733:6;10741:7;10750:6;10724:8;:33::i;:::-;10775:4;10768:11;;;10584:203;;;;:::o;4798:25::-;;;;:::o;4722:29::-;;;;:::o;9977:108::-;10038:7;10065:12;;10058:19;;9977:108;:::o;7457:120::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7537:3:::1;7526:7;:14;;;;7564:3;7553:8;:14;;;;7457:120::o:0;8545:112::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8644:5:::1;8614:18;:27;8633:7;8614:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8545:112:::0;:::o;4873:36::-;;;;;;;;;;;;;:::o;10793:261::-;10890:4;10907:15;10925:12;:10;:12::i;:::-;10907:30;;10948:38;10964:4;10970:7;10979:6;10948:15;:38::i;:::-;10997:27;11007:4;11013:2;11017:6;10997:9;:27::i;:::-;11042:4;11035:11;;;10793:261;;;;;:::o;14361:95::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14435:13:::1;;;;;;;;;;;14434:14;14418:13;;:30;;;;;;;;;;;;;;;;;;14361:95::o:0;9879:92::-;9937:5;9962:1;9955:8;;9879:92;:::o;11060:241::-;11148:4;11165:14;11182:12;:10;:12::i;:::-;11165:29;;11205:66;11214:6;11222:7;11260:10;11231:26;11241:6;11249:7;11231:9;:26::i;:::-;:39;;;;:::i;:::-;11205:8;:66::i;:::-;11289:4;11282:11;;;11060:241;;;;:::o;7583:116::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7663:3:::1;7652:7;:14;;;;7688:3;7677:8;:14;;;;7583:116::o:0;7829:97::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7893:1:::1;7882:7;:12;;;;7916:1;7905:8;:12;;;;7829:97::o:0;10091:127::-;10165:7;10192:9;:18;10202:7;10192:18;;;;;;;;;;;;;;;;10185:25;;10091:127;;;:::o;8311:103::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8376:30:::1;8403:1;8376:18;:30::i;:::-;8311:103::o:0;6507:469::-;6567:10;6552:25;;:11;;;;;;;;;;;:25;;;6544:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6691:13;;6674:14;;6654:16;;6636:15;:34;;;;:::i;:::-;6635:53;;;;:::i;:::-;:69;6627:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;6781:13;;6777:1;:17;6769:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6862:12;;6844:15;;:30;;;;:::i;:::-;;6900:4;6885:30;;;6916:11;;;;;;;;;;;6929:12;;6885:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6953:13;;:15;;;;;;;;;:::i;:::-;;;;;;6507:469::o;4159:20::-;;;;;;;;;;;;;:::o;9768:104::-;9824:13;9857:7;9850:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9768:104;:::o;11307:437::-;11400:4;11417:14;11434:12;:10;:12::i;:::-;11417:29;;11457:24;11484:26;11494:6;11502:7;11484:9;:26::i;:::-;11457:53;;11549:15;11529:16;:35;;11521:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:61;11651:6;11659:7;11687:15;11668:16;:34;11642:8;:61::i;:::-;11732:4;11725:11;;;;11307:437;;;;:::o;10224:195::-;10303:4;10320:14;10337:12;:10;:12::i;:::-;10320:29;;10360;10370:6;10378:2;10382:6;10360:9;:29::i;:::-;10407:4;10400:11;;;10224:195;;;;:::o;4758:29::-;;;;:::o;7705:118::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7789:1:::1;7778:7;:12;;;;7812:2;7801:8;:13;;;;7705:118::o:0;7932:76::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7999:1:::1;7986:10;:14;;;;7932:76::o:0;5861:518::-;5923:4;5908:29;;;4994:42;5948:17;5908:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5977:20;6027:15;;6000:24;6018:4;6000:9;:24::i;:::-;:42;;;;:::i;:::-;5977:65;;6053:21;6091:1;6077:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6053:40;;6122:4;6104;6109:1;6104:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;4994:42;6148:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6138:4;6143:1;6138:7;;;;;;;;:::i;:::-;;;;;;;:43;;;;;;;;;;;4994:42;6192:48;;;6255:12;6282:1;6298:4;6325;6345:15;6192:179;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5897:482;;5861:518::o;10425:153::-;10515:7;10542:11;:19;10554:6;10542:19;;;;;;;;;;;;;;;:28;10562:7;10542:28;;;;;;;;;;;;;;;;10535:35;;10425:153;;;;:::o;8422:113::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8523:4:::1;8493:18;:27;8512:7;8493:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;8422:113:::0;:::o;14237:118::-;6434:10;6425:19;;:5;;;;;;;;;;;:19;;;6417:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14333:14:::1;14317:13;:30;;;;14237:118:::0;:::o;6982:469::-;7042:10;7027:25;;:11;;;;;;;;;;;:25;;;7019:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7166:13;;7149:14;;7129:16;;7111:15;:34;;;;:::i;:::-;7110:53;;;;:::i;:::-;:69;7102:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;7256:13;;7252:1;:17;7244:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7337:12;;7319:15;;:30;;;;:::i;:::-;;7375:4;7360:30;;;7391:11;;;;;;;;;;;7404:12;;7360:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7428:13;;:15;;;;;;;;;:::i;:::-;;;;;;6982:469::o;5394:342::-;5457:7;5471:21;5518:1;5504:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5497:23;;5543:4;5525;5530:1;5525:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;4994:42;5563:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5553:4;5558:1;5553:7;;;;;;;;:::i;:::-;;;;;;;:43;;;;;;;;;;;5601:30;4994:42;5634:40;;;5675:7;5684:4;5634:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5601:88;;5701:13;5729:1;5715:4;:11;:15;;;;:::i;:::-;5701:30;;;;;;;;:::i;:::-;;;;;;;;5694:37;;;;5394:342;;;:::o;5148:240::-;5195:7;5223:19;4994:42;5263:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5245:63;;;5317:4;5095:42;5245:98;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5223:120;;5369:11;5362:18;;;5148:240;:::o;210:98::-;263:7;290:10;283:17;;210:98;:::o;14462:348::-;14583:1;14565:20;;:6;:20;;;14557:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14664:1;14645:21;;:7;:21;;;14637:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14747:6;14716:11;:19;14728:6;14716:19;;;;;;;;;;;;;;;:28;14736:7;14716:28;;;;;;;;;;;;;;;:37;;;;14786:7;14769:33;;14778:6;14769:33;;;14795:6;14769:33;;;;;;:::i;:::-;;;;;;;;14462:348;;;:::o;14816:422::-;14918:24;14945:26;14955:6;14963:7;14945:9;:26::i;:::-;14918:53;;15006:17;14986:16;:37;14982:249;;15068:6;15048:16;:26;;15040:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15152:52;15161:6;15169:7;15197:6;15178:16;:25;15152:8;:52::i;:::-;14982:249;14907:331;14816:422;;;:::o;11752:2479::-;11865:1;11849:18;;:4;:18;;;11841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11942:1;11928:16;;:2;:16;;;11920:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12001:19;12023:9;:15;12033:4;12023:15;;;;;;;;;;;;;;;;12001:37;;12072:6;12057:11;:21;;12049:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12159:13;;;;;;;;;;;12155:382;;;12188:20;12211:59;12254:15;;12227:9;:24;12245:4;12227:24;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;12211:15;:59::i;:::-;12188:82;;12319:13;;12304:12;:28;:50;;;;;12338:16;;;;;;;;;;;12337:17;12304:50;:79;;;;;12367:16;:14;:16::i;:::-;12359:24;;:4;:24;;;;12304:79;12301:225;;;12422:4;12403:16;;:23;;;;;;;;;;;;;;;;;;12445:18;:16;:18::i;:::-;12501:5;12482:16;;:24;;;;;;;;;;;;;;;;;;12301:225;12173:364;12155:382;12553:18;:24;12572:4;12553:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12581:18;:22;12600:2;12581:22;;;;;;;;;;;;;;;;;;;;;;;;;12553:50;:70;;;;12607:16;;;;;;;;;;;12553:70;12549:1412;;;12687:6;12673:11;:20;;;;:::i;:::-;12655:9;:15;12665:4;12655:15;;;;;;;;;;;;;;;:38;;;;12729:6;12712:9;:13;12722:2;12712:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;12778:2;12763:26;;12772:4;12763:26;;;12782:6;12763:26;;;;;;:::i;:::-;;;;;;;;12549:1412;;;12849:16;:14;:16::i;:::-;12843:22;;:2;:22;;;:50;;;;12877:16;:14;:16::i;:::-;12869:24;;:4;:24;;;12843:50;12839:1106;;;12918:17;12977:1;12964:10;;:14;12961:106;;;13002:6;12988:10;;:20;;12980:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12961:106;13099:16;:14;:16::i;:::-;13093:22;;:2;:22;;;13090:47;;13129:8;;13117:20;;13090:47;13182:16;:14;:16::i;:::-;13174:24;;:4;:24;;;13171:48;;13212:7;;13200:19;;13171:48;13289:15;13337:4;13324:9;13317:4;:16;;;;:::i;:::-;13307:6;:27;;;;:::i;:::-;:34;;;;:::i;:::-;13289:52;;13396:6;13382:11;:20;;;;:::i;:::-;13364:9;:15;13374:4;13364:15;;;;;;;;;;;;;;;:38;;;;13444:7;13425:9;:13;13435:2;13425:13;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;13494:2;13479:27;;13488:4;13479:27;;;13498:7;13479:27;;;;;;:::i;:::-;;;;;;;;13543:23;13592:4;13579:9;13570:6;:18;;;;:::i;:::-;:26;;;;:::i;:::-;13543:53;;13662:15;13634:9;:24;13652:4;13634:24;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;12895:821;;;12839:1106;;;13804:6;13790:11;:20;;;;:::i;:::-;13772:9;:15;13782:4;13772:15;;;;;;;;;;;;;;;:38;;;;13850:6;13833:9;:13;13843:2;13833:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;13914:2;13899:26;;13908:4;13899:26;;;13918:6;13899:26;;;;;;:::i;:::-;;;;;;;;12839:1106;12549:1412;14025:1;14001:21;:25;13998:222;;;14043:20;14090:1;14066:21;:25;;;;:::i;:::-;14043:48;;14114:11;;;;;;;;;;;14106:29;;:43;14136:12;14106:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14172:11;;;;;;;;;;;14164:29;;:43;14194:12;14164:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14028:192;13998:222;11830:2401;11752:2479;;;:::o;8116:189::-;8190:16;8209:5;;;;;;;;;;;8190:24;;8233:8;8225:5;;:16;;;;;;;;;;;;;;;;;;8288:8;8257:40;;8278:8;8257:40;;;;;;;;;;;;8179:126;8116:189;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:90::-;1383:7;1426:5;1419:13;1412:21;1401:32;;1349:90;;;:::o;1445:109::-;1526:21;1541:5;1526:21;:::i;:::-;1521:3;1514:34;1445:109;;:::o;1560:210::-;1647:4;1685:2;1674:9;1670:18;1662:26;;1698:65;1760:1;1749:9;1745:17;1736:6;1698:65;:::i;:::-;1560:210;;;;:::o;1776:75::-;1809:6;1842:2;1836:9;1826:19;;1776:75;:::o;1857:117::-;1966:1;1963;1956:12;1980:117;2089:1;2086;2079:12;2103:126;2140:7;2180:42;2173:5;2169:54;2158:65;;2103:126;;;:::o;2235:96::-;2272:7;2301:24;2319:5;2301:24;:::i;:::-;2290:35;;2235:96;;;:::o;2337:122::-;2410:24;2428:5;2410:24;:::i;:::-;2403:5;2400:35;2390:63;;2449:1;2446;2439:12;2390:63;2337:122;:::o;2465:139::-;2511:5;2549:6;2536:20;2527:29;;2565:33;2592:5;2565:33;:::i;:::-;2465:139;;;;:::o;2610:77::-;2647:7;2676:5;2665:16;;2610:77;;;:::o;2693:122::-;2766:24;2784:5;2766:24;:::i;:::-;2759:5;2756:35;2746:63;;2805:1;2802;2795:12;2746:63;2693:122;:::o;2821:139::-;2867:5;2905:6;2892:20;2883:29;;2921:33;2948:5;2921:33;:::i;:::-;2821:139;;;;:::o;2966:474::-;3034:6;3042;3091:2;3079:9;3070:7;3066:23;3062:32;3059:119;;;3097:79;;:::i;:::-;3059:119;3217:1;3242:53;3287:7;3278:6;3267:9;3263:22;3242:53;:::i;:::-;3232:63;;3188:117;3344:2;3370:53;3415:7;3406:6;3395:9;3391:22;3370:53;:::i;:::-;3360:63;;3315:118;2966:474;;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:329::-;6079:6;6128:2;6116:9;6107:7;6103:23;6099:32;6096:119;;;6134:79;;:::i;:::-;6096:119;6254:1;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6225:117;6020:329;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:320;6585:6;6622:1;6616:4;6612:12;6602:22;;6669:1;6663:4;6659:12;6690:18;6680:81;;6746:4;6738:6;6734:17;6724:27;;6680:81;6808:2;6800:6;6797:14;6777:18;6774:38;6771:84;;6827:18;;:::i;:::-;6771:84;6592:269;6541:320;;;:::o;6867:182::-;7007:34;7003:1;6995:6;6991:14;6984:58;6867:182;:::o;7055:366::-;7197:3;7218:67;7282:2;7277:3;7218:67;:::i;:::-;7211:74;;7294:93;7383:3;7294:93;:::i;:::-;7412:2;7407:3;7403:12;7396:19;;7055:366;;;:::o;7427:419::-;7593:4;7631:2;7620:9;7616:18;7608:26;;7680:9;7674:4;7670:20;7666:1;7655:9;7651:17;7644:47;7708:131;7834:4;7708:131;:::i;:::-;7700:139;;7427:419;;;:::o;7852:180::-;7900:77;7897:1;7890:88;7997:4;7994:1;7987:15;8021:4;8018:1;8011:15;8038:191;8078:3;8097:20;8115:1;8097:20;:::i;:::-;8092:25;;8131:20;8149:1;8131:20;:::i;:::-;8126:25;;8174:1;8171;8167:9;8160:16;;8195:3;8192:1;8189:10;8186:36;;;8202:18;;:::i;:::-;8186:36;8038:191;;;;:::o;8235:221::-;8375:34;8371:1;8363:6;8359:14;8352:58;8444:4;8439:2;8431:6;8427:15;8420:29;8235:221;:::o;8462:366::-;8604:3;8625:67;8689:2;8684:3;8625:67;:::i;:::-;8618:74;;8701:93;8790:3;8701:93;:::i;:::-;8819:2;8814:3;8810:12;8803:19;;8462:366;;;:::o;8834:419::-;9000:4;9038:2;9027:9;9023:18;9015:26;;9087:9;9081:4;9077:20;9073:1;9062:9;9058:17;9051:47;9115:131;9241:4;9115:131;:::i;:::-;9107:139;;8834:419;;;:::o;9259:194::-;9299:4;9319:20;9337:1;9319:20;:::i;:::-;9314:25;;9353:20;9371:1;9353:20;:::i;:::-;9348:25;;9397:1;9394;9390:9;9382:17;;9421:1;9415:4;9412:11;9409:37;;;9426:18;;:::i;:::-;9409:37;9259:194;;;;:::o;9459:180::-;9507:77;9504:1;9497:88;9604:4;9601:1;9594:15;9628:4;9625:1;9618:15;9645:185;9685:1;9702:20;9720:1;9702:20;:::i;:::-;9697:25;;9736:20;9754:1;9736:20;:::i;:::-;9731:25;;9775:1;9765:35;;9780:18;;:::i;:::-;9765:35;9822:1;9819;9815:9;9810:14;;9645:185;;;;:::o;9836:235::-;9976:34;9972:1;9964:6;9960:14;9953:58;10045:18;10040:2;10032:6;10028:15;10021:43;9836:235;:::o;10077:366::-;10219:3;10240:67;10304:2;10299:3;10240:67;:::i;:::-;10233:74;;10316:93;10405:3;10316:93;:::i;:::-;10434:2;10429:3;10425:12;10418:19;;10077:366;;;:::o;10449:419::-;10615:4;10653:2;10642:9;10638:18;10630:26;;10702:9;10696:4;10692:20;10688:1;10677:9;10673:17;10666:47;10730:131;10856:4;10730:131;:::i;:::-;10722:139;;10449:419;;;:::o;10874:220::-;11014:34;11010:1;11002:6;10998:14;10991:58;11083:3;11078:2;11070:6;11066:15;11059:28;10874:220;:::o;11100:366::-;11242:3;11263:67;11327:2;11322:3;11263:67;:::i;:::-;11256:74;;11339:93;11428:3;11339:93;:::i;:::-;11457:2;11452:3;11448:12;11441:19;;11100:366;;;:::o;11472:419::-;11638:4;11676:2;11665:9;11661:18;11653:26;;11725:9;11719:4;11715:20;11711:1;11700:9;11696:17;11689:47;11753:131;11879:4;11753:131;:::i;:::-;11745:139;;11472:419;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:116::-;12305:21;12320:5;12305:21;:::i;:::-;12298:5;12295:32;12285:60;;12341:1;12338;12331:12;12285:60;12235:116;:::o;12357:137::-;12411:5;12442:6;12436:13;12427:22;;12458:30;12482:5;12458:30;:::i;:::-;12357:137;;;;:::o;12500:345::-;12567:6;12616:2;12604:9;12595:7;12591:23;12587:32;12584:119;;;12622:79;;:::i;:::-;12584:119;12742:1;12767:61;12820:7;12811:6;12800:9;12796:22;12767:61;:::i;:::-;12757:71;;12713:125;12500:345;;;;:::o;12851:233::-;12890:3;12913:24;12931:5;12913:24;:::i;:::-;12904:33;;12959:66;12952:5;12949:77;12946:103;;13029:18;;:::i;:::-;12946:103;13076:1;13069:5;13065:13;13058:20;;12851:233;;;:::o;13090:224::-;13230:34;13226:1;13218:6;13214:14;13207:58;13299:7;13294:2;13286:6;13282:15;13275:32;13090:224;:::o;13320:366::-;13462:3;13483:67;13547:2;13542:3;13483:67;:::i;:::-;13476:74;;13559:93;13648:3;13559:93;:::i;:::-;13677:2;13672:3;13668:12;13661:19;;13320:366;;;:::o;13692:419::-;13858:4;13896:2;13885:9;13881:18;13873:26;;13945:9;13939:4;13935:20;13931:1;13920:9;13916:17;13909:47;13973:131;14099:4;13973:131;:::i;:::-;13965:139;;13692:419;;;:::o;14117:180::-;14165:77;14162:1;14155:88;14262:4;14259:1;14252:15;14286:4;14283:1;14276:15;14303:180;14351:77;14348:1;14341:88;14448:4;14445:1;14438:15;14472:4;14469:1;14462:15;14489:143;14546:5;14577:6;14571:13;14562:22;;14593:33;14620:5;14593:33;:::i;:::-;14489:143;;;;:::o;14638:351::-;14708:6;14757:2;14745:9;14736:7;14732:23;14728:32;14725:119;;;14763:79;;:::i;:::-;14725:119;14883:1;14908:64;14964:7;14955:6;14944:9;14940:22;14908:64;:::i;:::-;14898:74;;14854:128;14638:351;;;;:::o;14995:85::-;15040:7;15069:5;15058:16;;14995:85;;;:::o;15086:60::-;15114:3;15135:5;15128:12;;15086:60;;;:::o;15152:158::-;15210:9;15243:61;15261:42;15270:32;15296:5;15270:32;:::i;:::-;15261:42;:::i;:::-;15243:61;:::i;:::-;15230:74;;15152:158;;;:::o;15316:147::-;15411:45;15450:5;15411:45;:::i;:::-;15406:3;15399:58;15316:147;;:::o;15469:114::-;15536:6;15570:5;15564:12;15554:22;;15469:114;;;:::o;15589:184::-;15688:11;15722:6;15717:3;15710:19;15762:4;15757:3;15753:14;15738:29;;15589:184;;;;:::o;15779:132::-;15846:4;15869:3;15861:11;;15899:4;15894:3;15890:14;15882:22;;15779:132;;;:::o;15917:108::-;15994:24;16012:5;15994:24;:::i;:::-;15989:3;15982:37;15917:108;;:::o;16031:179::-;16100:10;16121:46;16163:3;16155:6;16121:46;:::i;:::-;16199:4;16194:3;16190:14;16176:28;;16031:179;;;;:::o;16216:113::-;16286:4;16318;16313:3;16309:14;16301:22;;16216:113;;;:::o;16365:732::-;16484:3;16513:54;16561:5;16513:54;:::i;:::-;16583:86;16662:6;16657:3;16583:86;:::i;:::-;16576:93;;16693:56;16743:5;16693:56;:::i;:::-;16772:7;16803:1;16788:284;16813:6;16810:1;16807:13;16788:284;;;16889:6;16883:13;16916:63;16975:3;16960:13;16916:63;:::i;:::-;16909:70;;17002:60;17055:6;17002:60;:::i;:::-;16992:70;;16848:224;16835:1;16832;16828:9;16823:14;;16788:284;;;16792:14;17088:3;17081:10;;16489:608;;;16365:732;;;;:::o;17103:831::-;17366:4;17404:3;17393:9;17389:19;17381:27;;17418:71;17486:1;17475:9;17471:17;17462:6;17418:71;:::i;:::-;17499:80;17575:2;17564:9;17560:18;17551:6;17499:80;:::i;:::-;17626:9;17620:4;17616:20;17611:2;17600:9;17596:18;17589:48;17654:108;17757:4;17748:6;17654:108;:::i;:::-;17646:116;;17772:72;17840:2;17829:9;17825:18;17816:6;17772:72;:::i;:::-;17854:73;17922:3;17911:9;17907:19;17898:6;17854:73;:::i;:::-;17103:831;;;;;;;;:::o;17940:117::-;18049:1;18046;18039:12;18063:281;18146:27;18168:4;18146:27;:::i;:::-;18138:6;18134:40;18276:6;18264:10;18261:22;18240:18;18228:10;18225:34;18222:62;18219:88;;;18287:18;;:::i;:::-;18219:88;18327:10;18323:2;18316:22;18106:238;18063:281;;:::o;18350:129::-;18384:6;18411:20;;:::i;:::-;18401:30;;18440:33;18468:4;18460:6;18440:33;:::i;:::-;18350:129;;;:::o;18485:311::-;18562:4;18652:18;18644:6;18641:30;18638:56;;;18674:18;;:::i;:::-;18638:56;18724:4;18716:6;18712:17;18704:25;;18784:4;18778;18774:15;18766:23;;18485:311;;;:::o;18802:117::-;18911:1;18908;18901:12;18925:143;18982:5;19013:6;19007:13;18998:22;;19029:33;19056:5;19029:33;:::i;:::-;18925:143;;;;:::o;19091:732::-;19198:5;19223:81;19239:64;19296:6;19239:64;:::i;:::-;19223:81;:::i;:::-;19214:90;;19324:5;19353:6;19346:5;19339:21;19387:4;19380:5;19376:16;19369:23;;19440:4;19432:6;19428:17;19420:6;19416:30;19469:3;19461:6;19458:15;19455:122;;;19488:79;;:::i;:::-;19455:122;19603:6;19586:231;19620:6;19615:3;19612:15;19586:231;;;19695:3;19724:48;19768:3;19756:10;19724:48;:::i;:::-;19719:3;19712:61;19802:4;19797:3;19793:14;19786:21;;19662:155;19646:4;19641:3;19637:14;19630:21;;19586:231;;;19590:21;19204:619;;19091:732;;;;;:::o;19846:385::-;19928:5;19977:3;19970:4;19962:6;19958:17;19954:27;19944:122;;19985:79;;:::i;:::-;19944:122;20095:6;20089:13;20120:105;20221:3;20213:6;20206:4;20198:6;20194:17;20120:105;:::i;:::-;20111:114;;19934:297;19846:385;;;;:::o;20237:554::-;20332:6;20381:2;20369:9;20360:7;20356:23;20352:32;20349:119;;;20387:79;;:::i;:::-;20349:119;20528:1;20517:9;20513:17;20507:24;20558:18;20550:6;20547:30;20544:117;;;20580:79;;:::i;:::-;20544:117;20685:89;20766:7;20757:6;20746:9;20742:22;20685:89;:::i;:::-;20675:99;;20478:306;20237:554;;;;:::o;20797:483::-;20968:4;21006:2;20995:9;20991:18;20983:26;;21019:71;21087:1;21076:9;21072:17;21063:6;21019:71;:::i;:::-;21137:9;21131:4;21127:20;21122:2;21111:9;21107:18;21100:48;21165:108;21268:4;21259:6;21165:108;:::i;:::-;21157:116;;20797:483;;;;;:::o;21286:332::-;21407:4;21445:2;21434:9;21430:18;21422:26;;21458:71;21526:1;21515:9;21511:17;21502:6;21458:71;:::i;:::-;21539:72;21607:2;21596:9;21592:18;21583:6;21539:72;:::i;:::-;21286:332;;;;;:::o;21624:223::-;21764:34;21760:1;21752:6;21748:14;21741:58;21833:6;21828:2;21820:6;21816:15;21809:31;21624:223;:::o;21853:366::-;21995:3;22016:67;22080:2;22075:3;22016:67;:::i;:::-;22009:74;;22092:93;22181:3;22092:93;:::i;:::-;22210:2;22205:3;22201:12;22194:19;;21853:366;;;:::o;22225:419::-;22391:4;22429:2;22418:9;22414:18;22406:26;;22478:9;22472:4;22468:20;22464:1;22453:9;22449:17;22442:47;22506:131;22632:4;22506:131;:::i;:::-;22498:139;;22225:419;;;:::o;22650:221::-;22790:34;22786:1;22778:6;22774:14;22767:58;22859:4;22854:2;22846:6;22842:15;22835:29;22650:221;:::o;22877:366::-;23019:3;23040:67;23104:2;23099:3;23040:67;:::i;:::-;23033:74;;23116:93;23205:3;23116:93;:::i;:::-;23234:2;23229:3;23225:12;23218:19;;22877:366;;;:::o;23249:419::-;23415:4;23453:2;23442:9;23438:18;23430:26;;23502:9;23496:4;23492:20;23488:1;23477:9;23473:17;23466:47;23530:131;23656:4;23530:131;:::i;:::-;23522:139;;23249:419;;;:::o;23674:179::-;23814:31;23810:1;23802:6;23798:14;23791:55;23674:179;:::o;23859:366::-;24001:3;24022:67;24086:2;24081:3;24022:67;:::i;:::-;24015:74;;24098:93;24187:3;24098:93;:::i;:::-;24216:2;24211:3;24207:12;24200:19;;23859:366;;;:::o;24231:419::-;24397:4;24435:2;24424:9;24420:18;24412:26;;24484:9;24478:4;24474:20;24470:1;24459:9;24455:17;24448:47;24512:131;24638:4;24512:131;:::i;:::-;24504:139;;24231:419;;;:::o;24656:224::-;24796:34;24792:1;24784:6;24780:14;24773:58;24865:7;24860:2;24852:6;24848:15;24841:32;24656:224;:::o;24886:366::-;25028:3;25049:67;25113:2;25108:3;25049:67;:::i;:::-;25042:74;;25125:93;25214:3;25125:93;:::i;:::-;25243:2;25238:3;25234:12;25227:19;;24886:366;;;:::o;25258:419::-;25424:4;25462:2;25451:9;25447:18;25439:26;;25511:9;25505:4;25501:20;25497:1;25486:9;25482:17;25475:47;25539:131;25665:4;25539:131;:::i;:::-;25531:139;;25258:419;;;:::o;25683:222::-;25823:34;25819:1;25811:6;25807:14;25800:58;25892:5;25887:2;25879:6;25875:15;25868:30;25683:222;:::o;25911:366::-;26053:3;26074:67;26138:2;26133:3;26074:67;:::i;:::-;26067:74;;26150:93;26239:3;26150:93;:::i;:::-;26268:2;26263:3;26259:12;26252:19;;25911:366;;;:::o;26283:419::-;26449:4;26487:2;26476:9;26472:18;26464:26;;26536:9;26530:4;26526:20;26522:1;26511:9;26507:17;26500:47;26564:131;26690:4;26564:131;:::i;:::-;26556:139;;26283:419;;;:::o;26708:225::-;26848:34;26844:1;26836:6;26832:14;26825:58;26917:8;26912:2;26904:6;26900:15;26893:33;26708:225;:::o;26939:366::-;27081:3;27102:67;27166:2;27161:3;27102:67;:::i;:::-;27095:74;;27178:93;27267:3;27178:93;:::i;:::-;27296:2;27291:3;27287:12;27280:19;;26939:366;;;:::o;27311:419::-;27477:4;27515:2;27504:9;27500:18;27492:26;;27564:9;27558:4;27554:20;27550:1;27539:9;27535:17;27528:47;27592:131;27718:4;27592:131;:::i;:::-;27584:139;;27311:419;;;:::o;27736:241::-;27876:34;27872:1;27864:6;27860:14;27853:58;27945:24;27940:2;27932:6;27928:15;27921:49;27736:241;:::o;27983:366::-;28125:3;28146:67;28210:2;28205:3;28146:67;:::i;:::-;28139:74;;28222:93;28311:3;28222:93;:::i;:::-;28340:2;28335:3;28331:12;28324:19;;27983:366;;;:::o;28355:419::-;28521:4;28559:2;28548:9;28544:18;28536:26;;28608:9;28602:4;28598:20;28594:1;28583:9;28579:17;28572:47;28636:131;28762:4;28636:131;:::i;:::-;28628:139;;28355:419;;;:::o;28780:410::-;28820:7;28843:20;28861:1;28843:20;:::i;:::-;28838:25;;28877:20;28895:1;28877:20;:::i;:::-;28872:25;;28932:1;28929;28925:9;28954:30;28972:11;28954:30;:::i;:::-;28943:41;;29133:1;29124:7;29120:15;29117:1;29114:22;29094:1;29087:9;29067:83;29044:139;;29163:18;;:::i;:::-;29044:139;28828:362;28780:410;;;;:::o

Swarm Source

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