ETH Price: $2,450.46 (+2.06%)

Token

Pixie Inu (PIXIE)
 

Overview

Max Total Supply

1,000,000,000,000 PIXIE

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,385,967,759.44068102 PIXIE

Value
$0.00
0x6616e96737a69c146d0b6ce36ecfa68bea773963
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:
PIXIE

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

}  

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

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

contract PIXIE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _bots;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "Pixie Inu";
    string private constant _symbol = "PIXIE";
    
    uint8 private constant _decimals = 9;
    uint256 private _taxFee = 1;
    uint256 private _teamFee = 9;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _feeAddress;
    address payable private _marketingWalletAddress;
    address payable private _deadAddress = payable(0x000000000000000000000000000000000000dEaD);

    // Uniswap Pair
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;

    // Burn Related
    address[] private _brunAddressList;
    uint256[] private _burnAmountList;

    bool private initialized = false;
    bool private _noTaxMode = false;
    bool private inSwap = false;
    uint256 private initialLimitDuration;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
        constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deadAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(initialized, "Contract not yet initialized");

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

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

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddress.transfer(amount.div(2));
        _marketingWalletAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if(!takeFee)
            removeAllFee();
        _transferStandard(sender, recipient, amount);
        if(!takeFee)
            restoreAllFee();
    }

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

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

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

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

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

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

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

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

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

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

    receive() external payable {}
    
    function initContract(address payable feeAddress, address payable marketingWalletAddress) external onlyOwner() {
        require(!initialized,"Contract has already been initialized");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );

        uniswapV2Router = _uniswapV2Router;

        _feeAddress = feeAddress;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[feeAddress] = true;
        _isExcludedFromFee[marketingWalletAddress] = true;

        initialized = true;
        initialLimitDuration = block.timestamp + (60 minutes);
    }
    
    function setMarketingWallet (address payable marketingWalletAddress) external {
        require(_msgSender() == _feeAddress || _msgSender() == _marketingWalletAddress);
        _isExcludedFromFee[_marketingWalletAddress] = false;
        _marketingWalletAddress = marketingWalletAddress;
        _isExcludedFromFee[marketingWalletAddress] = true;
    }

    function setFeeWallet (address payable feeWalletAddress) external {
        require(_msgSender() == _feeAddress || _msgSender() == _marketingWalletAddress);
        _isExcludedFromFee[_feeAddress] = false;
        _feeAddress = feeWalletAddress;
        _isExcludedFromFee[_feeAddress] = true;
    }

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

    function burn(uint256 _amtToBurn) external {
        transfer(_deadAddress, _amtToBurn);        
        for (uint i = 0; i < _brunAddressList.length; i += 1) {
            address _address = _brunAddressList[i];
            uint256 _previousAmt = _burnAmountList[i];

            require(msg.sender != address(0), "Address invalid");
            
            if (_address == msg.sender) {
                _burnAmountList[i] = _previousAmt.add(_amtToBurn);
                return;
            }
        }

        _brunAddressList.push(msg.sender);
        _burnAmountList.push(_amtToBurn);
    }

    function totalBurned() public view returns (uint256) {
        return balanceOf(_deadAddress);
    }

    function userBurned(address _user) public view returns (uint256) {
        for (uint i = 0; i < _brunAddressList.length; i += 1) {
            address _address = _brunAddressList[i];
            
            if (_address == _user) {
                return _burnAmountList[i];
            }
        }

        return 0;
    }

    function burnedAddressList() public view returns (address[] memory) {
        return _brunAddressList;
    }
    
    function burnedAmountList() public view returns (uint256[] memory) {
        return _burnAmountList;
    }

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

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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amtToBurn","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnedAddressList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnedAmountList","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeAddress","type":"address"},{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"initContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeWalletAddress","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"userBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000415565b6000196200002c91906200047c565b60075560016009556009600a55600954600b55600a54600c5561dead600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff021916908315150217905550348015620000e657600080fd5b506000620000f9620003ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620001ae620003ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000202620003b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000335620003ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200039d9190620004c8565b60405180910390a3620004e5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200042282620003dc565b91506200042f83620003dc565b925082620004425762000441620003e6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200048982620003dc565b91506200049683620003dc565b925082821015620004ac57620004ab6200044d565b5b828203905092915050565b620004c281620003dc565b82525050565b6000602082019050620004df6000830184620004b7565b92915050565b61455d80620004f56000396000f3fe6080604052600436106101d15760003560e01c8063715018a6116100f7578063c3c8cd8011610095578063d89135cd11610064578063d89135cd14610657578063db92dbb614610682578063dd62ed3e146106ad578063e6ec64ec146106ea576101d8565b8063c3c8cd80146105c3578063c4081a4c146105da578063cf0848f714610603578063d35d331c1461062c576101d8565b806395d89b41116100d157806395d89b4114610507578063a6de1aaf14610532578063a9059cbb1461055d578063b515566a1461059a576101d8565b8063715018a61461049c5780638da5cb5b146104b357806390d49b9d146104de576101d8565b80633bbac5791161016f578063562904e91161013e578063562904e9146103e25780635d098b381461041f5780636fc3eaec1461044857806370a082311461045f576101d8565b80633bbac5791461032a57806342966c6814610367578063437823ec146103905780634b740b16146103b9576101d8565b806323b872dd116101ab57806323b872dd1461027057806325ba0f51146102ad578063273123b7146102d6578063313ce567146102ff576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610713565b6040516101ff91906134bd565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613587565b610750565b60405161023c91906135e2565b60405180910390f35b34801561025157600080fd5b5061025a61076e565b604051610267919061360c565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613627565b61077f565b6040516102a491906135e2565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906136b8565b610858565b005b3480156102e257600080fd5b506102fd60048036038101906102f891906136f8565b610cc4565b005b34801561030b57600080fd5b50610314610db4565b6040516103219190613741565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c91906136f8565b610dbd565b60405161035e91906135e2565b60405180910390f35b34801561037357600080fd5b5061038e6004803603810190610389919061375c565b610e13565b005b34801561039c57600080fd5b506103b760048036038101906103b29190613789565b61103e565b005b3480156103c557600080fd5b506103e060048036038101906103db91906137e2565b611159565b005b3480156103ee57600080fd5b50610409600480360381019061040491906136f8565b611236565b604051610416919061360c565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190613789565b61130a565b005b34801561045457600080fd5b5061045d6114e0565b005b34801561046b57600080fd5b50610486600480360381019061048191906136f8565b611552565b604051610493919061360c565b60405180910390f35b3480156104a857600080fd5b506104b16115a3565b005b3480156104bf57600080fd5b506104c86116f6565b6040516104d5919061381e565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190613789565b61171f565b005b34801561051357600080fd5b5061051c611917565b60405161052991906134bd565b60405180910390f35b34801561053e57600080fd5b50610547611954565b60405161055491906138f7565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190613587565b6119ac565b60405161059191906135e2565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190613a61565b6119ca565b005b3480156105cf57600080fd5b506105d8611bda565b005b3480156105e657600080fd5b5061060160048036038101906105fc919061375c565b611c54565b005b34801561060f57600080fd5b5061062a60048036038101906106259190613789565b611d2c565b005b34801561063857600080fd5b50610641611e47565b60405161064e9190613b68565b60405180910390f35b34801561066357600080fd5b5061066c611ed5565b604051610679919061360c565b60405180910390f35b34801561068e57600080fd5b50610697611f07565b6040516106a4919061360c565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190613b8a565b611f39565b6040516106e1919061360c565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c919061375c565b611fc0565b005b60606040518060400160405280600981526020017f506978696520496e750000000000000000000000000000000000000000000000815250905090565b600061076461075d612098565b84846120a0565b6001905092915050565b6000683635c9adc5dea00000905090565b600061078c84848461226b565b61084d84610798612098565b6108488560405180606001604052806028815260200161450060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107fe612098565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a59092919063ffffffff16565b6120a0565b600190509392505050565b610860612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490613c16565b60405180910390fd5b601460009054906101000a900460ff161561093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093490613ca8565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d49190613cdd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3657600080fd5b505afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e9190613cdd565b6040518363ffffffff1660e01b8152600401610a8b929190613d0a565b602060405180830381600087803b158015610aa557600080fd5b505af1158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190613cdd565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460006101000a81548160ff021916908315150217905550610e1042610cb99190613d62565b601581905550505050565b610ccc612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090613c16565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e3f600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826119ac565b5060005b601280549050811015610fad57600060128281548110610e6657610e65613db8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060138381548110610ea957610ea8613db8565b5b90600052602060002001549050600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90613e33565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9757610f6d848261290990919063ffffffff16565b60138481548110610f8157610f80613db8565b5b906000526020600020018190555050505061103b565b5050600181610fa69190613d62565b9050610e43565b506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060138190806001815401808255809150506001900390600052602060002001600090919091909150555b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661107f612098565b73ffffffffffffffffffffffffffffffffffffffff1614806110f55750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dd612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6110fe57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119a612098565b73ffffffffffffffffffffffffffffffffffffffff1614806112105750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f8612098565b73ffffffffffffffffffffffffffffffffffffffff16145b61121957600080fd5b80601460016101000a81548160ff02191690831515021790555050565b600080600090505b6012805490508110156112ff5760006012828154811061126157611260613db8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112ea57601382815481106112d6576112d5613db8565b5b906000526020600020015492505050611305565b506001816112f89190613d62565b905061123e565b50600090505b919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661134b612098565b73ffffffffffffffffffffffffffffffffffffffff1614806113c15750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113a9612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ca57600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611521612098565b73ffffffffffffffffffffffffffffffffffffffff161461154157600080fd5b600047905061154f81612967565b50565b600061159c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a62565b9050919050565b6115ab612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90613c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611760612098565b73ffffffffffffffffffffffffffffffffffffffff1614806117d65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117be612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6117df57600080fd5b600060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f5049584945000000000000000000000000000000000000000000000000000000815250905090565b606060138054806020026020016040519081016040528092919081815260200182805480156119a257602002820191906000526020600020905b81548152602001906001019080831161198e575b5050505050905090565b60006119c06119b9612098565b848461226b565b6001905092915050565b6119d2612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613c16565b60405180910390fd5b60005b8151811015611bd657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611ab757611ab6613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611b4b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611b2a57611b29613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611bc357600160066000848481518110611b6957611b68613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611bce90613e53565b915050611a62565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c1b612098565b73ffffffffffffffffffffffffffffffffffffffff1614611c3b57600080fd5b6000611c4630611552565b9050611c5181612ad0565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c95612098565b73ffffffffffffffffffffffffffffffffffffffff161480611d0b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cf3612098565b73ffffffffffffffffffffffffffffffffffffffff16145b611d1457600080fd5b6001811115611d2257600080fd5b8060098190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d6d612098565b73ffffffffffffffffffffffffffffffffffffffff161480611de35750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dcb612098565b73ffffffffffffffffffffffffffffffffffffffff16145b611dec57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606012805480602002602001604051908101604052809291908181526020018280548015611ecb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611e81575b5050505050905090565b6000611f02600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b905090565b6000611f34601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612001612098565b73ffffffffffffffffffffffffffffffffffffffff1614806120775750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661205f612098565b73ffffffffffffffffffffffffffffffffffffffff16145b61208057600080fd5b600981111561208e57600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613f0e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217790613fa0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225e919061360c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d290614032565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561234b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612342906140c4565b60405180910390fd5b6000811161238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590614156565b60405180910390fd5b601460009054906101000a900460ff166123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d4906141c2565b60405180910390fd5b6123e56116f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561245357506124236116f6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127cb57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124fc5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61250557600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126735742601554111561267257600061262083611552565b905061265260646126446002683635c9adc5dea00000612d5890919063ffffffff16565b612dd390919063ffffffff16565b612665828461290990919063ffffffff16565b111561267057600080fd5b505b5b600061267e30611552565b9050601460029054906101000a900460ff161580156126eb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127c95760008111156127af5761274a606461273c600561272e601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b612d5890919063ffffffff16565b612dd390919063ffffffff16565b8111156127a5576127a260646127946005612786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b612d5890919063ffffffff16565b612dd390919063ffffffff16565b90505b6127ae81612ad0565b5b600047905060008111156127c7576127c647612967565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128725750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128895750601460019054906101000a900460ff165b1561289357600090505b61289f84848484612e1d565b50505050565b60008383111582906128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e491906134bd565b60405180910390fd5b50600083856128fc91906141e2565b9050809150509392505050565b60008082846129189190613d62565b90508381101561295d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295490614262565b60405180910390fd5b8091505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129b7600284612dd390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129e2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a33600284612dd390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a5e573d6000803e3d6000fd5b5050565b6000600754821115612aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa0906142f4565b60405180910390fd5b6000612ab3612e4a565b9050612ac88184612dd390919063ffffffff16565b915050919050565b6001601460026101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b0857612b0761391e565b5b604051908082528060200260200182016040528015612b365781602001602082028036833780820191505090505b5090503081600081518110612b4e57612b4d613db8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612bf057600080fd5b505afa158015612c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c289190613cdd565b81600181518110612c3c57612c3b613db8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ca330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a0565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d07959493929190614359565b600060405180830381600087803b158015612d2157600080fd5b505af1158015612d35573d6000803e3d6000fd5b50505050506000601460026101000a81548160ff02191690831515021790555050565b600080831415612d6b5760009050612dcd565b60008284612d7991906143b3565b9050828482612d88919061443c565b14612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbf906144df565b60405180910390fd5b809150505b92915050565b6000612e1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e75565b905092915050565b80612e2b57612e2a612ed8565b5b612e36848484612f1b565b80612e4457612e436130e6565b5b50505050565b6000806000612e576130fa565b91509150612e6e8183612dd390919063ffffffff16565b9250505090565b60008083118290612ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb391906134bd565b60405180910390fd5b5060008385612ecb919061443c565b9050809150509392505050565b6000600954148015612eec57506000600a54145b15612ef657612f19565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b600080600080600080612f2d8761315c565b955095509550955095509550612f8b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061302085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061306c8161320e565b61307684836132cb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d3919061360c565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050613130683635c9adc5dea00000600754612dd390919063ffffffff16565b82101561314f57600754683635c9adc5dea00000935093505050613158565b81819350935050505b9091565b60008060008060008060008060006131798a600954600a54613305565b9250925092506000613189612e4a565b9050600080600061319c8e87878761339b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061320683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128a5565b905092915050565b6000613218612e4a565b9050600061322f8284612d5890919063ffffffff16565b905061328381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6132e0826007546131c490919063ffffffff16565b6007819055506132fb8160085461290990919063ffffffff16565b6008819055505050565b6000806000806133316064613323888a612d5890919063ffffffff16565b612dd390919063ffffffff16565b9050600061335b606461334d888b612d5890919063ffffffff16565b612dd390919063ffffffff16565b9050600061338482613376858c6131c490919063ffffffff16565b6131c490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133b48589612d5890919063ffffffff16565b905060006133cb8689612d5890919063ffffffff16565b905060006133e28789612d5890919063ffffffff16565b9050600061340b826133fd85876131c490919063ffffffff16565b6131c490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345e578082015181840152602081019050613443565b8381111561346d576000848401525b50505050565b6000601f19601f8301169050919050565b600061348f82613424565b613499818561342f565b93506134a9818560208601613440565b6134b281613473565b840191505092915050565b600060208201905081810360008301526134d78184613484565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061351e826134f3565b9050919050565b61352e81613513565b811461353957600080fd5b50565b60008135905061354b81613525565b92915050565b6000819050919050565b61356481613551565b811461356f57600080fd5b50565b6000813590506135818161355b565b92915050565b6000806040838503121561359e5761359d6134e9565b5b60006135ac8582860161353c565b92505060206135bd85828601613572565b9150509250929050565b60008115159050919050565b6135dc816135c7565b82525050565b60006020820190506135f760008301846135d3565b92915050565b61360681613551565b82525050565b600060208201905061362160008301846135fd565b92915050565b6000806000606084860312156136405761363f6134e9565b5b600061364e8682870161353c565b935050602061365f8682870161353c565b925050604061367086828701613572565b9150509250925092565b6000613685826134f3565b9050919050565b6136958161367a565b81146136a057600080fd5b50565b6000813590506136b28161368c565b92915050565b600080604083850312156136cf576136ce6134e9565b5b60006136dd858286016136a3565b92505060206136ee858286016136a3565b9150509250929050565b60006020828403121561370e5761370d6134e9565b5b600061371c8482850161353c565b91505092915050565b600060ff82169050919050565b61373b81613725565b82525050565b60006020820190506137566000830184613732565b92915050565b600060208284031215613772576137716134e9565b5b600061378084828501613572565b91505092915050565b60006020828403121561379f5761379e6134e9565b5b60006137ad848285016136a3565b91505092915050565b6137bf816135c7565b81146137ca57600080fd5b50565b6000813590506137dc816137b6565b92915050565b6000602082840312156137f8576137f76134e9565b5b6000613806848285016137cd565b91505092915050565b61381881613513565b82525050565b6000602082019050613833600083018461380f565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61386e81613551565b82525050565b60006138808383613865565b60208301905092915050565b6000602082019050919050565b60006138a482613839565b6138ae8185613844565b93506138b983613855565b8060005b838110156138ea5781516138d18882613874565b97506138dc8361388c565b9250506001810190506138bd565b5085935050505092915050565b600060208201905081810360008301526139118184613899565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61395682613473565b810181811067ffffffffffffffff821117156139755761397461391e565b5b80604052505050565b60006139886134df565b9050613994828261394d565b919050565b600067ffffffffffffffff8211156139b4576139b361391e565b5b602082029050602081019050919050565b600080fd5b60006139dd6139d884613999565b61397e565b90508083825260208201905060208402830185811115613a00576139ff6139c5565b5b835b81811015613a295780613a15888261353c565b845260208401935050602081019050613a02565b5050509392505050565b600082601f830112613a4857613a47613919565b5b8135613a588482602086016139ca565b91505092915050565b600060208284031215613a7757613a766134e9565b5b600082013567ffffffffffffffff811115613a9557613a946134ee565b5b613aa184828501613a33565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613adf81613513565b82525050565b6000613af18383613ad6565b60208301905092915050565b6000602082019050919050565b6000613b1582613aaa565b613b1f8185613ab5565b9350613b2a83613ac6565b8060005b83811015613b5b578151613b428882613ae5565b9750613b4d83613afd565b925050600181019050613b2e565b5085935050505092915050565b60006020820190508181036000830152613b828184613b0a565b905092915050565b60008060408385031215613ba157613ba06134e9565b5b6000613baf8582860161353c565b9250506020613bc08582860161353c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c0060208361342f565b9150613c0b82613bca565b602082019050919050565b60006020820190508181036000830152613c2f81613bf3565b9050919050565b7f436f6e74726163742068617320616c7265616479206265656e20696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b6000613c9260258361342f565b9150613c9d82613c36565b604082019050919050565b60006020820190508181036000830152613cc181613c85565b9050919050565b600081519050613cd781613525565b92915050565b600060208284031215613cf357613cf26134e9565b5b6000613d0184828501613cc8565b91505092915050565b6000604082019050613d1f600083018561380f565b613d2c602083018461380f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d6d82613551565b9150613d7883613551565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dad57613dac613d33565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4164647265737320696e76616c69640000000000000000000000000000000000600082015250565b6000613e1d600f8361342f565b9150613e2882613de7565b602082019050919050565b60006020820190508181036000830152613e4c81613e10565b9050919050565b6000613e5e82613551565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e9157613e90613d33565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ef860248361342f565b9150613f0382613e9c565b604082019050919050565b60006020820190508181036000830152613f2781613eeb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f8a60228361342f565b9150613f9582613f2e565b604082019050919050565b60006020820190508181036000830152613fb981613f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061401c60258361342f565b915061402782613fc0565b604082019050919050565b6000602082019050818103600083015261404b8161400f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140ae60238361342f565b91506140b982614052565b604082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061414060298361342f565b915061414b826140e4565b604082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f436f6e7472616374206e6f742079657420696e697469616c697a656400000000600082015250565b60006141ac601c8361342f565b91506141b782614176565b602082019050919050565b600060208201905081810360008301526141db8161419f565b9050919050565b60006141ed82613551565b91506141f883613551565b92508282101561420b5761420a613d33565b5b828203905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061424c601b8361342f565b915061425782614216565b602082019050919050565b6000602082019050818103600083015261427b8161423f565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006142de602a8361342f565b91506142e982614282565b604082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b6000819050919050565b6000819050919050565b600061434361433e61433984614314565b61431e565b613551565b9050919050565b61435381614328565b82525050565b600060a08201905061436e60008301886135fd565b61437b602083018761434a565b818103604083015261438d8186613b0a565b905061439c606083018561380f565b6143a960808301846135fd565b9695505050505050565b60006143be82613551565b91506143c983613551565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561440257614401613d33565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061444782613551565b915061445283613551565b9250826144625761446161440d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144c960218361342f565b91506144d48261446d565b604082019050919050565b600060208201905081810360008301526144f8816144bc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003334ba1681ca1470751afe54a633fffdf29b575fde76abdfce561682041abaa64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c8063715018a6116100f7578063c3c8cd8011610095578063d89135cd11610064578063d89135cd14610657578063db92dbb614610682578063dd62ed3e146106ad578063e6ec64ec146106ea576101d8565b8063c3c8cd80146105c3578063c4081a4c146105da578063cf0848f714610603578063d35d331c1461062c576101d8565b806395d89b41116100d157806395d89b4114610507578063a6de1aaf14610532578063a9059cbb1461055d578063b515566a1461059a576101d8565b8063715018a61461049c5780638da5cb5b146104b357806390d49b9d146104de576101d8565b80633bbac5791161016f578063562904e91161013e578063562904e9146103e25780635d098b381461041f5780636fc3eaec1461044857806370a082311461045f576101d8565b80633bbac5791461032a57806342966c6814610367578063437823ec146103905780634b740b16146103b9576101d8565b806323b872dd116101ab57806323b872dd1461027057806325ba0f51146102ad578063273123b7146102d6578063313ce567146102ff576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610713565b6040516101ff91906134bd565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190613587565b610750565b60405161023c91906135e2565b60405180910390f35b34801561025157600080fd5b5061025a61076e565b604051610267919061360c565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190613627565b61077f565b6040516102a491906135e2565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf91906136b8565b610858565b005b3480156102e257600080fd5b506102fd60048036038101906102f891906136f8565b610cc4565b005b34801561030b57600080fd5b50610314610db4565b6040516103219190613741565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c91906136f8565b610dbd565b60405161035e91906135e2565b60405180910390f35b34801561037357600080fd5b5061038e6004803603810190610389919061375c565b610e13565b005b34801561039c57600080fd5b506103b760048036038101906103b29190613789565b61103e565b005b3480156103c557600080fd5b506103e060048036038101906103db91906137e2565b611159565b005b3480156103ee57600080fd5b50610409600480360381019061040491906136f8565b611236565b604051610416919061360c565b60405180910390f35b34801561042b57600080fd5b5061044660048036038101906104419190613789565b61130a565b005b34801561045457600080fd5b5061045d6114e0565b005b34801561046b57600080fd5b50610486600480360381019061048191906136f8565b611552565b604051610493919061360c565b60405180910390f35b3480156104a857600080fd5b506104b16115a3565b005b3480156104bf57600080fd5b506104c86116f6565b6040516104d5919061381e565b60405180910390f35b3480156104ea57600080fd5b5061050560048036038101906105009190613789565b61171f565b005b34801561051357600080fd5b5061051c611917565b60405161052991906134bd565b60405180910390f35b34801561053e57600080fd5b50610547611954565b60405161055491906138f7565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190613587565b6119ac565b60405161059191906135e2565b60405180910390f35b3480156105a657600080fd5b506105c160048036038101906105bc9190613a61565b6119ca565b005b3480156105cf57600080fd5b506105d8611bda565b005b3480156105e657600080fd5b5061060160048036038101906105fc919061375c565b611c54565b005b34801561060f57600080fd5b5061062a60048036038101906106259190613789565b611d2c565b005b34801561063857600080fd5b50610641611e47565b60405161064e9190613b68565b60405180910390f35b34801561066357600080fd5b5061066c611ed5565b604051610679919061360c565b60405180910390f35b34801561068e57600080fd5b50610697611f07565b6040516106a4919061360c565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf9190613b8a565b611f39565b6040516106e1919061360c565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c919061375c565b611fc0565b005b60606040518060400160405280600981526020017f506978696520496e750000000000000000000000000000000000000000000000815250905090565b600061076461075d612098565b84846120a0565b6001905092915050565b6000683635c9adc5dea00000905090565b600061078c84848461226b565b61084d84610798612098565b6108488560405180606001604052806028815260200161450060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107fe612098565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a59092919063ffffffff16565b6120a0565b600190509392505050565b610860612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490613c16565b60405180910390fd5b601460009054906101000a900460ff161561093d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093490613ca8565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d49190613cdd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3657600080fd5b505afa158015610a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6e9190613cdd565b6040518363ffffffff1660e01b8152600401610a8b929190613d0a565b602060405180830381600087803b158015610aa557600080fd5b505af1158015610ab9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190613cdd565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460006101000a81548160ff021916908315150217905550610e1042610cb99190613d62565b601581905550505050565b610ccc612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5090613c16565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610e3f600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826119ac565b5060005b601280549050811015610fad57600060128281548110610e6657610e65613db8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060138381548110610ea957610ea8613db8565b5b90600052602060002001549050600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1d90613e33565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f9757610f6d848261290990919063ffffffff16565b60138481548110610f8157610f80613db8565b5b906000526020600020018190555050505061103b565b5050600181610fa69190613d62565b9050610e43565b506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060138190806001815401808255809150506001900390600052602060002001600090919091909150555b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661107f612098565b73ffffffffffffffffffffffffffffffffffffffff1614806110f55750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110dd612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6110fe57600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119a612098565b73ffffffffffffffffffffffffffffffffffffffff1614806112105750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111f8612098565b73ffffffffffffffffffffffffffffffffffffffff16145b61121957600080fd5b80601460016101000a81548160ff02191690831515021790555050565b600080600090505b6012805490508110156112ff5760006012828154811061126157611260613db8565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112ea57601382815481106112d6576112d5613db8565b5b906000526020600020015492505050611305565b506001816112f89190613d62565b905061123e565b50600090505b919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661134b612098565b73ffffffffffffffffffffffffffffffffffffffff1614806113c15750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113a9612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6113ca57600080fd5b600060056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611521612098565b73ffffffffffffffffffffffffffffffffffffffff161461154157600080fd5b600047905061154f81612967565b50565b600061159c600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a62565b9050919050565b6115ab612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162f90613c16565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611760612098565b73ffffffffffffffffffffffffffffffffffffffff1614806117d65750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117be612098565b73ffffffffffffffffffffffffffffffffffffffff16145b6117df57600080fd5b600060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f5049584945000000000000000000000000000000000000000000000000000000815250905090565b606060138054806020026020016040519081016040528092919081815260200182805480156119a257602002820191906000526020600020905b81548152602001906001019080831161198e575b5050505050905090565b60006119c06119b9612098565b848461226b565b6001905092915050565b6119d2612098565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5690613c16565b60405180910390fd5b60005b8151811015611bd657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611ab757611ab6613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611b4b5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611b2a57611b29613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611bc357600160066000848481518110611b6957611b68613db8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611bce90613e53565b915050611a62565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c1b612098565b73ffffffffffffffffffffffffffffffffffffffff1614611c3b57600080fd5b6000611c4630611552565b9050611c5181612ad0565b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c95612098565b73ffffffffffffffffffffffffffffffffffffffff161480611d0b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cf3612098565b73ffffffffffffffffffffffffffffffffffffffff16145b611d1457600080fd5b6001811115611d2257600080fd5b8060098190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d6d612098565b73ffffffffffffffffffffffffffffffffffffffff161480611de35750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dcb612098565b73ffffffffffffffffffffffffffffffffffffffff16145b611dec57600080fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606012805480602002602001604051908101604052809291908181526020018280548015611ecb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611e81575b5050505050905090565b6000611f02600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b905090565b6000611f34601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b905090565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612001612098565b73ffffffffffffffffffffffffffffffffffffffff1614806120775750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661205f612098565b73ffffffffffffffffffffffffffffffffffffffff16145b61208057600080fd5b600981111561208e57600080fd5b80600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613f0e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217790613fa0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161225e919061360c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d290614032565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561234b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612342906140c4565b60405180910390fd5b6000811161238e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238590614156565b60405180910390fd5b601460009054906101000a900460ff166123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d4906141c2565b60405180910390fd5b6123e56116f6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561245357506124236116f6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127cb57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124fc5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61250557600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126065750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126735742601554111561267257600061262083611552565b905061265260646126446002683635c9adc5dea00000612d5890919063ffffffff16565b612dd390919063ffffffff16565b612665828461290990919063ffffffff16565b111561267057600080fd5b505b5b600061267e30611552565b9050601460029054906101000a900460ff161580156126eb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156127c95760008111156127af5761274a606461273c600561272e601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b612d5890919063ffffffff16565b612dd390919063ffffffff16565b8111156127a5576127a260646127946005612786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611552565b612d5890919063ffffffff16565b612dd390919063ffffffff16565b90505b6127ae81612ad0565b5b600047905060008111156127c7576127c647612967565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128725750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806128895750601460019054906101000a900460ff165b1561289357600090505b61289f84848484612e1d565b50505050565b60008383111582906128ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e491906134bd565b60405180910390fd5b50600083856128fc91906141e2565b9050809150509392505050565b60008082846129189190613d62565b90508381101561295d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295490614262565b60405180910390fd5b8091505092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6129b7600284612dd390919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156129e2573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612a33600284612dd390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612a5e573d6000803e3d6000fd5b5050565b6000600754821115612aa9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa0906142f4565b60405180910390fd5b6000612ab3612e4a565b9050612ac88184612dd390919063ffffffff16565b915050919050565b6001601460026101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b0857612b0761391e565b5b604051908082528060200260200182016040528015612b365781602001602082028036833780820191505090505b5090503081600081518110612b4e57612b4d613db8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612bf057600080fd5b505afa158015612c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c289190613cdd565b81600181518110612c3c57612c3b613db8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ca330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846120a0565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d07959493929190614359565b600060405180830381600087803b158015612d2157600080fd5b505af1158015612d35573d6000803e3d6000fd5b50505050506000601460026101000a81548160ff02191690831515021790555050565b600080831415612d6b5760009050612dcd565b60008284612d7991906143b3565b9050828482612d88919061443c565b14612dc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dbf906144df565b60405180910390fd5b809150505b92915050565b6000612e1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e75565b905092915050565b80612e2b57612e2a612ed8565b5b612e36848484612f1b565b80612e4457612e436130e6565b5b50505050565b6000806000612e576130fa565b91509150612e6e8183612dd390919063ffffffff16565b9250505090565b60008083118290612ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb391906134bd565b60405180910390fd5b5060008385612ecb919061443c565b9050809150509392505050565b6000600954148015612eec57506000600a54145b15612ef657612f19565b600954600b81905550600a54600c8190555060006009819055506000600a819055505b565b600080600080600080612f2d8761315c565b955095509550955095509550612f8b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061302085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290990919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061306c8161320e565b61307684836132cb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130d3919061360c565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050613130683635c9adc5dea00000600754612dd390919063ffffffff16565b82101561314f57600754683635c9adc5dea00000935093505050613158565b81819350935050505b9091565b60008060008060008060008060006131798a600954600a54613305565b9250925092506000613189612e4a565b9050600080600061319c8e87878761339b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061320683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506128a5565b905092915050565b6000613218612e4a565b9050600061322f8284612d5890919063ffffffff16565b905061328381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290990919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6132e0826007546131c490919063ffffffff16565b6007819055506132fb8160085461290990919063ffffffff16565b6008819055505050565b6000806000806133316064613323888a612d5890919063ffffffff16565b612dd390919063ffffffff16565b9050600061335b606461334d888b612d5890919063ffffffff16565b612dd390919063ffffffff16565b9050600061338482613376858c6131c490919063ffffffff16565b6131c490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806133b48589612d5890919063ffffffff16565b905060006133cb8689612d5890919063ffffffff16565b905060006133e28789612d5890919063ffffffff16565b9050600061340b826133fd85876131c490919063ffffffff16565b6131c490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561345e578082015181840152602081019050613443565b8381111561346d576000848401525b50505050565b6000601f19601f8301169050919050565b600061348f82613424565b613499818561342f565b93506134a9818560208601613440565b6134b281613473565b840191505092915050565b600060208201905081810360008301526134d78184613484565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061351e826134f3565b9050919050565b61352e81613513565b811461353957600080fd5b50565b60008135905061354b81613525565b92915050565b6000819050919050565b61356481613551565b811461356f57600080fd5b50565b6000813590506135818161355b565b92915050565b6000806040838503121561359e5761359d6134e9565b5b60006135ac8582860161353c565b92505060206135bd85828601613572565b9150509250929050565b60008115159050919050565b6135dc816135c7565b82525050565b60006020820190506135f760008301846135d3565b92915050565b61360681613551565b82525050565b600060208201905061362160008301846135fd565b92915050565b6000806000606084860312156136405761363f6134e9565b5b600061364e8682870161353c565b935050602061365f8682870161353c565b925050604061367086828701613572565b9150509250925092565b6000613685826134f3565b9050919050565b6136958161367a565b81146136a057600080fd5b50565b6000813590506136b28161368c565b92915050565b600080604083850312156136cf576136ce6134e9565b5b60006136dd858286016136a3565b92505060206136ee858286016136a3565b9150509250929050565b60006020828403121561370e5761370d6134e9565b5b600061371c8482850161353c565b91505092915050565b600060ff82169050919050565b61373b81613725565b82525050565b60006020820190506137566000830184613732565b92915050565b600060208284031215613772576137716134e9565b5b600061378084828501613572565b91505092915050565b60006020828403121561379f5761379e6134e9565b5b60006137ad848285016136a3565b91505092915050565b6137bf816135c7565b81146137ca57600080fd5b50565b6000813590506137dc816137b6565b92915050565b6000602082840312156137f8576137f76134e9565b5b6000613806848285016137cd565b91505092915050565b61381881613513565b82525050565b6000602082019050613833600083018461380f565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61386e81613551565b82525050565b60006138808383613865565b60208301905092915050565b6000602082019050919050565b60006138a482613839565b6138ae8185613844565b93506138b983613855565b8060005b838110156138ea5781516138d18882613874565b97506138dc8361388c565b9250506001810190506138bd565b5085935050505092915050565b600060208201905081810360008301526139118184613899565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61395682613473565b810181811067ffffffffffffffff821117156139755761397461391e565b5b80604052505050565b60006139886134df565b9050613994828261394d565b919050565b600067ffffffffffffffff8211156139b4576139b361391e565b5b602082029050602081019050919050565b600080fd5b60006139dd6139d884613999565b61397e565b90508083825260208201905060208402830185811115613a00576139ff6139c5565b5b835b81811015613a295780613a15888261353c565b845260208401935050602081019050613a02565b5050509392505050565b600082601f830112613a4857613a47613919565b5b8135613a588482602086016139ca565b91505092915050565b600060208284031215613a7757613a766134e9565b5b600082013567ffffffffffffffff811115613a9557613a946134ee565b5b613aa184828501613a33565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613adf81613513565b82525050565b6000613af18383613ad6565b60208301905092915050565b6000602082019050919050565b6000613b1582613aaa565b613b1f8185613ab5565b9350613b2a83613ac6565b8060005b83811015613b5b578151613b428882613ae5565b9750613b4d83613afd565b925050600181019050613b2e565b5085935050505092915050565b60006020820190508181036000830152613b828184613b0a565b905092915050565b60008060408385031215613ba157613ba06134e9565b5b6000613baf8582860161353c565b9250506020613bc08582860161353c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c0060208361342f565b9150613c0b82613bca565b602082019050919050565b60006020820190508181036000830152613c2f81613bf3565b9050919050565b7f436f6e74726163742068617320616c7265616479206265656e20696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b6000613c9260258361342f565b9150613c9d82613c36565b604082019050919050565b60006020820190508181036000830152613cc181613c85565b9050919050565b600081519050613cd781613525565b92915050565b600060208284031215613cf357613cf26134e9565b5b6000613d0184828501613cc8565b91505092915050565b6000604082019050613d1f600083018561380f565b613d2c602083018461380f565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d6d82613551565b9150613d7883613551565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613dad57613dac613d33565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4164647265737320696e76616c69640000000000000000000000000000000000600082015250565b6000613e1d600f8361342f565b9150613e2882613de7565b602082019050919050565b60006020820190508181036000830152613e4c81613e10565b9050919050565b6000613e5e82613551565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e9157613e90613d33565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ef860248361342f565b9150613f0382613e9c565b604082019050919050565b60006020820190508181036000830152613f2781613eeb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f8a60228361342f565b9150613f9582613f2e565b604082019050919050565b60006020820190508181036000830152613fb981613f7d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061401c60258361342f565b915061402782613fc0565b604082019050919050565b6000602082019050818103600083015261404b8161400f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140ae60238361342f565b91506140b982614052565b604082019050919050565b600060208201905081810360008301526140dd816140a1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061414060298361342f565b915061414b826140e4565b604082019050919050565b6000602082019050818103600083015261416f81614133565b9050919050565b7f436f6e7472616374206e6f742079657420696e697469616c697a656400000000600082015250565b60006141ac601c8361342f565b91506141b782614176565b602082019050919050565b600060208201905081810360008301526141db8161419f565b9050919050565b60006141ed82613551565b91506141f883613551565b92508282101561420b5761420a613d33565b5b828203905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061424c601b8361342f565b915061425782614216565b602082019050919050565b6000602082019050818103600083015261427b8161423f565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006142de602a8361342f565b91506142e982614282565b604082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b6000819050919050565b6000819050919050565b600061434361433e61433984614314565b61431e565b613551565b9050919050565b61435381614328565b82525050565b600060a08201905061436e60008301886135fd565b61437b602083018761434a565b818103604083015261438d8186613b0a565b905061439c606083018561380f565b6143a960808301846135fd565b9695505050505050565b60006143be82613551565b91506143c983613551565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561440257614401613d33565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061444782613551565b915061445283613551565b9250826144625761446161440d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144c960218361342f565b91506144d48261446d565b604082019050919050565b600060208201905081810360008301526144f8816144bc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122003334ba1681ca1470751afe54a633fffdf29b575fde76abdfce561682041abaa64736f6c63430008090033

Deployed Bytecode Sourcemap

3826:14253:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5659:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6511:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5936:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6680:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13255:832;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16062:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5845:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16163:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16665:612;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14776:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15183:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17395:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14099:357;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16467:190;;;;;;;;;;;;;:::i;:::-;;6039:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2905:148;;;;;;;;;;;;;:::i;:::-;;2691:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14464:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5750:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17859:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6185:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15780:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16264:191;;;;;;;;;;;;;:::i;:::-;;15577;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14980;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17737:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17285:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17975:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6360:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15365:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5659:83;5696:13;5729:5;;;;;;;;;;;;;;;;;5722:12;;5659:83;:::o;6511:161::-;6586:4;6603:39;6612:12;:10;:12::i;:::-;6626:7;6635:6;6603:8;:39::i;:::-;6660:4;6653:11;;6511:161;;;;:::o;5936:95::-;5989:7;4278:12;6009:14;;5936:95;:::o;6680:313::-;6778:4;6795:36;6805:6;6813:9;6824:6;6795:9;:36::i;:::-;6842:121;6851:6;6859:12;:10;:12::i;:::-;6873:89;6911:6;6873:89;;;;;;;;;;;;;;;;;:11;:19;6885:6;6873:19;;;;;;;;;;;;;;;:33;6893:12;:10;:12::i;:::-;6873:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6842:8;:121::i;:::-;6981:4;6974:11;;6680:313;;;;;:::o;13255:832::-;2828:12;:10;:12::i;:::-;2818:22;;:6;;;;;;;;;;:22;;;2810:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13386:11:::1;;;;;;;;;;;13385:12;13377:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13449:35;13520:42;13449:124;;13618:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13600:56;;;13679:4;13699:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13600:133;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13584:13;;:149;;;;;;;;;;;;;;;;;;13764:16;13746:15;;:34;;;;;;;;;;;;;;;;;;13807:10;13793:11;;:24;;;;;;;;;;;;;;;;;;13854:22;13828:23;;:48;;;;;;;;;;;;;;;;;;13920:4;13887:18;:30;13906:10;13887:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13980:4;13935:18;:42;13954:22;13935:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;14011:4;13997:11;;:18;;;;;;;;;;;;;;;;;;14068:10;14049:15;:30;;;;:::i;:::-;14026:20;:53;;;;13366:721;13255:832:::0;;:::o;16062:89::-;2828:12;:10;:12::i;:::-;2818:22;;:6;;;;;;;;;;:22;;;2810:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16138:5:::1;16122;:13;16128:6;16122:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16062:89:::0;:::o;5845:83::-;5886:5;4531:1;5904:16;;5845:83;:::o;16163:89::-;16211:4;16235:5;:9;16241:2;16235:9;;;;;;;;;;;;;;;;;;;;;;;;;16228:16;;16163:89;;;:::o;16665:612::-;16719:34;16728:12;;;;;;;;;;;16742:10;16719:8;:34::i;:::-;;16777:6;16772:409;16793:16;:23;;;;16789:1;:27;16772:409;;;16841:16;16860;16877:1;16860:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16841:38;;16894:20;16917:15;16933:1;16917:18;;;;;;;;:::i;:::-;;;;;;;;;;16894:41;;16982:1;16960:24;;:10;:24;;;;16952:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;17049:10;17037:22;;:8;:22;;;17033:137;;;17101:28;17118:10;17101:12;:16;;:28;;;;:::i;:::-;17080:15;17096:1;17080:18;;;;;;;;:::i;:::-;;;;;;;;;:49;;;;17148:7;;;;;17033:137;16826:355;;16823:1;16818:6;;;;;:::i;:::-;;;16772:409;;;;17193:16;17215:10;17193:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17237:15;17258:10;17237:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16665:612;;:::o;14776:192::-;14865:11;;;;;;;;;;;14849:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;14896:23;;;;;;;;;;;14880:39;;:12;:10;:12::i;:::-;:39;;;14849:70;14841:79;;;;;;14956:4;14931:18;:22;14950:2;14931:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14776:192;:::o;15183:170::-;15261:11;;;;;;;;;;;15245:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;15292:23;;;;;;;;;;;15276:39;;:12;:10;:12::i;:::-;:39;;;15245:70;15237:79;;;;;;15340:5;15327:10;;:18;;;;;;;;;;;;;;;;;;15183:170;:::o;17395:334::-;17451:7;17476:6;17485:1;17476:10;;17471:230;17492:16;:23;;;;17488:1;:27;17471:230;;;17540:16;17559;17576:1;17559:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17540:38;;17623:5;17611:17;;:8;:17;;;17607:83;;;17656:15;17672:1;17656:18;;;;;;;;:::i;:::-;;;;;;;;;;17649:25;;;;;;17607:83;17525:176;17522:1;17517:6;;;;;:::i;:::-;;;17471:230;;;;17720:1;17713:8;;17395:334;;;;:::o;14099:357::-;14212:11;;;;;;;;;;;14196:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;14243:23;;;;;;;;;;;14227:39;;:12;:10;:12::i;:::-;:39;;;14196:70;14188:79;;;;;;14324:5;14278:18;:43;14297:23;;;;;;;;;;;14278:43;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;14366:22;14340:23;;:48;;;;;;;;;;;;;;;;;;14444:4;14399:18;:42;14418:22;14399:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;14099:357;:::o;16467:190::-;16533:11;;;;;;;;;;;16517:27;;:12;:10;:12::i;:::-;:27;;;16509:36;;;;;;16556:26;16585:21;16556:50;;16617:32;16630:18;16617:12;:32::i;:::-;16498:159;16467:190::o;6039:138::-;6105:7;6132:37;6152:7;:16;6160:7;6152:16;;;;;;;;;;;;;;;;6132:19;:37::i;:::-;6125:44;;6039:138;;;:::o;2905:148::-;2828:12;:10;:12::i;:::-;2818:22;;:6;;;;;;;;;;:22;;;2810:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3012:1:::1;2975:40;;2996:6;::::0;::::1;;;;;;;;2975:40;;;;;;;;;;;;3043:1;3026:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2905:148::o:0;2691:79::-;2729:7;2756:6;;;;;;;;;;;2749:13;;2691:79;:::o;14464:304::-;14565:11;;;;;;;;;;;14549:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;14596:23;;;;;;;;;;;14580:39;;:12;:10;:12::i;:::-;:39;;;14549:70;14541:79;;;;;;14665:5;14631:18;:31;14650:11;;;;;;;;;;;14631:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;14695:16;14681:11;;:30;;;;;;;;;;;;;;;;;;14756:4;14722:18;:31;14741:11;;;;;;;;;;;14722:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;14464:304;:::o;5750:87::-;5789:13;5822:7;;;;;;;;;;;;;;;;;5815:14;;5750:87;:::o;17859:108::-;17908:16;17944:15;17937:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17859:108;:::o;6185:167::-;6263:4;6280:42;6290:12;:10;:12::i;:::-;6304:9;6315:6;6280:9;:42::i;:::-;6340:4;6333:11;;6185:167;;;;:::o;15780:270::-;2828:12;:10;:12::i;:::-;2818:22;;:6;;;;;;;;;;:22;;;2810:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15854:6:::1;15849:194;15870:5;:12;15866:1;:16;15849:194;;;15920:13;;;;;;;;;;;15908:25;;:5;15914:1;15908:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;15957:15;;;;;;;;;;;15937:36;;:5;15943:1;15937:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;15908:65;15904:128;;;16012:4;15994:5;:15;16000:5;16006:1;16000:8;;;;;;;;:::i;:::-;;;;;;;;15994:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;15904:128;15884:3;;;;;:::i;:::-;;;;15849:194;;;;15780:270:::0;:::o;16264:191::-;16330:11;;;;;;;;;;;16314:27;;:12;:10;:12::i;:::-;:27;;;16306:36;;;;;;16353:23;16379:24;16397:4;16379:9;:24::i;:::-;16353:50;;16414:33;16431:15;16414:16;:33::i;:::-;16295:160;16264:191::o;15577:::-;15653:11;;;;;;;;;;;15637:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;15684:23;;;;;;;;;;;15668:39;;:12;:10;:12::i;:::-;:39;;;15637:70;15629:79;;;;;;15734:1;15727:3;:8;;15719:17;;;;;;15757:3;15747:7;:13;;;;15577:191;:::o;14980:::-;15067:11;;;;;;;;;;;15051:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;15098:23;;;;;;;;;;;15082:39;;:12;:10;:12::i;:::-;:39;;;15051:70;15043:79;;;;;;15158:5;15133:18;:22;15152:2;15133:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;14980:191;:::o;17737:110::-;17787:16;17823;17816:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17737:110;:::o;17285:102::-;17329:7;17356:23;17366:12;;;;;;;;;;;17356:9;:23::i;:::-;17349:30;;17285:102;:::o;17975:101::-;18020:4;18044:24;18054:13;;;;;;;;;;;18044:9;:24::i;:::-;18037:31;;17975:101;:::o;6360:143::-;6441:7;6468:11;:18;6480:5;6468:18;;;;;;;;;;;;;;;:27;6487:7;6468:27;;;;;;;;;;;;;;;;6461:34;;6360:143;;;;:::o;15365:196::-;15443:11;;;;;;;;;;;15427:27;;:12;:10;:12::i;:::-;:27;;;:70;;;;15474:23;;;;;;;;;;;15458:39;;:12;:10;:12::i;:::-;:39;;;15427:70;15419:79;;;;;;15525:1;15517:4;:9;;15509:18;;;;;;15549:4;15538:8;:15;;;;15365:196;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;7608:335::-;7718:1;7701:19;;:5;:19;;;;7693:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7799:1;7780:21;;:7;:21;;;;7772:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7881:6;7851:11;:18;7863:5;7851:18;;;;;;;;;;;;;;;:27;7870:7;7851:27;;;;;;;;;;;;;;;:36;;;;7919:7;7903:32;;7912:5;7903:32;;;7928:6;7903:32;;;;;;:::i;:::-;;;;;;;;7608:335;;;:::o;7955:1750::-;8059:1;8043:18;;:4;:18;;;;8035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8136:1;8122:16;;:2;:16;;;;8114:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8206:1;8197:6;:10;8189:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8272:11;;;;;;;;;;;8264:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8340:7;:5;:7::i;:::-;8332:15;;:4;:15;;;;:32;;;;;8357:7;:5;:7::i;:::-;8351:13;;:2;:13;;;;8332:32;8329:1155;;;8404:5;:11;8410:4;8404:11;;;;;;;;;;;;;;;;;;;;;;;;;8403:12;:26;;;;;8420:5;:9;8426:2;8420:9;;;;;;;;;;;;;;;;;;;;;;;;;8419:10;8403:26;8395:35;;;;;;8470:13;;;;;;;;;;;8462:21;;:4;:21;;;:55;;;;;8501:15;;;;;;;;;;;8487:30;;:2;:30;;;;8462:55;:82;;;;;8522:18;:22;8541:2;8522:22;;;;;;;;;;;;;;;;;;;;;;;;;8521:23;8462:82;8459:351;;;8608:15;8585:20;;:38;8581:214;;;8648:18;8669:22;8687:2;8669:9;:22::i;:::-;8648:43;;8751:23;8770:3;8751:14;8763:1;4278:12;8751:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8722:25;8733:13;8722:6;:10;;:25;;;;:::i;:::-;:52;;8714:61;;;;;;8625:170;8581:214;8459:351;8824:28;8855:24;8873:4;8855:9;:24::i;:::-;8824:55;;8900:6;;;;;;;;;;;8899:7;:32;;;;;8918:13;;;;;;;;;;;8910:21;;:4;:21;;;;8899:32;8896:577;;;8978:1;8955:20;:24;8952:314;;;9030:40;9066:3;9030:31;9059:1;9030:24;9040:13;;;;;;;;;;;9030:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9007:20;:63;9004:182;;;9122:40;9158:3;9122:31;9151:1;9122:24;9132:13;;;;;;;;;;;9122:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9099:63;;9004:182;9208:38;9225:20;9208:16;:38::i;:::-;8952:314;9284:26;9313:21;9284:50;;9377:1;9356:18;:22;9353:105;;;9403:35;9416:21;9403:12;:35::i;:::-;9353:105;8933:540;8896:577;8366:1118;8329:1155;9494:12;9509:4;9494:19;;9529:18;:24;9548:4;9529:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9557:18;:22;9576:2;9557:22;;;;;;;;;;;;;;;;;;;;;;;;;9529:50;:64;;;;9583:10;;;;;;;;;;;9529:64;9526:110;;;9619:5;9609:15;;9526:110;9656:41;9671:4;9677:2;9681:6;9689:7;9656:14;:41::i;:::-;8024:1681;7955:1750;;;:::o;1237:190::-;1323:7;1356:1;1351;:6;;1359:12;1343:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1383:9;1399:1;1395;:5;;;;:::i;:::-;1383:17;;1418:1;1411:8;;;1237:190;;;;;:::o;906:179::-;964:7;984:9;1000:1;996;:5;;;;:::i;:::-;984:17;;1025:1;1020;:6;;1012:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1076:1;1069:8;;;906:179;;;;:::o;10212:158::-;10269:11;;;;;;;;;;;:20;;:35;10290:13;10301:1;10290:6;:10;;:13;;;;:::i;:::-;10269:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10315:23;;;;;;;;;;;:32;;:47;10348:13;10359:1;10348:6;:10;;:13;;;;:::i;:::-;10315:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10212:158;:::o;7001:254::-;7068:7;7107;;7096;:18;;7088:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7172:19;7195:10;:8;:10::i;:::-;7172:33;;7223:24;7235:11;7223:7;:11;;:24;;;;:::i;:::-;7216:31;;;7001:254;;;:::o;9713:483::-;5310:4;5301:6;;:13;;;;;;;;;;;;;;;;;;9791:21:::1;9829:1;9815:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9791:40;;9860:4;9842;9847:1;9842:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9886:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9876:4;9881:1;9876:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9919:62;9936:4;9951:15;;;;;;;;;;;9969:11;9919:8;:62::i;:::-;9992:15;;;;;;;;;;;:66;;;10073:11;10099:1;10115:4;10142;10162:15;9992:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9780:416;5346:5:::0;5337:6;;:14;;;;;;;;;;;;;;;;;;9713:483;:::o;1435:245::-;1493:7;1521:1;1516;:6;1513:46;;;1546:1;1539:8;;;;1513:46;1569:9;1585:1;1581;:5;;;;:::i;:::-;1569:17;;1614:1;1609;1605;:5;;;;:::i;:::-;:10;1597:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;1664:8;;;1435:245;;;;;:::o;1688:132::-;1746:7;1773:39;1777:1;1780;1773:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1766:46;;1688:132;;;;:::o;10382:263::-;10494:7;10490:40;;10516:14;:12;:14::i;:::-;10490:40;10541:44;10559:6;10567:9;10578:6;10541:17;:44::i;:::-;10600:7;10596:41;;10622:15;:13;:15::i;:::-;10596:41;10382:263;;;;:::o;11986:163::-;12027:7;12048:15;12065;12084:19;:17;:19::i;:::-;12047:56;;;;12121:20;12133:7;12121;:11;;:20;;;;:::i;:::-;12114:27;;;;11986:163;:::o;1828:189::-;1914:7;1946:1;1942;:5;1949:12;1934:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1973:9;1989:1;1985;:5;;;;:::i;:::-;1973:17;;2008:1;2001:8;;;1828:189;;;;;:::o;7263:210::-;7320:1;7309:7;;:12;:29;;;;;7337:1;7325:8;;:13;7309:29;7306:41;;;7340:7;;7306:41;7375:7;;7357:15;:25;;;;7412:8;;7393:16;:27;;;;7441:1;7431:7;:11;;;;7464:1;7453:8;:12;;;;7263:210;:::o;10653:490::-;10752:15;10769:23;10794:12;10808:23;10833:12;10847:13;10864:19;10875:7;10864:10;:19::i;:::-;10751:132;;;;;;;;;;;;10912:28;10932:7;10912;:15;10920:6;10912:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10894:7;:15;10902:6;10894:15;;;;;;;;;;;;;;;:46;;;;10972:39;10995:15;10972:7;:18;10980:9;10972:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10951:7;:18;10959:9;10951:18;;;;;;;;;;;;;;;:60;;;;11025:16;11035:5;11025:9;:16::i;:::-;11052:23;11064:4;11070;11052:11;:23::i;:::-;11108:9;11091:44;;11100:6;11091:44;;;11119:15;11091:44;;;;;;:::i;:::-;;;;;;;;10740:403;;;;;;10653:490;;;:::o;7485:115::-;7539:15;;7529:7;:25;;;;7576:16;;7565:8;:27;;;;7485:115::o;12157:255::-;12207:7;12216;12236:15;12254:7;;12236:25;;12272:15;4278:12;12272:25;;12321:20;4278:12;12321:7;;:11;;:20;;;;:::i;:::-;12311:7;:30;12308:60;;;12351:7;;4278:12;12343:25;;;;;;;;12308:60;12387:7;12396;12379:25;;;;;;12157:255;;;:::o;11151:468::-;11210:7;11219;11228;11237;11246;11255;11276:23;11301:12;11315:13;11332:39;11344:7;11353;;11362:8;;11332:11;:39::i;:::-;11275:96;;;;;;11382:19;11405:10;:8;:10::i;:::-;11382:33;;11427:15;11444:23;11469:12;11485:46;11497:7;11506:4;11512:5;11519:11;11485;:46::i;:::-;11426:105;;;;;;11550:7;11559:15;11576:4;11582:15;11599:4;11605:5;11542:69;;;;;;;;;;;;;;;;;;;11151:468;;;;;;;:::o;1093:136::-;1151:7;1178:43;1182:1;1185;1178:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1171:50;;1093:136;;;;:::o;12837:214::-;12890:19;12913:10;:8;:10::i;:::-;12890:33;;12934:13;12950:22;12960:11;12950:5;:9;;:22;;;;:::i;:::-;12934:38;;13010:33;13037:5;13010:7;:22;13026:4;13010:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12985:7;:22;13001:4;12985:22;;;;;;;;;;;;;;;:58;;;;12879:172;;12837:214;:::o;13059:147::-;13137:17;13149:4;13137:7;;:11;;:17;;;;:::i;:::-;13127:7;:27;;;;13178:20;13193:4;13178:10;;:14;;:20;;;;:::i;:::-;13165:10;:33;;;;13059:147;;:::o;11627:351::-;11720:7;11729;11738;11758:12;11773:28;11797:3;11773:19;11785:6;11773:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11758:43;;11812:13;11828:29;11853:3;11828:20;11840:7;11828;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;11812:45;;11868:23;11894:28;11916:5;11894:17;11906:4;11894:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11868:54;;11941:15;11958:4;11964:5;11933:37;;;;;;;;;11627:351;;;;;;;:::o;12420:409::-;12530:7;12539;12548;12568:15;12586:24;12598:11;12586:7;:11;;:24;;;;:::i;:::-;12568:42;;12621:12;12636:21;12645:11;12636:4;:8;;:21;;;;:::i;:::-;12621:36;;12668:13;12684:22;12694:11;12684:5;:9;;:22;;;;:::i;:::-;12668:38;;12717:23;12743:28;12765:5;12743:17;12755:4;12743:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12717:54;;12790:7;12799:15;12816:4;12782:39;;;;;;;;;;12420:409;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:104::-;4516:7;4545:24;4563:5;4545:24;:::i;:::-;4534:35;;4471:104;;;:::o;4581:138::-;4662:32;4688:5;4662:32;:::i;:::-;4655:5;4652:43;4642:71;;4709:1;4706;4699:12;4642:71;4581:138;:::o;4725:155::-;4779:5;4817:6;4804:20;4795:29;;4833:41;4868:5;4833:41;:::i;:::-;4725:155;;;;:::o;4886:506::-;4970:6;4978;5027:2;5015:9;5006:7;5002:23;4998:32;4995:119;;;5033:79;;:::i;:::-;4995:119;5153:1;5178:61;5231:7;5222:6;5211:9;5207:22;5178:61;:::i;:::-;5168:71;;5124:125;5288:2;5314:61;5367:7;5358:6;5347:9;5343:22;5314:61;:::i;:::-;5304:71;;5259:126;4886:506;;;;;:::o;5398:329::-;5457:6;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5398:329;;;;:::o;5733:86::-;5768:7;5808:4;5801:5;5797:16;5786:27;;5733:86;;;:::o;5825:112::-;5908:22;5924:5;5908:22;:::i;:::-;5903:3;5896:35;5825:112;;:::o;5943:214::-;6032:4;6070:2;6059:9;6055:18;6047:26;;6083:67;6147:1;6136:9;6132:17;6123:6;6083:67;:::i;:::-;5943:214;;;;:::o;6163:329::-;6222:6;6271:2;6259:9;6250:7;6246:23;6242:32;6239:119;;;6277:79;;:::i;:::-;6239:119;6397:1;6422:53;6467:7;6458:6;6447:9;6443:22;6422:53;:::i;:::-;6412:63;;6368:117;6163:329;;;;:::o;6498:345::-;6565:6;6614:2;6602:9;6593:7;6589:23;6585:32;6582:119;;;6620:79;;:::i;:::-;6582:119;6740:1;6765:61;6818:7;6809:6;6798:9;6794:22;6765:61;:::i;:::-;6755:71;;6711:125;6498:345;;;;:::o;6849:116::-;6919:21;6934:5;6919:21;:::i;:::-;6912:5;6909:32;6899:60;;6955:1;6952;6945:12;6899:60;6849:116;:::o;6971:133::-;7014:5;7052:6;7039:20;7030:29;;7068:30;7092:5;7068:30;:::i;:::-;6971:133;;;;:::o;7110:323::-;7166:6;7215:2;7203:9;7194:7;7190:23;7186:32;7183:119;;;7221:79;;:::i;:::-;7183:119;7341:1;7366:50;7408:7;7399:6;7388:9;7384:22;7366:50;:::i;:::-;7356:60;;7312:114;7110:323;;;;:::o;7439:118::-;7526:24;7544:5;7526:24;:::i;:::-;7521:3;7514:37;7439:118;;:::o;7563:222::-;7656:4;7694:2;7683:9;7679:18;7671:26;;7707:71;7775:1;7764:9;7760:17;7751:6;7707:71;:::i;:::-;7563:222;;;;:::o;7791:114::-;7858:6;7892:5;7886:12;7876:22;;7791:114;;;:::o;7911:184::-;8010:11;8044:6;8039:3;8032:19;8084:4;8079:3;8075:14;8060:29;;7911:184;;;;:::o;8101:132::-;8168:4;8191:3;8183:11;;8221:4;8216:3;8212:14;8204:22;;8101:132;;;:::o;8239:108::-;8316:24;8334:5;8316:24;:::i;:::-;8311:3;8304:37;8239:108;;:::o;8353:179::-;8422:10;8443:46;8485:3;8477:6;8443:46;:::i;:::-;8521:4;8516:3;8512:14;8498:28;;8353:179;;;;:::o;8538:113::-;8608:4;8640;8635:3;8631:14;8623:22;;8538:113;;;:::o;8687:732::-;8806:3;8835:54;8883:5;8835:54;:::i;:::-;8905:86;8984:6;8979:3;8905:86;:::i;:::-;8898:93;;9015:56;9065:5;9015:56;:::i;:::-;9094:7;9125:1;9110:284;9135:6;9132:1;9129:13;9110:284;;;9211:6;9205:13;9238:63;9297:3;9282:13;9238:63;:::i;:::-;9231:70;;9324:60;9377:6;9324:60;:::i;:::-;9314:70;;9170:224;9157:1;9154;9150:9;9145:14;;9110:284;;;9114:14;9410:3;9403:10;;8811:608;;;8687:732;;;;:::o;9425:373::-;9568:4;9606:2;9595:9;9591:18;9583:26;;9655:9;9649:4;9645:20;9641:1;9630:9;9626:17;9619:47;9683:108;9786:4;9777:6;9683:108;:::i;:::-;9675:116;;9425:373;;;;:::o;9804:117::-;9913:1;9910;9903:12;9927:180;9975:77;9972:1;9965:88;10072:4;10069:1;10062:15;10096:4;10093:1;10086:15;10113:281;10196:27;10218:4;10196:27;:::i;:::-;10188:6;10184:40;10326:6;10314:10;10311:22;10290:18;10278:10;10275:34;10272:62;10269:88;;;10337:18;;:::i;:::-;10269:88;10377:10;10373:2;10366:22;10156:238;10113:281;;:::o;10400:129::-;10434:6;10461:20;;:::i;:::-;10451:30;;10490:33;10518:4;10510:6;10490:33;:::i;:::-;10400:129;;;:::o;10535:311::-;10612:4;10702:18;10694:6;10691:30;10688:56;;;10724:18;;:::i;:::-;10688:56;10774:4;10766:6;10762:17;10754:25;;10834:4;10828;10824:15;10816:23;;10535:311;;;:::o;10852:117::-;10961:1;10958;10951:12;10992:710;11088:5;11113:81;11129:64;11186:6;11129:64;:::i;:::-;11113:81;:::i;:::-;11104:90;;11214:5;11243:6;11236:5;11229:21;11277:4;11270:5;11266:16;11259:23;;11330:4;11322:6;11318:17;11310:6;11306:30;11359:3;11351:6;11348:15;11345:122;;;11378:79;;:::i;:::-;11345:122;11493:6;11476:220;11510:6;11505:3;11502:15;11476:220;;;11585:3;11614:37;11647:3;11635:10;11614:37;:::i;:::-;11609:3;11602:50;11681:4;11676:3;11672:14;11665:21;;11552:144;11536:4;11531:3;11527:14;11520:21;;11476:220;;;11480:21;11094:608;;10992:710;;;;;:::o;11725:370::-;11796:5;11845:3;11838:4;11830:6;11826:17;11822:27;11812:122;;11853:79;;:::i;:::-;11812:122;11970:6;11957:20;11995:94;12085:3;12077:6;12070:4;12062:6;12058:17;11995:94;:::i;:::-;11986:103;;11802:293;11725:370;;;;:::o;12101:539::-;12185:6;12234:2;12222:9;12213:7;12209:23;12205:32;12202:119;;;12240:79;;:::i;:::-;12202:119;12388:1;12377:9;12373:17;12360:31;12418:18;12410:6;12407:30;12404:117;;;12440:79;;:::i;:::-;12404:117;12545:78;12615:7;12606:6;12595:9;12591:22;12545:78;:::i;:::-;12535:88;;12331:302;12101:539;;;;:::o;12646:114::-;12713:6;12747:5;12741:12;12731:22;;12646:114;;;:::o;12766:184::-;12865:11;12899:6;12894:3;12887:19;12939:4;12934:3;12930:14;12915:29;;12766:184;;;;:::o;12956:132::-;13023:4;13046:3;13038:11;;13076:4;13071:3;13067:14;13059:22;;12956:132;;;:::o;13094:108::-;13171:24;13189:5;13171:24;:::i;:::-;13166:3;13159:37;13094:108;;:::o;13208:179::-;13277:10;13298:46;13340:3;13332:6;13298:46;:::i;:::-;13376:4;13371:3;13367:14;13353:28;;13208:179;;;;:::o;13393:113::-;13463:4;13495;13490:3;13486:14;13478:22;;13393:113;;;:::o;13542:732::-;13661:3;13690:54;13738:5;13690:54;:::i;:::-;13760:86;13839:6;13834:3;13760:86;:::i;:::-;13753:93;;13870:56;13920:5;13870:56;:::i;:::-;13949:7;13980:1;13965:284;13990:6;13987:1;13984:13;13965:284;;;14066:6;14060:13;14093:63;14152:3;14137:13;14093:63;:::i;:::-;14086:70;;14179:60;14232:6;14179:60;:::i;:::-;14169:70;;14025:224;14012:1;14009;14005:9;14000:14;;13965:284;;;13969:14;14265:3;14258:10;;13666:608;;;13542:732;;;;:::o;14280:373::-;14423:4;14461:2;14450:9;14446:18;14438:26;;14510:9;14504:4;14500:20;14496:1;14485:9;14481:17;14474:47;14538:108;14641:4;14632:6;14538:108;:::i;:::-;14530:116;;14280:373;;;;:::o;14659:474::-;14727:6;14735;14784:2;14772:9;14763:7;14759:23;14755:32;14752:119;;;14790:79;;:::i;:::-;14752:119;14910:1;14935:53;14980:7;14971:6;14960:9;14956:22;14935:53;:::i;:::-;14925:63;;14881:117;15037:2;15063:53;15108:7;15099:6;15088:9;15084:22;15063:53;:::i;:::-;15053:63;;15008:118;14659:474;;;;;:::o;15139:182::-;15279:34;15275:1;15267:6;15263:14;15256:58;15139:182;:::o;15327:366::-;15469:3;15490:67;15554:2;15549:3;15490:67;:::i;:::-;15483:74;;15566:93;15655:3;15566:93;:::i;:::-;15684:2;15679:3;15675:12;15668:19;;15327:366;;;:::o;15699:419::-;15865:4;15903:2;15892:9;15888:18;15880:26;;15952:9;15946:4;15942:20;15938:1;15927:9;15923:17;15916:47;15980:131;16106:4;15980:131;:::i;:::-;15972:139;;15699:419;;;:::o;16124:224::-;16264:34;16260:1;16252:6;16248:14;16241:58;16333:7;16328:2;16320:6;16316:15;16309:32;16124:224;:::o;16354:366::-;16496:3;16517:67;16581:2;16576:3;16517:67;:::i;:::-;16510:74;;16593:93;16682:3;16593:93;:::i;:::-;16711:2;16706:3;16702:12;16695:19;;16354:366;;;:::o;16726:419::-;16892:4;16930:2;16919:9;16915:18;16907:26;;16979:9;16973:4;16969:20;16965:1;16954:9;16950:17;16943:47;17007:131;17133:4;17007:131;:::i;:::-;16999:139;;16726:419;;;:::o;17151:143::-;17208:5;17239:6;17233:13;17224:22;;17255:33;17282:5;17255:33;:::i;:::-;17151:143;;;;:::o;17300:351::-;17370:6;17419:2;17407:9;17398:7;17394:23;17390:32;17387:119;;;17425:79;;:::i;:::-;17387:119;17545:1;17570:64;17626:7;17617:6;17606:9;17602:22;17570:64;:::i;:::-;17560:74;;17516:128;17300:351;;;;:::o;17657:332::-;17778:4;17816:2;17805:9;17801:18;17793:26;;17829:71;17897:1;17886:9;17882:17;17873:6;17829:71;:::i;:::-;17910:72;17978:2;17967:9;17963:18;17954:6;17910:72;:::i;:::-;17657:332;;;;;:::o;17995:180::-;18043:77;18040:1;18033:88;18140:4;18137:1;18130:15;18164:4;18161:1;18154:15;18181:305;18221:3;18240:20;18258:1;18240:20;:::i;:::-;18235:25;;18274:20;18292:1;18274:20;:::i;:::-;18269:25;;18428:1;18360:66;18356:74;18353:1;18350:81;18347:107;;;18434:18;;:::i;:::-;18347:107;18478:1;18475;18471:9;18464:16;;18181:305;;;;:::o;18492:180::-;18540:77;18537:1;18530:88;18637:4;18634:1;18627:15;18661:4;18658:1;18651:15;18678:165;18818:17;18814:1;18806:6;18802:14;18795:41;18678:165;:::o;18849:366::-;18991:3;19012:67;19076:2;19071:3;19012:67;:::i;:::-;19005:74;;19088:93;19177:3;19088:93;:::i;:::-;19206:2;19201:3;19197:12;19190:19;;18849:366;;;:::o;19221:419::-;19387:4;19425:2;19414:9;19410:18;19402:26;;19474:9;19468:4;19464:20;19460:1;19449:9;19445:17;19438:47;19502:131;19628:4;19502:131;:::i;:::-;19494:139;;19221:419;;;:::o;19646:233::-;19685:3;19708:24;19726:5;19708:24;:::i;:::-;19699:33;;19754:66;19747:5;19744:77;19741:103;;;19824:18;;:::i;:::-;19741:103;19871:1;19864:5;19860:13;19853:20;;19646:233;;;:::o;19885:223::-;20025:34;20021:1;20013:6;20009:14;20002:58;20094:6;20089:2;20081:6;20077:15;20070:31;19885:223;:::o;20114:366::-;20256:3;20277:67;20341:2;20336:3;20277:67;:::i;:::-;20270:74;;20353:93;20442:3;20353:93;:::i;:::-;20471:2;20466:3;20462:12;20455:19;;20114:366;;;:::o;20486:419::-;20652:4;20690:2;20679:9;20675:18;20667:26;;20739:9;20733:4;20729:20;20725:1;20714:9;20710:17;20703:47;20767:131;20893:4;20767:131;:::i;:::-;20759:139;;20486:419;;;:::o;20911:221::-;21051:34;21047:1;21039:6;21035:14;21028:58;21120:4;21115:2;21107:6;21103:15;21096:29;20911:221;:::o;21138:366::-;21280:3;21301:67;21365:2;21360:3;21301:67;:::i;:::-;21294:74;;21377:93;21466:3;21377:93;:::i;:::-;21495:2;21490:3;21486:12;21479:19;;21138:366;;;:::o;21510:419::-;21676:4;21714:2;21703:9;21699:18;21691:26;;21763:9;21757:4;21753:20;21749:1;21738:9;21734:17;21727:47;21791:131;21917:4;21791:131;:::i;:::-;21783:139;;21510:419;;;:::o;21935:224::-;22075:34;22071:1;22063:6;22059:14;22052:58;22144:7;22139:2;22131:6;22127:15;22120:32;21935:224;:::o;22165:366::-;22307:3;22328:67;22392:2;22387:3;22328:67;:::i;:::-;22321:74;;22404:93;22493:3;22404:93;:::i;:::-;22522:2;22517:3;22513:12;22506:19;;22165:366;;;:::o;22537:419::-;22703:4;22741:2;22730:9;22726:18;22718:26;;22790:9;22784:4;22780:20;22776:1;22765:9;22761:17;22754:47;22818:131;22944:4;22818:131;:::i;:::-;22810:139;;22537:419;;;:::o;22962:222::-;23102:34;23098:1;23090:6;23086:14;23079:58;23171:5;23166:2;23158:6;23154:15;23147:30;22962:222;:::o;23190:366::-;23332:3;23353:67;23417:2;23412:3;23353:67;:::i;:::-;23346:74;;23429:93;23518:3;23429:93;:::i;:::-;23547:2;23542:3;23538:12;23531:19;;23190:366;;;:::o;23562:419::-;23728:4;23766:2;23755:9;23751:18;23743:26;;23815:9;23809:4;23805:20;23801:1;23790:9;23786:17;23779:47;23843:131;23969:4;23843:131;:::i;:::-;23835:139;;23562:419;;;:::o;23987:228::-;24127:34;24123:1;24115:6;24111:14;24104:58;24196:11;24191:2;24183:6;24179:15;24172:36;23987:228;:::o;24221:366::-;24363:3;24384:67;24448:2;24443:3;24384:67;:::i;:::-;24377:74;;24460:93;24549:3;24460:93;:::i;:::-;24578:2;24573:3;24569:12;24562:19;;24221:366;;;:::o;24593:419::-;24759:4;24797:2;24786:9;24782:18;24774:26;;24846:9;24840:4;24836:20;24832:1;24821:9;24817:17;24810:47;24874:131;25000:4;24874:131;:::i;:::-;24866:139;;24593:419;;;:::o;25018:178::-;25158:30;25154:1;25146:6;25142:14;25135:54;25018:178;:::o;25202:366::-;25344:3;25365:67;25429:2;25424:3;25365:67;:::i;:::-;25358:74;;25441:93;25530:3;25441:93;:::i;:::-;25559:2;25554:3;25550:12;25543:19;;25202:366;;;:::o;25574:419::-;25740:4;25778:2;25767:9;25763:18;25755:26;;25827:9;25821:4;25817:20;25813:1;25802:9;25798:17;25791:47;25855:131;25981:4;25855:131;:::i;:::-;25847:139;;25574:419;;;:::o;25999:191::-;26039:4;26059:20;26077:1;26059:20;:::i;:::-;26054:25;;26093:20;26111:1;26093:20;:::i;:::-;26088:25;;26132:1;26129;26126:8;26123:34;;;26137:18;;:::i;:::-;26123:34;26182:1;26179;26175:9;26167:17;;25999:191;;;;:::o;26196:177::-;26336:29;26332:1;26324:6;26320:14;26313:53;26196:177;:::o;26379:366::-;26521:3;26542:67;26606:2;26601:3;26542:67;:::i;:::-;26535:74;;26618:93;26707:3;26618:93;:::i;:::-;26736:2;26731:3;26727:12;26720:19;;26379:366;;;:::o;26751:419::-;26917:4;26955:2;26944:9;26940:18;26932:26;;27004:9;26998:4;26994:20;26990:1;26979:9;26975:17;26968:47;27032:131;27158:4;27032:131;:::i;:::-;27024:139;;26751:419;;;:::o;27176:229::-;27316:34;27312:1;27304:6;27300:14;27293:58;27385:12;27380:2;27372:6;27368:15;27361:37;27176:229;:::o;27411:366::-;27553:3;27574:67;27638:2;27633:3;27574:67;:::i;:::-;27567:74;;27650:93;27739:3;27650:93;:::i;:::-;27768:2;27763:3;27759:12;27752:19;;27411:366;;;:::o;27783:419::-;27949:4;27987:2;27976:9;27972:18;27964:26;;28036:9;28030:4;28026:20;28022:1;28011:9;28007:17;28000:47;28064:131;28190:4;28064:131;:::i;:::-;28056:139;;27783:419;;;:::o;28208:85::-;28253:7;28282:5;28271:16;;28208:85;;;:::o;28299:60::-;28327:3;28348:5;28341:12;;28299:60;;;:::o;28365:158::-;28423:9;28456:61;28474:42;28483:32;28509:5;28483:32;:::i;:::-;28474:42;:::i;:::-;28456:61;:::i;:::-;28443:74;;28365:158;;;:::o;28529:147::-;28624:45;28663:5;28624:45;:::i;:::-;28619:3;28612:58;28529:147;;:::o;28682:831::-;28945:4;28983:3;28972:9;28968:19;28960:27;;28997:71;29065:1;29054:9;29050:17;29041:6;28997:71;:::i;:::-;29078:80;29154:2;29143:9;29139:18;29130:6;29078:80;:::i;:::-;29205:9;29199:4;29195:20;29190:2;29179:9;29175:18;29168:48;29233:108;29336:4;29327:6;29233:108;:::i;:::-;29225:116;;29351:72;29419:2;29408:9;29404:18;29395:6;29351:72;:::i;:::-;29433:73;29501:3;29490:9;29486:19;29477:6;29433:73;:::i;:::-;28682:831;;;;;;;;:::o;29519:348::-;29559:7;29582:20;29600:1;29582:20;:::i;:::-;29577:25;;29616:20;29634:1;29616:20;:::i;:::-;29611:25;;29804:1;29736:66;29732:74;29729:1;29726:81;29721:1;29714:9;29707:17;29703:105;29700:131;;;29811:18;;:::i;:::-;29700:131;29859:1;29856;29852:9;29841:20;;29519:348;;;;:::o;29873:180::-;29921:77;29918:1;29911:88;30018:4;30015:1;30008:15;30042:4;30039:1;30032:15;30059:185;30099:1;30116:20;30134:1;30116:20;:::i;:::-;30111:25;;30150:20;30168:1;30150:20;:::i;:::-;30145:25;;30189:1;30179:35;;30194:18;;:::i;:::-;30179:35;30236:1;30233;30229:9;30224:14;;30059:185;;;;:::o;30250:220::-;30390:34;30386:1;30378:6;30374:14;30367:58;30459:3;30454:2;30446:6;30442:15;30435:28;30250:220;:::o;30476:366::-;30618:3;30639:67;30703:2;30698:3;30639:67;:::i;:::-;30632:74;;30715:93;30804:3;30715:93;:::i;:::-;30833:2;30828:3;30824:12;30817:19;;30476:366;;;:::o;30848:419::-;31014:4;31052:2;31041:9;31037:18;31029:26;;31101:9;31095:4;31091:20;31087:1;31076:9;31072:17;31065:47;31129:131;31255:4;31129:131;:::i;:::-;31121:139;;30848:419;;;:::o

Swarm Source

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