ETH Price: $2,289.42 (+1.08%)

Token

Pepe With Big Pipi (PPWOW)
 

Overview

Max Total Supply

1,000,000,000 PPWOW

Holders

85

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
10,060,122.03342306 PPWOW

Value
$0.00
0x714e29f7a8d4082c1de31157a962be5383cdda8d
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:
PepeWithBigPipi

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-21
*/

/*
twitter: https://twitter.com/PepeWithBigPipi
discord: https://discord.gg/WAa7n9hKye
telegram: https://t.me/PepeWithBigPipi
*/

// SPDX-License-Identifier: NONE

pragma solidity 0.8.18;

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

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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);
    }

    //============== added functions V V
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert("Invalid owner");
        }
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    //============== added functions ^ ^
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair); // You added this one
}

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

    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
}

contract PepeWithBigPipi is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public bots;
    address payable public _taxWallet;

    uint256 public _initialBuyTax=0;
    uint256 public _initialSellTax=2;

    //============== added functions V V
    function set_initialBuyTax(uint256 _newValue) public onlyOwner { 
        require(_newValue <= 20,"Too high");
        _initialBuyTax = _newValue;
    }
    function set_initialSellTax(uint256 _newValue) public onlyOwner { 
        require(_newValue <= 20,"Too high");
        _initialSellTax = _newValue;
    }
    //============== added functions ^ ^

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Pepe With Big Pipi";
    string private constant _symbol = unicode"PPWOW";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 30000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=6000000 * 10**_decimals;
    uint256 public _maxTaxSwap=6000000 * 10**_decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool public tradingOpen;
    bool public inSwap = false;
    bool public swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    //============== added functions V V
    address public uniswapAddress;
    //============== added functions ^ ^
    constructor (address _uniswapAddress) {
        // Sepolia Uniswap: 0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008;
        // Ethereum Mainnet Uniswap: 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        uniswapAddress = _uniswapAddress;
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }
    

    //============== added functions V V
    function set_taxWallet(address _newValue) public onlyOwner { 
        _taxWallet = payable(_newValue);
        _isExcludedFromFee[_taxWallet] = true;
    }
    //============== added functions ^ ^

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

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

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            taxAmount = amount.mul(_initialBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function gottagofast() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(uniswapAddress);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,address(this),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    
    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }
    
    //============== added functions V V

    bool public locked = false;
    function permanentLockLiquidity() public onlyOwner {
        locked = true;
    }

    uint public lockTimestamp;
    function lockFor3Weeks() public onlyOwner {
        lockTimestamp = block.timestamp + (60*60*24*21);
    }
    
    function returnLiquidity() public onlyOwner {
 
        require (!locked, "Liquidity locked");
        require (block.timestamp > lockTimestamp, "Liquidity still locked");

        uniswapV2Router = IUniswapV2Router02(uniswapAddress);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        address pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
        uint liquidity = IERC20(pair).balanceOf(address(this));
        uniswapV2Router.removeLiquidityETH(
            address(this),
            liquidity,
            0,
            0,
            _taxWallet,
            block.timestamp
        );
    }
    //============== added functions ^ ^  
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_uniswapAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_initialBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gottagofast","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockFor3Weeks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"permanentLockLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"set_initialBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newValue","type":"uint256"}],"name":"set_initialSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newValue","type":"address"}],"name":"set_taxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060065560026007556008600a6200001e91906200058e565b6301312d006200002f9190620005df565b6008556008600a6200004291906200058e565b6301c9c380620000539190620005df565b6009556008600a6200006691906200058e565b625b8d80620000769190620005df565b600a556008600a6200008991906200058e565b625b8d80620000999190620005df565b600b556000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055506000600e60146101000a81548160ff021916908315150217905550348015620000fa57600080fd5b5060405162004e2338038062004e23833981810160405281019062000120919062000694565b600062000132620003c360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022191906200058e565b633b9aca00620002329190620005df565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200028b620003cb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200039491906200058e565b633b9aca00620003a59190620005df565b604051620003b49190620006d7565b60405180910390a350620006f4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000482578086048111156200045a5762000459620003f4565b5b60018516156200046a5780820291505b80810290506200047a8562000423565b94506200043a565b94509492505050565b6000826200049d576001905062000570565b81620004ad576000905062000570565b8160018114620004c65760028114620004d15762000507565b600191505062000570565b60ff841115620004e657620004e5620003f4565b5b8360020a9150848211156200050057620004ff620003f4565b5b5062000570565b5060208310610133831016604e8410600b8410161715620005415782820a9050838111156200053b576200053a620003f4565b5b62000570565b62000550848484600162000430565b925090508184048111156200056a5762000569620003f4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200059b8262000577565b9150620005a88362000581565b9250620005d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200048b565b905092915050565b6000620005ec8262000577565b9150620005f98362000577565b9250828202620006098162000577565b91508282048414831517620006235762000622620003f4565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200065c826200062f565b9050919050565b6200066e816200064f565b81146200067a57600080fd5b50565b6000815190506200068e8162000663565b92915050565b600060208284031215620006ad57620006ac6200062a565b5b6000620006bd848285016200067d565b91505092915050565b620006d18162000577565b82525050565b6000602082019050620006ee6000830184620006c6565b92915050565b61471f80620007046000396000f3fe6080604052600436106102495760003560e01c8063751039fc11610139578063b89a8a75116100b6578063d83067861161007a578063d830678614610832578063dd62ed3e1461085d578063e15b77b71461089a578063e1b19258146108b1578063f2fde38b146108dc578063ffb54a991461090557610250565b8063b89a8a751461075f578063bf474bed14610776578063bfd79284146107a1578063cf309012146107de578063d34628cc1461080957610250565b80638f9a55c0116100fd5780638f9a55c01461067857806395d89b41146106a3578063a45d091d146106ce578063a9059cbb146106f7578063b544bf831461073457610250565b8063751039fc146105a5578063768dc710146105bc5780637d1db4a5146105f95780637d96f3f6146106245780638da5cb5b1461064d57610250565b8063313ce567116101c757806351bc3c851161018b57806351bc3c85146104e45780636ddd1713146104fb5780636f268a991461052657806370a0823114610551578063715018a61461058e57610250565b8063313ce567146103fd57806331c2d847146104285780633b7cdccd146104515780633bbac5791461047c57806349bd5a5e146104b957610250565b80630faee56f1161020e5780630faee56f14610328578063127f61cb146103535780631694505e1461036a57806318160ddd1461039557806323b872dd146103c057610250565b8062a2554b1461025557806303edee0e1461026c57806306fdde0314610295578063095ea7b3146102c05780630e2feb05146102fd57610250565b3661025057005b600080fd5b34801561026157600080fd5b5061026a610930565b005b34801561027857600080fd5b50610293600480360381019061028e919061331e565b610e6f565b005b3480156102a157600080fd5b506102aa610f52565b6040516102b791906133db565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e2919061345b565b610f8f565b6040516102f491906134b6565b60405180910390f35b34801561030957600080fd5b50610312610fad565b60405161031f91906134e0565b60405180910390f35b34801561033457600080fd5b5061033d610fd3565b60405161034a919061350a565b60405180910390f35b34801561035f57600080fd5b50610368610fd9565b005b34801561037657600080fd5b5061037f61149c565b60405161038c9190613584565b60405180910390f35b3480156103a157600080fd5b506103aa6114c2565b6040516103b7919061350a565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061359f565b6114e6565b6040516103f491906134b6565b60405180910390f35b34801561040957600080fd5b506104126115bf565b60405161041f919061360e565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190613771565b6115c8565b005b34801561045d57600080fd5b506104666116f2565b604051610473919061350a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906137ba565b6116f8565b6040516104b091906134b6565b60405180910390f35b3480156104c557600080fd5b506104ce61174e565b6040516104db91906134e0565b60405180910390f35b3480156104f057600080fd5b506104f9611774565b005b34801561050757600080fd5b50610510611811565b60405161051d91906134b6565b60405180910390f35b34801561053257600080fd5b5061053b611824565b6040516105489190613808565b60405180910390f35b34801561055d57600080fd5b50610578600480360381019061057391906137ba565b61184a565b604051610585919061350a565b60405180910390f35b34801561059a57600080fd5b506105a3611893565b005b3480156105b157600080fd5b506105ba6119e6565b005b3480156105c857600080fd5b506105e360048036038101906105de91906137ba565b611b16565b6040516105f091906134b6565b60405180910390f35b34801561060557600080fd5b5061060e611b36565b60405161061b919061350a565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906137ba565b611b3c565b005b34801561065957600080fd5b50610662611c8f565b60405161066f91906134e0565b60405180910390f35b34801561068457600080fd5b5061068d611cb8565b60405161069a919061350a565b60405180910390f35b3480156106af57600080fd5b506106b8611cbe565b6040516106c591906133db565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f0919061331e565b611cfb565b005b34801561070357600080fd5b5061071e6004803603810190610719919061345b565b611dde565b60405161072b91906134b6565b60405180910390f35b34801561074057600080fd5b50610749611dfc565b604051610756919061350a565b60405180910390f35b34801561076b57600080fd5b50610774611e02565b005b34801561078257600080fd5b5061078b611eb4565b604051610798919061350a565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906137ba565b611eba565b6040516107d591906134b6565b60405180910390f35b3480156107ea57600080fd5b506107f3611eda565b60405161080091906134b6565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190613771565b611eed565b005b34801561083e57600080fd5b50610847612017565b60405161085491906134b6565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190613823565b61202a565b604051610891919061350a565b60405180910390f35b3480156108a657600080fd5b506108af6120b1565b005b3480156108bd57600080fd5b506108c661215d565b6040516108d3919061350a565b60405180910390f35b3480156108e857600080fd5b5061090360048036038101906108fe91906137ba565b612163565b005b34801561091157600080fd5b5061091a612273565b60405161092791906134b6565b60405180910390f35b610938612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc906138af565b60405180910390fd5b600d60149054906101000a900460ff1615610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c9061391b565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ac130600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610aad9190613a9d565b633b9aca00610abc9190613ae8565b61228e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190613b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bff9190613b3f565b6040518363ffffffff1660e01b8152600401610c1c929190613b6c565b6020604051808303816000875af1158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f9190613b3f565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ce83061184a565b60008030426040518863ffffffff1660e01b8152600401610d0e96959493929190613bd0565b60606040518083038185885af1158015610d2c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d519190613c46565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610df3929190613c99565b6020604051808303816000875af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e369190613cee565b506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b610e77612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906138af565b60405180910390fd5b6014811115610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90613d67565b60405180910390fd5b8060078190555050565b60606040518060400160405280601281526020017f5065706520576974682042696720506970690000000000000000000000000000815250905090565b6000610fa3610f9c612286565b848461228e565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b610fe1612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906138af565b60405180910390fd5b600e60149054906101000a900460ff16156110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590613dd3565b60405180910390fd5b600f544211611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613e3f565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111ae30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a61119a9190613a9d565b633b9aca006111a99190613ae8565b61228e565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190613b3f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ee9190613b3f565b6040518363ffffffff1660e01b815260040161130b929190613b6c565b602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190613b3f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161138991906134e0565b602060405180830381865afa1580156113a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ca9190613e5f565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302751cec3083600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518763ffffffff1660e01b815260040161145496959493929190613ead565b60408051808303816000875af1158015611472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114969190613f0e565b50505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006008600a6114d29190613a9d565b633b9aca006114e19190613ae8565b905090565b60006114f3848484612457565b6115b4846114ff612286565b6115af856040518060600160405280602881526020016146c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611565612286565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc09092919063ffffffff16565b61228e565b600190509392505050565b60006008905090565b6115d0612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611654906138af565b60405180910390fd5b60005b81518110156116ee5760006004600084848151811061168257611681613f4e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116e690613f7d565b915050611660565b5050565b60065481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117b5612286565b73ffffffffffffffffffffffffffffffffffffffff16146117d557600080fd5b60006117e03061184a565b905060008111156117f5576117f481612d24565b5b6000479050600081111561180d5761180c81612fbc565b5b5050565b600d60169054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61189b612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906138af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6119ee612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a72906138af565b60405180910390fd5b6008600a611a899190613a9d565b633b9aca00611a989190613ae8565b6008819055506008600a611aac9190613a9d565b633b9aca00611abb9190613ae8565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a611af09190613a9d565b633b9aca00611aff9190613ae8565b604051611b0c919061350a565b60405180910390a1565b60036020528060005260406000206000915054906101000a900460ff1681565b60085481565b611b44612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc8906138af565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f5050574f57000000000000000000000000000000000000000000000000000000815250905090565b611d03612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d87906138af565b60405180910390fd5b6014811115611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb90613d67565b60405180910390fd5b8060068190555050565b6000611df2611deb612286565b8484612457565b6001905092915050565b600f5481565b611e0a612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e906138af565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b600a5481565b60046020528060005260406000206000915054906101000a900460ff1681565b600e60149054906101000a900460ff1681565b611ef5612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f79906138af565b60405180910390fd5b60005b815181101561201357600160046000848481518110611fa757611fa6613f4e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061200b90613f7d565b915050611f85565b5050565b600d60159054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120b9612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d906138af565b60405180910390fd5b621baf80426121559190613fc5565b600f81905550565b60075481565b61216b612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906138af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90614045565b60405180910390fd5b61227081613028565b50565b600d60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f4906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361236c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236390614169565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161244a919061350a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd906141fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c9061428d565b60405180910390fd5b60008111612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f9061431f565b60405180910390fd5b6000612582611c8f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125f057506125c0611c8f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612a0357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126995750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126a257600080fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561274d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127a35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612846576008548211156127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e49061438b565b60405180910390fd5b600954826127fa8561184a565b6128049190613fc5565b1115612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c906143f7565b60405180910390fd5b5b61286e6064612860600654856130ec90919063ffffffff16565b61316690919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128f957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612929576129266064612918600754856130ec90919063ffffffff16565b61316690919063ffffffff16565b90505b60006129343061184a565b9050600d60159054906101000a900460ff161580156129a05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156129b85750600d60169054906101000a900460ff165b80156129c55750600a5481115b15612a01576129e76129e2846129dd84600b546131b0565b6131b0565b612d24565b600047905060008111156129ff576129fe47612fbc565b5b505b505b6000811115612b0757612a5e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612afe919061350a565b60405180910390a35b612b5982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c00612bb2828461322790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612ca5848661322790919063ffffffff16565b604051612cb2919061350a565b60405180910390a350505050565b6000838311158290612d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cff91906133db565b60405180910390fd5b5060008385612d179190614417565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055506000810315612f9e57600d60149054906101000a900460ff1615612f9e576000600267ffffffffffffffff811115612d7a57612d7961362e565b5b604051908082528060200260200182016040528015612da85781602001602082028036833780820191505090505b5090503081600081518110612dc057612dbf613f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8b9190613b3f565b81600181518110612e9f57612e9e613f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f0630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461228e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f6a959493929190614509565b600060405180830381600087803b158015612f8457600080fd5b505af1158015612f98573d6000803e3d6000fd5b50505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613024573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083036130fe5760009050613160565b6000828461310c9190613ae8565b905082848261311b9190614592565b1461315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315290614635565b60405180910390fd5b809150505b92915050565b60006131a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613271565b905092915050565b60008183116131bf57826131c1565b815b905092915050565b60008082846131d89190613fc5565b90508381101561321d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613214906146a1565b60405180910390fd5b8091505092915050565b600061326983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cc0565b905092915050565b600080831182906132b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132af91906133db565b60405180910390fd5b50600083856132c79190614592565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6132fb816132e8565b811461330657600080fd5b50565b600081359050613318816132f2565b92915050565b600060208284031215613334576133336132de565b5b600061334284828501613309565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561338557808201518184015260208101905061336a565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ad8261334b565b6133b78185613356565b93506133c7818560208601613367565b6133d081613391565b840191505092915050565b600060208201905081810360008301526133f581846133a2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613428826133fd565b9050919050565b6134388161341d565b811461344357600080fd5b50565b6000813590506134558161342f565b92915050565b60008060408385031215613472576134716132de565b5b600061348085828601613446565b925050602061349185828601613309565b9150509250929050565b60008115159050919050565b6134b08161349b565b82525050565b60006020820190506134cb60008301846134a7565b92915050565b6134da8161341d565b82525050565b60006020820190506134f560008301846134d1565b92915050565b613504816132e8565b82525050565b600060208201905061351f60008301846134fb565b92915050565b6000819050919050565b600061354a613545613540846133fd565b613525565b6133fd565b9050919050565b600061355c8261352f565b9050919050565b600061356e82613551565b9050919050565b61357e81613563565b82525050565b60006020820190506135996000830184613575565b92915050565b6000806000606084860312156135b8576135b76132de565b5b60006135c686828701613446565b93505060206135d786828701613446565b92505060406135e886828701613309565b9150509250925092565b600060ff82169050919050565b613608816135f2565b82525050565b600060208201905061362360008301846135ff565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61366682613391565b810181811067ffffffffffffffff821117156136855761368461362e565b5b80604052505050565b60006136986132d4565b90506136a4828261365d565b919050565b600067ffffffffffffffff8211156136c4576136c361362e565b5b602082029050602081019050919050565b600080fd5b60006136ed6136e8846136a9565b61368e565b905080838252602082019050602084028301858111156137105761370f6136d5565b5b835b8181101561373957806137258882613446565b845260208401935050602081019050613712565b5050509392505050565b600082601f83011261375857613757613629565b5b81356137688482602086016136da565b91505092915050565b600060208284031215613787576137866132de565b5b600082013567ffffffffffffffff8111156137a5576137a46132e3565b5b6137b184828501613743565b91505092915050565b6000602082840312156137d0576137cf6132de565b5b60006137de84828501613446565b91505092915050565b60006137f2826133fd565b9050919050565b613802816137e7565b82525050565b600060208201905061381d60008301846137f9565b92915050565b6000806040838503121561383a576138396132de565b5b600061384885828601613446565b925050602061385985828601613446565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613899602083613356565b91506138a482613863565b602082019050919050565b600060208201905081810360008301526138c88161388c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613905601783613356565b9150613910826138cf565b602082019050919050565b60006020820190508181036000830152613934816138f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139c15780860481111561399d5761399c61393b565b5b60018516156139ac5780820291505b80810290506139ba8561396a565b9450613981565b94509492505050565b6000826139da5760019050613a96565b816139e85760009050613a96565b81600181146139fe5760028114613a0857613a37565b6001915050613a96565b60ff841115613a1a57613a1961393b565b5b8360020a915084821115613a3157613a3061393b565b5b50613a96565b5060208310610133831016604e8410600b8410161715613a6c5782820a905083811115613a6757613a6661393b565b5b613a96565b613a798484846001613977565b92509050818404811115613a9057613a8f61393b565b5b81810290505b9392505050565b6000613aa8826132e8565b9150613ab3836135f2565b9250613ae07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139ca565b905092915050565b6000613af3826132e8565b9150613afe836132e8565b9250828202613b0c816132e8565b91508282048414831517613b2357613b2261393b565b5b5092915050565b600081519050613b398161342f565b92915050565b600060208284031215613b5557613b546132de565b5b6000613b6384828501613b2a565b91505092915050565b6000604082019050613b8160008301856134d1565b613b8e60208301846134d1565b9392505050565b6000819050919050565b6000613bba613bb5613bb084613b95565b613525565b6132e8565b9050919050565b613bca81613b9f565b82525050565b600060c082019050613be560008301896134d1565b613bf260208301886134fb565b613bff6040830187613bc1565b613c0c6060830186613bc1565b613c1960808301856134d1565b613c2660a08301846134fb565b979650505050505050565b600081519050613c40816132f2565b92915050565b600080600060608486031215613c5f57613c5e6132de565b5b6000613c6d86828701613c31565b9350506020613c7e86828701613c31565b9250506040613c8f86828701613c31565b9150509250925092565b6000604082019050613cae60008301856134d1565b613cbb60208301846134fb565b9392505050565b613ccb8161349b565b8114613cd657600080fd5b50565b600081519050613ce881613cc2565b92915050565b600060208284031215613d0457613d036132de565b5b6000613d1284828501613cd9565b91505092915050565b7f546f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613d51600883613356565b9150613d5c82613d1b565b602082019050919050565b60006020820190508181036000830152613d8081613d44565b9050919050565b7f4c6971756964697479206c6f636b656400000000000000000000000000000000600082015250565b6000613dbd601083613356565b9150613dc882613d87565b602082019050919050565b60006020820190508181036000830152613dec81613db0565b9050919050565b7f4c6971756964697479207374696c6c206c6f636b656400000000000000000000600082015250565b6000613e29601683613356565b9150613e3482613df3565b602082019050919050565b60006020820190508181036000830152613e5881613e1c565b9050919050565b600060208284031215613e7557613e746132de565b5b6000613e8384828501613c31565b91505092915050565b6000613e9782613551565b9050919050565b613ea781613e8c565b82525050565b600060c082019050613ec260008301896134d1565b613ecf60208301886134fb565b613edc6040830187613bc1565b613ee96060830186613bc1565b613ef66080830185613e9e565b613f0360a08301846134fb565b979650505050505050565b60008060408385031215613f2557613f246132de565b5b6000613f3385828601613c31565b9250506020613f4485828601613c31565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f88826132e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fba57613fb961393b565b5b600182019050919050565b6000613fd0826132e8565b9150613fdb836132e8565b9250828201905080821115613ff357613ff261393b565b5b92915050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b600061402f600d83613356565b915061403a82613ff9565b602082019050919050565b6000602082019050818103600083015261405e81614022565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140c1602483613356565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614153602283613356565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141e5602583613356565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614277602383613356565b91506142828261421b565b604082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614309602983613356565b9150614314826142ad565b604082019050919050565b60006020820190508181036000830152614338816142fc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614375601983613356565b91506143808261433f565b602082019050919050565b600060208201905081810360008301526143a481614368565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006143e1601a83613356565b91506143ec826143ab565b602082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b6000614422826132e8565b915061442d836132e8565b92508282039050818111156144455761444461393b565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144808161341d565b82525050565b60006144928383614477565b60208301905092915050565b6000602082019050919050565b60006144b68261444b565b6144c08185614456565b93506144cb83614467565b8060005b838110156144fc5781516144e38882614486565b97506144ee8361449e565b9250506001810190506144cf565b5085935050505092915050565b600060a08201905061451e60008301886134fb565b61452b6020830187613bc1565b818103604083015261453d81866144ab565b905061454c60608301856134d1565b61455960808301846134fb565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061459d826132e8565b91506145a8836132e8565b9250826145b8576145b7614563565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061461f602183613356565b915061462a826145c3565b604082019050919050565b6000602082019050818103600083015261464e81614612565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061468b601b83613356565b915061469682614655565b602082019050919050565b600060208201905081810360008301526146ba8161467e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024952cf514896e7848ea80a8d12b1e86030a534106212e0091a7a64c57a2cebb64736f6c634300081200330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106102495760003560e01c8063751039fc11610139578063b89a8a75116100b6578063d83067861161007a578063d830678614610832578063dd62ed3e1461085d578063e15b77b71461089a578063e1b19258146108b1578063f2fde38b146108dc578063ffb54a991461090557610250565b8063b89a8a751461075f578063bf474bed14610776578063bfd79284146107a1578063cf309012146107de578063d34628cc1461080957610250565b80638f9a55c0116100fd5780638f9a55c01461067857806395d89b41146106a3578063a45d091d146106ce578063a9059cbb146106f7578063b544bf831461073457610250565b8063751039fc146105a5578063768dc710146105bc5780637d1db4a5146105f95780637d96f3f6146106245780638da5cb5b1461064d57610250565b8063313ce567116101c757806351bc3c851161018b57806351bc3c85146104e45780636ddd1713146104fb5780636f268a991461052657806370a0823114610551578063715018a61461058e57610250565b8063313ce567146103fd57806331c2d847146104285780633b7cdccd146104515780633bbac5791461047c57806349bd5a5e146104b957610250565b80630faee56f1161020e5780630faee56f14610328578063127f61cb146103535780631694505e1461036a57806318160ddd1461039557806323b872dd146103c057610250565b8062a2554b1461025557806303edee0e1461026c57806306fdde0314610295578063095ea7b3146102c05780630e2feb05146102fd57610250565b3661025057005b600080fd5b34801561026157600080fd5b5061026a610930565b005b34801561027857600080fd5b50610293600480360381019061028e919061331e565b610e6f565b005b3480156102a157600080fd5b506102aa610f52565b6040516102b791906133db565b60405180910390f35b3480156102cc57600080fd5b506102e760048036038101906102e2919061345b565b610f8f565b6040516102f491906134b6565b60405180910390f35b34801561030957600080fd5b50610312610fad565b60405161031f91906134e0565b60405180910390f35b34801561033457600080fd5b5061033d610fd3565b60405161034a919061350a565b60405180910390f35b34801561035f57600080fd5b50610368610fd9565b005b34801561037657600080fd5b5061037f61149c565b60405161038c9190613584565b60405180910390f35b3480156103a157600080fd5b506103aa6114c2565b6040516103b7919061350a565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e2919061359f565b6114e6565b6040516103f491906134b6565b60405180910390f35b34801561040957600080fd5b506104126115bf565b60405161041f919061360e565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190613771565b6115c8565b005b34801561045d57600080fd5b506104666116f2565b604051610473919061350a565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e91906137ba565b6116f8565b6040516104b091906134b6565b60405180910390f35b3480156104c557600080fd5b506104ce61174e565b6040516104db91906134e0565b60405180910390f35b3480156104f057600080fd5b506104f9611774565b005b34801561050757600080fd5b50610510611811565b60405161051d91906134b6565b60405180910390f35b34801561053257600080fd5b5061053b611824565b6040516105489190613808565b60405180910390f35b34801561055d57600080fd5b50610578600480360381019061057391906137ba565b61184a565b604051610585919061350a565b60405180910390f35b34801561059a57600080fd5b506105a3611893565b005b3480156105b157600080fd5b506105ba6119e6565b005b3480156105c857600080fd5b506105e360048036038101906105de91906137ba565b611b16565b6040516105f091906134b6565b60405180910390f35b34801561060557600080fd5b5061060e611b36565b60405161061b919061350a565b60405180910390f35b34801561063057600080fd5b5061064b600480360381019061064691906137ba565b611b3c565b005b34801561065957600080fd5b50610662611c8f565b60405161066f91906134e0565b60405180910390f35b34801561068457600080fd5b5061068d611cb8565b60405161069a919061350a565b60405180910390f35b3480156106af57600080fd5b506106b8611cbe565b6040516106c591906133db565b60405180910390f35b3480156106da57600080fd5b506106f560048036038101906106f0919061331e565b611cfb565b005b34801561070357600080fd5b5061071e6004803603810190610719919061345b565b611dde565b60405161072b91906134b6565b60405180910390f35b34801561074057600080fd5b50610749611dfc565b604051610756919061350a565b60405180910390f35b34801561076b57600080fd5b50610774611e02565b005b34801561078257600080fd5b5061078b611eb4565b604051610798919061350a565b60405180910390f35b3480156107ad57600080fd5b506107c860048036038101906107c391906137ba565b611eba565b6040516107d591906134b6565b60405180910390f35b3480156107ea57600080fd5b506107f3611eda565b60405161080091906134b6565b60405180910390f35b34801561081557600080fd5b50610830600480360381019061082b9190613771565b611eed565b005b34801561083e57600080fd5b50610847612017565b60405161085491906134b6565b60405180910390f35b34801561086957600080fd5b50610884600480360381019061087f9190613823565b61202a565b604051610891919061350a565b60405180910390f35b3480156108a657600080fd5b506108af6120b1565b005b3480156108bd57600080fd5b506108c661215d565b6040516108d3919061350a565b60405180910390f35b3480156108e857600080fd5b5061090360048036038101906108fe91906137ba565b612163565b005b34801561091157600080fd5b5061091a612273565b60405161092791906134b6565b60405180910390f35b610938612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc906138af565b60405180910390fd5b600d60149054906101000a900460ff1615610a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c9061391b565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ac130600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610aad9190613a9d565b633b9aca00610abc9190613ae8565b61228e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b529190613b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bff9190613b3f565b6040518363ffffffff1660e01b8152600401610c1c929190613b6c565b6020604051808303816000875af1158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f9190613b3f565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ce83061184a565b60008030426040518863ffffffff1660e01b8152600401610d0e96959493929190613bd0565b60606040518083038185885af1158015610d2c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d519190613c46565b505050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610df3929190613c99565b6020604051808303816000875af1158015610e12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e369190613cee565b506001600d60166101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff021916908315150217905550565b610e77612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efb906138af565b60405180910390fd5b6014811115610f48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3f90613d67565b60405180910390fd5b8060078190555050565b60606040518060400160405280601281526020017f5065706520576974682042696720506970690000000000000000000000000000815250905090565b6000610fa3610f9c612286565b848461228e565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b610fe1612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611065906138af565b60405180910390fd5b600e60149054906101000a900460ff16156110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590613dd3565b60405180910390fd5b600f544211611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613e3f565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111ae30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a61119a9190613a9d565b633b9aca006111a99190613ae8565b61228e565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112419190613b3f565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ee9190613b3f565b6040518363ffffffff1660e01b815260040161130b929190613b6c565b602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190613b3f565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161138991906134e0565b602060405180830381865afa1580156113a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ca9190613e5f565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302751cec3083600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518763ffffffff1660e01b815260040161145496959493929190613ead565b60408051808303816000875af1158015611472573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114969190613f0e565b50505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006008600a6114d29190613a9d565b633b9aca006114e19190613ae8565b905090565b60006114f3848484612457565b6115b4846114ff612286565b6115af856040518060600160405280602881526020016146c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611565612286565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cc09092919063ffffffff16565b61228e565b600190509392505050565b60006008905090565b6115d0612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461165d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611654906138af565b60405180910390fd5b60005b81518110156116ee5760006004600084848151811061168257611681613f4e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806116e690613f7d565b915050611660565b5050565b60065481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117b5612286565b73ffffffffffffffffffffffffffffffffffffffff16146117d557600080fd5b60006117e03061184a565b905060008111156117f5576117f481612d24565b5b6000479050600081111561180d5761180c81612fbc565b5b5050565b600d60169054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61189b612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906138af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6119ee612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a72906138af565b60405180910390fd5b6008600a611a899190613a9d565b633b9aca00611a989190613ae8565b6008819055506008600a611aac9190613a9d565b633b9aca00611abb9190613ae8565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a611af09190613a9d565b633b9aca00611aff9190613ae8565b604051611b0c919061350a565b60405180910390a1565b60036020528060005260406000206000915054906101000a900460ff1681565b60085481565b611b44612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc8906138af565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f5050574f57000000000000000000000000000000000000000000000000000000815250905090565b611d03612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d87906138af565b60405180910390fd5b6014811115611dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dcb90613d67565b60405180910390fd5b8060068190555050565b6000611df2611deb612286565b8484612457565b6001905092915050565b600f5481565b611e0a612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8e906138af565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b600a5481565b60046020528060005260406000206000915054906101000a900460ff1681565b600e60149054906101000a900460ff1681565b611ef5612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f79906138af565b60405180910390fd5b60005b815181101561201357600160046000848481518110611fa757611fa6613f4e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061200b90613f7d565b915050611f85565b5050565b600d60159054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120b9612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d906138af565b60405180910390fd5b621baf80426121559190613fc5565b600f81905550565b60075481565b61216b612286565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906138af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225e90614045565b60405180910390fd5b61227081613028565b50565b600d60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f4906140d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361236c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236390614169565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161244a919061350a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bd906141fb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252c9061428d565b60405180910390fd5b60008111612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f9061431f565b60405180910390fd5b6000612582611c8f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156125f057506125c0611c8f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612a0357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156126995750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6126a257600080fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561274d5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156127a35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612846576008548211156127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e49061438b565b60405180910390fd5b600954826127fa8561184a565b6128049190613fc5565b1115612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c906143f7565b60405180910390fd5b5b61286e6064612860600654856130ec90919063ffffffff16565b61316690919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156128f957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612929576129266064612918600754856130ec90919063ffffffff16565b61316690919063ffffffff16565b90505b60006129343061184a565b9050600d60159054906101000a900460ff161580156129a05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156129b85750600d60169054906101000a900460ff165b80156129c55750600a5481115b15612a01576129e76129e2846129dd84600b546131b0565b6131b0565b612d24565b600047905060008111156129ff576129fe47612fbc565b5b505b505b6000811115612b0757612a5e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612afe919061350a565b60405180910390a35b612b5982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461322790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c00612bb2828461322790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131c990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612ca5848661322790919063ffffffff16565b604051612cb2919061350a565b60405180910390a350505050565b6000838311158290612d08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cff91906133db565b60405180910390fd5b5060008385612d179190614417565b9050809150509392505050565b6001600d60156101000a81548160ff0219169083151502179055506000810315612f9e57600d60149054906101000a900460ff1615612f9e576000600267ffffffffffffffff811115612d7a57612d7961362e565b5b604051908082528060200260200182016040528015612da85781602001602082028036833780820191505090505b5090503081600081518110612dc057612dbf613f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8b9190613b3f565b81600181518110612e9f57612e9e613f4e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612f0630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461228e565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612f6a959493929190614509565b600060405180830381600087803b158015612f8457600080fd5b505af1158015612f98573d6000803e3d6000fd5b50505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613024573d6000803e3d6000fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083036130fe5760009050613160565b6000828461310c9190613ae8565b905082848261311b9190614592565b1461315b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315290614635565b60405180910390fd5b809150505b92915050565b60006131a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613271565b905092915050565b60008183116131bf57826131c1565b815b905092915050565b60008082846131d89190613fc5565b90508381101561321d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613214906146a1565b60405180910390fd5b8091505092915050565b600061326983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cc0565b905092915050565b600080831182906132b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132af91906133db565b60405180910390fd5b50600083856132c79190614592565b9050809150509392505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6132fb816132e8565b811461330657600080fd5b50565b600081359050613318816132f2565b92915050565b600060208284031215613334576133336132de565b5b600061334284828501613309565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561338557808201518184015260208101905061336a565b60008484015250505050565b6000601f19601f8301169050919050565b60006133ad8261334b565b6133b78185613356565b93506133c7818560208601613367565b6133d081613391565b840191505092915050565b600060208201905081810360008301526133f581846133a2565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613428826133fd565b9050919050565b6134388161341d565b811461344357600080fd5b50565b6000813590506134558161342f565b92915050565b60008060408385031215613472576134716132de565b5b600061348085828601613446565b925050602061349185828601613309565b9150509250929050565b60008115159050919050565b6134b08161349b565b82525050565b60006020820190506134cb60008301846134a7565b92915050565b6134da8161341d565b82525050565b60006020820190506134f560008301846134d1565b92915050565b613504816132e8565b82525050565b600060208201905061351f60008301846134fb565b92915050565b6000819050919050565b600061354a613545613540846133fd565b613525565b6133fd565b9050919050565b600061355c8261352f565b9050919050565b600061356e82613551565b9050919050565b61357e81613563565b82525050565b60006020820190506135996000830184613575565b92915050565b6000806000606084860312156135b8576135b76132de565b5b60006135c686828701613446565b93505060206135d786828701613446565b92505060406135e886828701613309565b9150509250925092565b600060ff82169050919050565b613608816135f2565b82525050565b600060208201905061362360008301846135ff565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61366682613391565b810181811067ffffffffffffffff821117156136855761368461362e565b5b80604052505050565b60006136986132d4565b90506136a4828261365d565b919050565b600067ffffffffffffffff8211156136c4576136c361362e565b5b602082029050602081019050919050565b600080fd5b60006136ed6136e8846136a9565b61368e565b905080838252602082019050602084028301858111156137105761370f6136d5565b5b835b8181101561373957806137258882613446565b845260208401935050602081019050613712565b5050509392505050565b600082601f83011261375857613757613629565b5b81356137688482602086016136da565b91505092915050565b600060208284031215613787576137866132de565b5b600082013567ffffffffffffffff8111156137a5576137a46132e3565b5b6137b184828501613743565b91505092915050565b6000602082840312156137d0576137cf6132de565b5b60006137de84828501613446565b91505092915050565b60006137f2826133fd565b9050919050565b613802816137e7565b82525050565b600060208201905061381d60008301846137f9565b92915050565b6000806040838503121561383a576138396132de565b5b600061384885828601613446565b925050602061385985828601613446565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613899602083613356565b91506138a482613863565b602082019050919050565b600060208201905081810360008301526138c88161388c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613905601783613356565b9150613910826138cf565b602082019050919050565b60006020820190508181036000830152613934816138f8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156139c15780860481111561399d5761399c61393b565b5b60018516156139ac5780820291505b80810290506139ba8561396a565b9450613981565b94509492505050565b6000826139da5760019050613a96565b816139e85760009050613a96565b81600181146139fe5760028114613a0857613a37565b6001915050613a96565b60ff841115613a1a57613a1961393b565b5b8360020a915084821115613a3157613a3061393b565b5b50613a96565b5060208310610133831016604e8410600b8410161715613a6c5782820a905083811115613a6757613a6661393b565b5b613a96565b613a798484846001613977565b92509050818404811115613a9057613a8f61393b565b5b81810290505b9392505050565b6000613aa8826132e8565b9150613ab3836135f2565b9250613ae07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846139ca565b905092915050565b6000613af3826132e8565b9150613afe836132e8565b9250828202613b0c816132e8565b91508282048414831517613b2357613b2261393b565b5b5092915050565b600081519050613b398161342f565b92915050565b600060208284031215613b5557613b546132de565b5b6000613b6384828501613b2a565b91505092915050565b6000604082019050613b8160008301856134d1565b613b8e60208301846134d1565b9392505050565b6000819050919050565b6000613bba613bb5613bb084613b95565b613525565b6132e8565b9050919050565b613bca81613b9f565b82525050565b600060c082019050613be560008301896134d1565b613bf260208301886134fb565b613bff6040830187613bc1565b613c0c6060830186613bc1565b613c1960808301856134d1565b613c2660a08301846134fb565b979650505050505050565b600081519050613c40816132f2565b92915050565b600080600060608486031215613c5f57613c5e6132de565b5b6000613c6d86828701613c31565b9350506020613c7e86828701613c31565b9250506040613c8f86828701613c31565b9150509250925092565b6000604082019050613cae60008301856134d1565b613cbb60208301846134fb565b9392505050565b613ccb8161349b565b8114613cd657600080fd5b50565b600081519050613ce881613cc2565b92915050565b600060208284031215613d0457613d036132de565b5b6000613d1284828501613cd9565b91505092915050565b7f546f6f2068696768000000000000000000000000000000000000000000000000600082015250565b6000613d51600883613356565b9150613d5c82613d1b565b602082019050919050565b60006020820190508181036000830152613d8081613d44565b9050919050565b7f4c6971756964697479206c6f636b656400000000000000000000000000000000600082015250565b6000613dbd601083613356565b9150613dc882613d87565b602082019050919050565b60006020820190508181036000830152613dec81613db0565b9050919050565b7f4c6971756964697479207374696c6c206c6f636b656400000000000000000000600082015250565b6000613e29601683613356565b9150613e3482613df3565b602082019050919050565b60006020820190508181036000830152613e5881613e1c565b9050919050565b600060208284031215613e7557613e746132de565b5b6000613e8384828501613c31565b91505092915050565b6000613e9782613551565b9050919050565b613ea781613e8c565b82525050565b600060c082019050613ec260008301896134d1565b613ecf60208301886134fb565b613edc6040830187613bc1565b613ee96060830186613bc1565b613ef66080830185613e9e565b613f0360a08301846134fb565b979650505050505050565b60008060408385031215613f2557613f246132de565b5b6000613f3385828601613c31565b9250506020613f4485828601613c31565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f88826132e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fba57613fb961393b565b5b600182019050919050565b6000613fd0826132e8565b9150613fdb836132e8565b9250828201905080821115613ff357613ff261393b565b5b92915050565b7f496e76616c6964206f776e657200000000000000000000000000000000000000600082015250565b600061402f600d83613356565b915061403a82613ff9565b602082019050919050565b6000602082019050818103600083015261405e81614022565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006140c1602483613356565b91506140cc82614065565b604082019050919050565b600060208201905081810360008301526140f0816140b4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614153602283613356565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006141e5602583613356565b91506141f082614189565b604082019050919050565b60006020820190508181036000830152614214816141d8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614277602383613356565b91506142828261421b565b604082019050919050565b600060208201905081810360008301526142a68161426a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614309602983613356565b9150614314826142ad565b604082019050919050565b60006020820190508181036000830152614338816142fc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000614375601983613356565b91506143808261433f565b602082019050919050565b600060208201905081810360008301526143a481614368565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006143e1601a83613356565b91506143ec826143ab565b602082019050919050565b60006020820190508181036000830152614410816143d4565b9050919050565b6000614422826132e8565b915061442d836132e8565b92508282039050818111156144455761444461393b565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6144808161341d565b82525050565b60006144928383614477565b60208301905092915050565b6000602082019050919050565b60006144b68261444b565b6144c08185614456565b93506144cb83614467565b8060005b838110156144fc5781516144e38882614486565b97506144ee8361449e565b9250506001810190506144cf565b5085935050505092915050565b600060a08201905061451e60008301886134fb565b61452b6020830187613bc1565b818103604083015261453d81866144ab565b905061454c60608301856134d1565b61455960808301846134fb565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061459d826132e8565b91506145a8836132e8565b9250826145b8576145b7614563565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061461f602183613356565b915061462a826145c3565b604082019050919050565b6000602082019050818103600083015261464e81614612565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061468b601b83613356565b915061469682614655565b602082019050919050565b600060208201905081810360008301526146ba8161467e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122024952cf514896e7848ea80a8d12b1e86030a534106212e0091a7a64c57a2cebb64736f6c63430008120033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : _uniswapAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

4465:9435:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11441:649;;;;;;;;;;;;;:::i;:::-;;5115:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6964:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7797:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6178:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5743:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13161:692;;;;;;;;;;;;;:::i;:::-;;5802:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7241:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7966:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7150:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12667:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4833:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11350:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5850:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12135:348;;;;;;;;;;;;;:::i;:::-;;5948:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4791:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7344:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2691:148;;;;;;;;;;;;;:::i;:::-;;11083:159;;;;;;;;;;;;;:::i;:::-;;4689:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5554:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6756:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2477:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5617:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7055:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4954:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7471:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13009:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12918:83;;;;;;;;;;;;;:::i;:::-;;5680:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4747:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12885:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12495:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5915:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7646:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13041:108;;;;;;;;;;;;;:::i;:::-;;4871:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5885:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11441:649;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11505:11:::1;;;;;;;;;;;11504:12;11496:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11591:14;;;;;;;;;;;11554:15;;:52;;;;;;;;;;;;;;;;;;11617:58;11634:4;11649:15;;;;;;;;;;;5357:1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;11617:8;:58::i;:::-;11720:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11702:55;;;11766:4;11773:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11702:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11686:13;;:110;;;;;;;;;;;;;;;;;;11807:15;;;;;;;;;;;:31;;;11846:21;11877:4;11883:24;11901:4;11883:9;:24::i;:::-;11908:1;11910::::0;11920:4:::1;11926:15;11807:135;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11960:13;;;;;;;;;;;11953:29;;;11991:15;;;;;;;;;;;12009:14;11953:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12049:4;12035:11;;:18;;;;;;;;;;;;;;;;;;12078:4;12064:11;;:18;;;;;;;;;;;;;;;;;;11441:649::o:0;5115:157::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5212:2:::1;5199:9;:15;;5191:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5255:9;5237:15;:27;;;;5115:157:::0;:::o;6964:83::-;7001:13;7034:5;;;;;;;;;;;;;;;;;7027:12;;6964:83;:::o;7797:161::-;7872:4;7889:39;7898:12;:10;:12::i;:::-;7912:7;7921:6;7889:8;:39::i;:::-;7946:4;7939:11;;7797:161;;;;:::o;6178:29::-;;;;;;;;;;;;;:::o;5743:50::-;;;;:::o;13161:692::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13229:6:::1;;;;;;;;;;;13228:7;13219:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;13294:13;;13276:15;:31;13267:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13384:14;;;;;;;;;;;13347:15;;:52;;;;;;;;;;;;;;;;;;13410:58;13427:4;13442:15;;;;;;;;;;;5357:1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;13410:8;:58::i;:::-;13479:12;13512:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13494:52;;;13555:4;13562:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13494:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13479:106;;13596:14;13620:4;13613:22;;;13644:4;13613:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13596:54;;13661:15;;;;;;;;;;;:34;;;13718:4;13738:9;13762:1;13778::::0;13794:10:::1;;;;;;;;;;;13819:15;13661:184;;;;;;;;;;;;;;;;;;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;13205:648;;13161:692::o:0;5802:41::-;;;;;;;;;;;;;:::o;7241:95::-;7294:7;5357:1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;7314:14;;7241:95;:::o;7966:313::-;8064:4;8081:36;8091:6;8099:9;8110:6;8081:9;:36::i;:::-;8128:121;8137:6;8145:12;:10;:12::i;:::-;8159:89;8197:6;8159:89;;;;;;;;;;;;;;;;;:11;:19;8171:6;8159:19;;;;;;;;;;;;;;;:33;8179:12;:10;:12::i;:::-;8159:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8128:8;:121::i;:::-;8267:4;8260:11;;7966:313;;;;;:::o;7150:83::-;7191:5;5357:1;7209:16;;7150:83;:::o;12667:162::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12740:6:::1;12735:87;12756:6;:13;12752:1;:17;12735:87;;;12807:5;12789:4;:15;12794:6;12801:1;12794:9;;;;;;;;:::i;:::-;;;;;;;;12789:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12771:3;;;;;:::i;:::-;;;;12735:87;;;;12667:162:::0;:::o;4833:31::-;;;;:::o;11350:83::-;11397:4;11418;:7;11423:1;11418:7;;;;;;;;;;;;;;;;;;;;;;;;;11411:14;;11350:83;;;:::o;5850:28::-;;;;;;;;;;;;;:::o;12135:348::-;12199:10;;;;;;;;;;;12185:24;;:12;:10;:12::i;:::-;:24;;;12177:33;;;;;;12221:20;12242:24;12260:4;12242:9;:24::i;:::-;12221:45;;12293:1;12280:12;:14;12277:73;;;12308:30;12325:12;12308:16;:30::i;:::-;12277:73;12360:18;12379:21;12360:40;;12425:1;12414:10;:12;12411:65;;;12440:24;12453:10;12440:12;:24::i;:::-;12411:65;12166:317;;12135:348::o;5948:31::-;;;;;;;;;;;;;:::o;4791:33::-;;;;;;;;;;;;;:::o;7344:119::-;7410:7;7437:9;:18;7447:7;7437:18;;;;;;;;;;;;;;;;7430:25;;7344:119;;;:::o;2691:148::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2798:1:::1;2761:40;;2782:6;::::0;::::1;;;;;;;;2761:40;;;;;;;;;;;;2829:1;2812:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2691:148::o:0;11083:159::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5357:1:::1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;11136:12;:22;;;;5357:1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;11169:14;:22;;;;11207:27;5357:1;5413:2;:13;;;;:::i;:::-;5400:10;:26;;;;:::i;:::-;11207:27;;;;;;:::i;:::-;;;;;;;;11083:159::o:0;4689:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;5554:56::-;;;;:::o;6756:158::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6848:9:::1;6827:10;;:31;;;;;;;;;;;;;;;;;;6902:4;6869:18;:30;6888:10;;;;;;;;;;;6869:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6756:158:::0;:::o;2477:79::-;2515:7;2542:6;;;;;;;;;;;2535:13;;2477:79;:::o;5617:56::-;;;;:::o;7055:87::-;7094:13;7127:7;;;;;;;;;;;;;;;;;7120:14;;7055:87;:::o;4954:155::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5050:2:::1;5037:9;:15;;5029:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5092:9;5075:14;:26;;;;4954:155:::0;:::o;7471:167::-;7549:4;7566:42;7576:12;:10;:12::i;:::-;7590:9;7601:6;7566:9;:42::i;:::-;7626:4;7619:11;;7471:167;;;;:::o;13009:25::-;;;;:::o;12918:83::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12989:4:::1;12980:6;;:13;;;;;;;;;;;;;;;;;;12918:83::o:0;5680:56::-;;;;:::o;4747:37::-;;;;;;;;;;;;;;;;;;;;;;:::o;12885:26::-;;;;;;;;;;;;;:::o;12495:164::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12569:6:::1;12564:88;12585:5;:12;12581:1;:16;12564:88;;;12636:4;12619;:14;12624:5;12630:1;12624:8;;;;;;;;:::i;:::-;;;;;;;;12619:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12599:3;;;;;:::i;:::-;;;;12564:88;;;;12495:164:::0;:::o;5915:26::-;;;;;;;;;;;;;:::o;7646:143::-;7727:7;7754:11;:18;7766:5;7754:18;;;;;;;;;;;;;;;:27;7773:7;7754:27;;;;;;;;;;;;;;;;7747:34;;7646:143;;;;:::o;13041:108::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13129:11:::1;13110:15;:31;;;;:::i;:::-;13094:13;:47;;;;13041:108::o:0;4871:32::-;;;;:::o;2889:205::-;2614:12;:10;:12::i;:::-;2604:22;;:6;;;;;;;;;;:22;;;2596:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2994:1:::1;2974:22;;:8;:22;;::::0;2970:78:::1;;3013:23;;;;;;;;;;:::i;:::-;;;;;;;;2970:78;3058:28;3077:8;3058:18;:28::i;:::-;2889:205:::0;:::o;5885:23::-;;;;;;;;;;;;;:::o;232:98::-;285:7;312:10;305:17;;232:98;:::o;8287:335::-;8397:1;8380:19;;:5;:19;;;8372:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8478:1;8459:21;;:7;:21;;;8451:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8560:6;8530:11;:18;8542:5;8530:18;;;;;;;;;;;;;;;:27;8549:7;8530:27;;;;;;;;;;;;;;;:36;;;;8598:7;8582:32;;8591:5;8582:32;;;8607:6;8582:32;;;;;;:::i;:::-;;;;;;;;8287:335;;;:::o;8630:1774::-;8734:1;8718:18;;:4;:18;;;8710:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8811:1;8797:16;;:2;:16;;;8789:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8881:1;8872:6;:10;8864:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8939:17;8981:7;:5;:7::i;:::-;8973:15;;:4;:15;;;;:32;;;;;8998:7;:5;:7::i;:::-;8992:13;;:2;:13;;;;8973:32;8969:1079;;;9031:4;:10;9036:4;9031:10;;;;;;;;;;;;;;;;;;;;;;;;;9030:11;:24;;;;;9046:4;:8;9051:2;9046:8;;;;;;;;;;;;;;;;;;;;;;;;;9045:9;9030:24;9022:33;;;;;;9084:13;;;;;;;;;;;9076:21;;:4;:21;;;:55;;;;;9115:15;;;;;;;;;;;9101:30;;:2;:30;;;;9076:55;:83;;;;;9137:18;:22;9156:2;9137:22;;;;;;;;;;;;;;;;;;;;;;;;;9135:24;9076:83;9072:283;;;9199:12;;9189:6;:22;;9181:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9294:14;;9284:6;9268:13;9278:2;9268:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9260:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9072:283;9383:35;9414:3;9383:26;9394:14;;9383:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;9371:47;;9442:13;;;;;;;;;;;9436:19;;:2;:19;;;:43;;;;;9474:4;9459:20;;:4;:20;;;;9436:43;9433:131;;;9512:36;9544:3;9512:27;9523:15;;9512:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;9500:48;;9433:131;9580:28;9611:24;9629:4;9611:9;:24::i;:::-;9580:55;;9655:6;;;;;;;;;;;9654:7;:30;;;;;9671:13;;;;;;;;;;;9665:19;;:2;:19;;;9654:30;:45;;;;;9688:11;;;;;;;;;;;9654:45;:87;;;;;9724:17;;9703:20;:38;9654:87;9650:387;;;9762:67;9779:49;9783:6;9790:37;9794:20;9815:11;;9790:3;:37::i;:::-;9779:3;:49::i;:::-;9762:16;:67::i;:::-;9848:26;9877:21;9848:50;;9941:1;9920:18;:22;9917:105;;;9967:35;9980:21;9967:12;:35::i;:::-;9917:105;9743:294;9650:387;9007:1041;8969:1079;10073:1;10063:9;:11;10060:161;;;10113:39;10142:9;10113;:24;10131:4;10113:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10088:9;:24;10106:4;10088:24;;;;;;;;;;;;;;;:64;;;;10193:4;10170:39;;10179:4;10170:39;;;10199:9;10170:39;;;;;;:::i;:::-;;;;;;;;10060:161;10247:27;10267:6;10247:9;:15;10257:4;10247:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10231:9;:15;10241:4;10231:15;;;;;;;;;;;;;;;:43;;;;10299:40;10317:21;10328:9;10317:6;:10;;:21;;;;:::i;:::-;10299:9;:13;10309:2;10299:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10285:9;:13;10295:2;10285:13;;;;;;;;;;;;;;;:54;;;;10370:2;10355:41;;10364:4;10355:41;;;10374:21;10385:9;10374:6;:10;;:21;;;;:::i;:::-;10355:41;;;;;;:::i;:::-;;;;;;;;8699:1705;8630:1774;;;:::o;1369:190::-;1455:7;1488:1;1483;:6;;1491:12;1475:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1515:9;1531:1;1527;:5;;;;:::i;:::-;1515:17;;1550:1;1543:8;;;1369:190;;;;;:::o;10520:555::-;6079:4;6070:6;;:13;;;;;;;;;;;;;;;;;;10614:1:::1;10601:11;:14:::0;10598:27;10617:7:::1;10598:27;10639:11;;;;;;;;;;;10635:25:::0;10652:7:::1;10635:25;10670:21;10708:1;10694:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10670:40;;10739:4;10721;10726:1;10721:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10765:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10755:4;10760:1;10755:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10798:62;10815:4;10830:15;;;;;;;;;;;10848:11;10798:8;:62::i;:::-;10871:15;;;;;;;;;;;:66;;;10952:11;10978:1;10994:4;11021;11041:15;10871:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10587:488;6094:1;6115:5:::0;6106:6;;:14;;;;;;;;;;;;;;;;;;10520:555;:::o;11250:92::-;11307:10;;;;;;;;;;;:19;;:27;11327:6;11307:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11250:92;:::o;3102:191::-;3176:16;3195:6;;;;;;;;;;;3176:25;;3221:8;3212:6;;:17;;;;;;;;;;;;;;;;;;3276:8;3245:40;;3266:8;3245:40;;;;;;;;;;;;3165:128;3102:191;:::o;1567:246::-;1625:7;1654:1;1649;:6;1645:47;;1679:1;1672:8;;;;1645:47;1702:9;1718:1;1714;:5;;;;:::i;:::-;1702:17;;1747:1;1742;1738;:5;;;;:::i;:::-;:10;1730:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1804:1;1797:8;;;1567:246;;;;;:::o;1821:132::-;1879:7;1906:39;1910:1;1913;1906:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1899:46;;1821:132;;;;:::o;10414:98::-;10471:7;10498:1;10496;:3;10495:9;;10503:1;10495:9;;;10501:1;10495:9;10488:16;;10414:98;;;;:::o;1038:179::-;1096:7;1116:9;1132:1;1128;:5;;;;:::i;:::-;1116:17;;1157:1;1152;:6;;1144:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1208:1;1201:8;;;1038:179;;;;:::o;1225:136::-;1283:7;1310:43;1314:1;1317;1310:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1303:50;;1225:136;;;;:::o;1961:189::-;2047:7;2079:1;2075;:5;2082:12;2067:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2106:9;2122:1;2118;:5;;;;:::i;:::-;2106:17;;2141:1;2134:8;;;1961:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:118::-;4220:24;4238:5;4220:24;:::i;:::-;4215:3;4208:37;4133:118;;:::o;4257:222::-;4350:4;4388:2;4377:9;4373:18;4365:26;;4401:71;4469:1;4458:9;4454:17;4445:6;4401:71;:::i;:::-;4257:222;;;;:::o;4485:60::-;4513:3;4534:5;4527:12;;4485:60;;;:::o;4551:142::-;4601:9;4634:53;4652:34;4661:24;4679:5;4661:24;:::i;:::-;4652:34;:::i;:::-;4634:53;:::i;:::-;4621:66;;4551:142;;;:::o;4699:126::-;4749:9;4782:37;4813:5;4782:37;:::i;:::-;4769:50;;4699:126;;;:::o;4831:152::-;4907:9;4940:37;4971:5;4940:37;:::i;:::-;4927:50;;4831:152;;;:::o;4989:183::-;5102:63;5159:5;5102:63;:::i;:::-;5097:3;5090:76;4989:183;;:::o;5178:274::-;5297:4;5335:2;5324:9;5320:18;5312:26;;5348:97;5442:1;5431:9;5427:17;5418:6;5348:97;:::i;:::-;5178:274;;;;:::o;5458:619::-;5535:6;5543;5551;5600:2;5588:9;5579:7;5575:23;5571:32;5568:119;;;5606:79;;:::i;:::-;5568:119;5726:1;5751:53;5796:7;5787:6;5776:9;5772:22;5751:53;:::i;:::-;5741:63;;5697:117;5853:2;5879:53;5924:7;5915:6;5904:9;5900:22;5879:53;:::i;:::-;5869:63;;5824:118;5981:2;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5952:118;5458:619;;;;;:::o;6083:86::-;6118:7;6158:4;6151:5;6147:16;6136:27;;6083:86;;;:::o;6175:112::-;6258:22;6274:5;6258:22;:::i;:::-;6253:3;6246:35;6175:112;;:::o;6293:214::-;6382:4;6420:2;6409:9;6405:18;6397:26;;6433:67;6497:1;6486:9;6482:17;6473:6;6433:67;:::i;:::-;6293:214;;;;:::o;6513:117::-;6622:1;6619;6612:12;6636:180;6684:77;6681:1;6674:88;6781:4;6778:1;6771:15;6805:4;6802:1;6795:15;6822:281;6905:27;6927:4;6905:27;:::i;:::-;6897:6;6893:40;7035:6;7023:10;7020:22;6999:18;6987:10;6984:34;6981:62;6978:88;;;7046:18;;:::i;:::-;6978:88;7086:10;7082:2;7075:22;6865:238;6822:281;;:::o;7109:129::-;7143:6;7170:20;;:::i;:::-;7160:30;;7199:33;7227:4;7219:6;7199:33;:::i;:::-;7109:129;;;:::o;7244:311::-;7321:4;7411:18;7403:6;7400:30;7397:56;;;7433:18;;:::i;:::-;7397:56;7483:4;7475:6;7471:17;7463:25;;7543:4;7537;7533:15;7525:23;;7244:311;;;:::o;7561:117::-;7670:1;7667;7660:12;7701:710;7797:5;7822:81;7838:64;7895:6;7838:64;:::i;:::-;7822:81;:::i;:::-;7813:90;;7923:5;7952:6;7945:5;7938:21;7986:4;7979:5;7975:16;7968:23;;8039:4;8031:6;8027:17;8019:6;8015:30;8068:3;8060:6;8057:15;8054:122;;;8087:79;;:::i;:::-;8054:122;8202:6;8185:220;8219:6;8214:3;8211:15;8185:220;;;8294:3;8323:37;8356:3;8344:10;8323:37;:::i;:::-;8318:3;8311:50;8390:4;8385:3;8381:14;8374:21;;8261:144;8245:4;8240:3;8236:14;8229:21;;8185:220;;;8189:21;7803:608;;7701:710;;;;;:::o;8434:370::-;8505:5;8554:3;8547:4;8539:6;8535:17;8531:27;8521:122;;8562:79;;:::i;:::-;8521:122;8679:6;8666:20;8704:94;8794:3;8786:6;8779:4;8771:6;8767:17;8704:94;:::i;:::-;8695:103;;8511:293;8434:370;;;;:::o;8810:539::-;8894:6;8943:2;8931:9;8922:7;8918:23;8914:32;8911:119;;;8949:79;;:::i;:::-;8911:119;9097:1;9086:9;9082:17;9069:31;9127:18;9119:6;9116:30;9113:117;;;9149:79;;:::i;:::-;9113:117;9254:78;9324:7;9315:6;9304:9;9300:22;9254:78;:::i;:::-;9244:88;;9040:302;8810:539;;;;:::o;9355:329::-;9414:6;9463:2;9451:9;9442:7;9438:23;9434:32;9431:119;;;9469:79;;:::i;:::-;9431:119;9589:1;9614:53;9659:7;9650:6;9639:9;9635:22;9614:53;:::i;:::-;9604:63;;9560:117;9355:329;;;;:::o;9690:104::-;9735:7;9764:24;9782:5;9764:24;:::i;:::-;9753:35;;9690:104;;;:::o;9800:142::-;9903:32;9929:5;9903:32;:::i;:::-;9898:3;9891:45;9800:142;;:::o;9948:254::-;10057:4;10095:2;10084:9;10080:18;10072:26;;10108:87;10192:1;10181:9;10177:17;10168:6;10108:87;:::i;:::-;9948:254;;;;:::o;10208:474::-;10276:6;10284;10333:2;10321:9;10312:7;10308:23;10304:32;10301:119;;;10339:79;;:::i;:::-;10301:119;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10208:474;;;;;:::o;10688:182::-;10828:34;10824:1;10816:6;10812:14;10805:58;10688:182;:::o;10876:366::-;11018:3;11039:67;11103:2;11098:3;11039:67;:::i;:::-;11032:74;;11115:93;11204:3;11115:93;:::i;:::-;11233:2;11228:3;11224:12;11217:19;;10876:366;;;:::o;11248:419::-;11414:4;11452:2;11441:9;11437:18;11429:26;;11501:9;11495:4;11491:20;11487:1;11476:9;11472:17;11465:47;11529:131;11655:4;11529:131;:::i;:::-;11521:139;;11248:419;;;:::o;11673:173::-;11813:25;11809:1;11801:6;11797:14;11790:49;11673:173;:::o;11852:366::-;11994:3;12015:67;12079:2;12074:3;12015:67;:::i;:::-;12008:74;;12091:93;12180:3;12091:93;:::i;:::-;12209:2;12204:3;12200:12;12193:19;;11852:366;;;:::o;12224:419::-;12390:4;12428:2;12417:9;12413:18;12405:26;;12477:9;12471:4;12467:20;12463:1;12452:9;12448:17;12441:47;12505:131;12631:4;12505:131;:::i;:::-;12497:139;;12224:419;;;:::o;12649:180::-;12697:77;12694:1;12687:88;12794:4;12791:1;12784:15;12818:4;12815:1;12808:15;12835:102;12877:8;12924:5;12921:1;12917:13;12896:34;;12835:102;;;:::o;12943:848::-;13004:5;13011:4;13035:6;13026:15;;13059:5;13050:14;;13073:712;13094:1;13084:8;13081:15;13073:712;;;13189:4;13184:3;13180:14;13174:4;13171:24;13168:50;;;13198:18;;:::i;:::-;13168:50;13248:1;13238:8;13234:16;13231:451;;;13663:4;13656:5;13652:16;13643:25;;13231:451;13713:4;13707;13703:15;13695:23;;13743:32;13766:8;13743:32;:::i;:::-;13731:44;;13073:712;;;12943:848;;;;;;;:::o;13797:1073::-;13851:5;14042:8;14032:40;;14063:1;14054:10;;14065:5;;14032:40;14091:4;14081:36;;14108:1;14099:10;;14110:5;;14081:36;14177:4;14225:1;14220:27;;;;14261:1;14256:191;;;;14170:277;;14220:27;14238:1;14229:10;;14240:5;;;14256:191;14301:3;14291:8;14288:17;14285:43;;;14308:18;;:::i;:::-;14285:43;14357:8;14354:1;14350:16;14341:25;;14392:3;14385:5;14382:14;14379:40;;;14399:18;;:::i;:::-;14379:40;14432:5;;;14170:277;;14556:2;14546:8;14543:16;14537:3;14531:4;14528:13;14524:36;14506:2;14496:8;14493:16;14488:2;14482:4;14479:12;14475:35;14459:111;14456:246;;;14612:8;14606:4;14602:19;14593:28;;14647:3;14640:5;14637:14;14634:40;;;14654:18;;:::i;:::-;14634:40;14687:5;;14456:246;14727:42;14765:3;14755:8;14749:4;14746:1;14727:42;:::i;:::-;14712:57;;;;14801:4;14796:3;14792:14;14785:5;14782:25;14779:51;;;14810:18;;:::i;:::-;14779:51;14859:4;14852:5;14848:16;14839:25;;13797:1073;;;;;;:::o;14876:281::-;14934:5;14958:23;14976:4;14958:23;:::i;:::-;14950:31;;15002:25;15018:8;15002:25;:::i;:::-;14990:37;;15046:104;15083:66;15073:8;15067:4;15046:104;:::i;:::-;15037:113;;14876:281;;;;:::o;15163:410::-;15203:7;15226:20;15244:1;15226:20;:::i;:::-;15221:25;;15260:20;15278:1;15260:20;:::i;:::-;15255:25;;15315:1;15312;15308:9;15337:30;15355:11;15337:30;:::i;:::-;15326:41;;15516:1;15507:7;15503:15;15500:1;15497:22;15477:1;15470:9;15450:83;15427:139;;15546:18;;:::i;:::-;15427:139;15211:362;15163:410;;;;:::o;15579:143::-;15636:5;15667:6;15661:13;15652:22;;15683:33;15710:5;15683:33;:::i;:::-;15579:143;;;;:::o;15728:351::-;15798:6;15847:2;15835:9;15826:7;15822:23;15818:32;15815:119;;;15853:79;;:::i;:::-;15815:119;15973:1;15998:64;16054:7;16045:6;16034:9;16030:22;15998:64;:::i;:::-;15988:74;;15944:128;15728:351;;;;:::o;16085:332::-;16206:4;16244:2;16233:9;16229:18;16221:26;;16257:71;16325:1;16314:9;16310:17;16301:6;16257:71;:::i;:::-;16338:72;16406:2;16395:9;16391:18;16382:6;16338:72;:::i;:::-;16085:332;;;;;:::o;16423:85::-;16468:7;16497:5;16486:16;;16423:85;;;:::o;16514:158::-;16572:9;16605:61;16623:42;16632:32;16658:5;16632:32;:::i;:::-;16623:42;:::i;:::-;16605:61;:::i;:::-;16592:74;;16514:158;;;:::o;16678:147::-;16773:45;16812:5;16773:45;:::i;:::-;16768:3;16761:58;16678:147;;:::o;16831:807::-;17080:4;17118:3;17107:9;17103:19;17095:27;;17132:71;17200:1;17189:9;17185:17;17176:6;17132:71;:::i;:::-;17213:72;17281:2;17270:9;17266:18;17257:6;17213:72;:::i;:::-;17295:80;17371:2;17360:9;17356:18;17347:6;17295:80;:::i;:::-;17385;17461:2;17450:9;17446:18;17437:6;17385:80;:::i;:::-;17475:73;17543:3;17532:9;17528:19;17519:6;17475:73;:::i;:::-;17558;17626:3;17615:9;17611:19;17602:6;17558:73;:::i;:::-;16831:807;;;;;;;;;:::o;17644:143::-;17701:5;17732:6;17726:13;17717:22;;17748:33;17775:5;17748:33;:::i;:::-;17644:143;;;;:::o;17793:663::-;17881:6;17889;17897;17946:2;17934:9;17925:7;17921:23;17917:32;17914:119;;;17952:79;;:::i;:::-;17914:119;18072:1;18097:64;18153:7;18144:6;18133:9;18129:22;18097:64;:::i;:::-;18087:74;;18043:128;18210:2;18236:64;18292:7;18283:6;18272:9;18268:22;18236:64;:::i;:::-;18226:74;;18181:129;18349:2;18375:64;18431:7;18422:6;18411:9;18407:22;18375:64;:::i;:::-;18365:74;;18320:129;17793:663;;;;;:::o;18462:332::-;18583:4;18621:2;18610:9;18606:18;18598:26;;18634:71;18702:1;18691:9;18687:17;18678:6;18634:71;:::i;:::-;18715:72;18783:2;18772:9;18768:18;18759:6;18715:72;:::i;:::-;18462:332;;;;;:::o;18800:116::-;18870:21;18885:5;18870:21;:::i;:::-;18863:5;18860:32;18850:60;;18906:1;18903;18896:12;18850:60;18800:116;:::o;18922:137::-;18976:5;19007:6;19001:13;18992:22;;19023:30;19047:5;19023:30;:::i;:::-;18922:137;;;;:::o;19065:345::-;19132:6;19181:2;19169:9;19160:7;19156:23;19152:32;19149:119;;;19187:79;;:::i;:::-;19149:119;19307:1;19332:61;19385:7;19376:6;19365:9;19361:22;19332:61;:::i;:::-;19322:71;;19278:125;19065:345;;;;:::o;19416:158::-;19556:10;19552:1;19544:6;19540:14;19533:34;19416:158;:::o;19580:365::-;19722:3;19743:66;19807:1;19802:3;19743:66;:::i;:::-;19736:73;;19818:93;19907:3;19818:93;:::i;:::-;19936:2;19931:3;19927:12;19920:19;;19580:365;;;:::o;19951:419::-;20117:4;20155:2;20144:9;20140:18;20132:26;;20204:9;20198:4;20194:20;20190:1;20179:9;20175:17;20168:47;20232:131;20358:4;20232:131;:::i;:::-;20224:139;;19951:419;;;:::o;20376:166::-;20516:18;20512:1;20504:6;20500:14;20493:42;20376:166;:::o;20548:366::-;20690:3;20711:67;20775:2;20770:3;20711:67;:::i;:::-;20704:74;;20787:93;20876:3;20787:93;:::i;:::-;20905:2;20900:3;20896:12;20889:19;;20548:366;;;:::o;20920:419::-;21086:4;21124:2;21113:9;21109:18;21101:26;;21173:9;21167:4;21163:20;21159:1;21148:9;21144:17;21137:47;21201:131;21327:4;21201:131;:::i;:::-;21193:139;;20920:419;;;:::o;21345:172::-;21485:24;21481:1;21473:6;21469:14;21462:48;21345:172;:::o;21523:366::-;21665:3;21686:67;21750:2;21745:3;21686:67;:::i;:::-;21679:74;;21762:93;21851:3;21762:93;:::i;:::-;21880:2;21875:3;21871:12;21864:19;;21523:366;;;:::o;21895:419::-;22061:4;22099:2;22088:9;22084:18;22076:26;;22148:9;22142:4;22138:20;22134:1;22123:9;22119:17;22112:47;22176:131;22302:4;22176:131;:::i;:::-;22168:139;;21895:419;;;:::o;22320:351::-;22390:6;22439:2;22427:9;22418:7;22414:23;22410:32;22407:119;;;22445:79;;:::i;:::-;22407:119;22565:1;22590:64;22646:7;22637:6;22626:9;22622:22;22590:64;:::i;:::-;22580:74;;22536:128;22320:351;;;;:::o;22677:134::-;22735:9;22768:37;22799:5;22768:37;:::i;:::-;22755:50;;22677:134;;;:::o;22817:147::-;22912:45;22951:5;22912:45;:::i;:::-;22907:3;22900:58;22817:147;;:::o;22970:823::-;23227:4;23265:3;23254:9;23250:19;23242:27;;23279:71;23347:1;23336:9;23332:17;23323:6;23279:71;:::i;:::-;23360:72;23428:2;23417:9;23413:18;23404:6;23360:72;:::i;:::-;23442:80;23518:2;23507:9;23503:18;23494:6;23442:80;:::i;:::-;23532;23608:2;23597:9;23593:18;23584:6;23532:80;:::i;:::-;23622:81;23698:3;23687:9;23683:19;23674:6;23622:81;:::i;:::-;23713:73;23781:3;23770:9;23766:19;23757:6;23713:73;:::i;:::-;22970:823;;;;;;;;;:::o;23799:507::-;23878:6;23886;23935:2;23923:9;23914:7;23910:23;23906:32;23903:119;;;23941:79;;:::i;:::-;23903:119;24061:1;24086:64;24142:7;24133:6;24122:9;24118:22;24086:64;:::i;:::-;24076:74;;24032:128;24199:2;24225:64;24281:7;24272:6;24261:9;24257:22;24225:64;:::i;:::-;24215:74;;24170:129;23799:507;;;;;:::o;24312:180::-;24360:77;24357:1;24350:88;24457:4;24454:1;24447:15;24481:4;24478:1;24471:15;24498:233;24537:3;24560:24;24578:5;24560:24;:::i;:::-;24551:33;;24606:66;24599:5;24596:77;24593:103;;24676:18;;:::i;:::-;24593:103;24723:1;24716:5;24712:13;24705:20;;24498:233;;;:::o;24737:191::-;24777:3;24796:20;24814:1;24796:20;:::i;:::-;24791:25;;24830:20;24848:1;24830:20;:::i;:::-;24825:25;;24873:1;24870;24866:9;24859:16;;24894:3;24891:1;24888:10;24885:36;;;24901:18;;:::i;:::-;24885:36;24737:191;;;;:::o;24934:163::-;25074:15;25070:1;25062:6;25058:14;25051:39;24934:163;:::o;25103:366::-;25245:3;25266:67;25330:2;25325:3;25266:67;:::i;:::-;25259:74;;25342:93;25431:3;25342:93;:::i;:::-;25460:2;25455:3;25451:12;25444:19;;25103:366;;;:::o;25475:419::-;25641:4;25679:2;25668:9;25664:18;25656:26;;25728:9;25722:4;25718:20;25714:1;25703:9;25699:17;25692:47;25756:131;25882:4;25756:131;:::i;:::-;25748:139;;25475:419;;;:::o;25900:223::-;26040:34;26036:1;26028:6;26024:14;26017:58;26109:6;26104:2;26096:6;26092:15;26085:31;25900:223;:::o;26129:366::-;26271:3;26292:67;26356:2;26351:3;26292:67;:::i;:::-;26285:74;;26368:93;26457:3;26368:93;:::i;:::-;26486:2;26481:3;26477:12;26470:19;;26129:366;;;:::o;26501:419::-;26667:4;26705:2;26694:9;26690:18;26682:26;;26754:9;26748:4;26744:20;26740:1;26729:9;26725:17;26718:47;26782:131;26908:4;26782:131;:::i;:::-;26774:139;;26501:419;;;:::o;26926:221::-;27066:34;27062:1;27054:6;27050:14;27043:58;27135:4;27130:2;27122:6;27118:15;27111:29;26926:221;:::o;27153:366::-;27295:3;27316:67;27380:2;27375:3;27316:67;:::i;:::-;27309:74;;27392:93;27481:3;27392:93;:::i;:::-;27510:2;27505:3;27501:12;27494:19;;27153:366;;;:::o;27525:419::-;27691:4;27729:2;27718:9;27714:18;27706:26;;27778:9;27772:4;27768:20;27764:1;27753:9;27749:17;27742:47;27806:131;27932:4;27806:131;:::i;:::-;27798:139;;27525:419;;;:::o;27950:224::-;28090:34;28086:1;28078:6;28074:14;28067:58;28159:7;28154:2;28146:6;28142:15;28135:32;27950:224;:::o;28180:366::-;28322:3;28343:67;28407:2;28402:3;28343:67;:::i;:::-;28336:74;;28419:93;28508:3;28419:93;:::i;:::-;28537:2;28532:3;28528:12;28521:19;;28180:366;;;:::o;28552:419::-;28718:4;28756:2;28745:9;28741:18;28733:26;;28805:9;28799:4;28795:20;28791:1;28780:9;28776:17;28769:47;28833:131;28959:4;28833:131;:::i;:::-;28825:139;;28552:419;;;:::o;28977:222::-;29117:34;29113:1;29105:6;29101:14;29094:58;29186:5;29181:2;29173:6;29169:15;29162:30;28977:222;:::o;29205:366::-;29347:3;29368:67;29432:2;29427:3;29368:67;:::i;:::-;29361:74;;29444:93;29533:3;29444:93;:::i;:::-;29562:2;29557:3;29553:12;29546:19;;29205:366;;;:::o;29577:419::-;29743:4;29781:2;29770:9;29766:18;29758:26;;29830:9;29824:4;29820:20;29816:1;29805:9;29801:17;29794:47;29858:131;29984:4;29858:131;:::i;:::-;29850:139;;29577:419;;;:::o;30002:228::-;30142:34;30138:1;30130:6;30126:14;30119:58;30211:11;30206:2;30198:6;30194:15;30187:36;30002:228;:::o;30236:366::-;30378:3;30399:67;30463:2;30458:3;30399:67;:::i;:::-;30392:74;;30475:93;30564:3;30475:93;:::i;:::-;30593:2;30588:3;30584:12;30577:19;;30236:366;;;:::o;30608:419::-;30774:4;30812:2;30801:9;30797:18;30789:26;;30861:9;30855:4;30851:20;30847:1;30836:9;30832:17;30825:47;30889:131;31015:4;30889:131;:::i;:::-;30881:139;;30608:419;;;:::o;31033:175::-;31173:27;31169:1;31161:6;31157:14;31150:51;31033:175;:::o;31214:366::-;31356:3;31377:67;31441:2;31436:3;31377:67;:::i;:::-;31370:74;;31453:93;31542:3;31453:93;:::i;:::-;31571:2;31566:3;31562:12;31555:19;;31214:366;;;:::o;31586:419::-;31752:4;31790:2;31779:9;31775:18;31767:26;;31839:9;31833:4;31829:20;31825:1;31814:9;31810:17;31803:47;31867:131;31993:4;31867:131;:::i;:::-;31859:139;;31586:419;;;:::o;32011:176::-;32151:28;32147:1;32139:6;32135:14;32128:52;32011:176;:::o;32193:366::-;32335:3;32356:67;32420:2;32415:3;32356:67;:::i;:::-;32349:74;;32432:93;32521:3;32432:93;:::i;:::-;32550:2;32545:3;32541:12;32534:19;;32193:366;;;:::o;32565:419::-;32731:4;32769:2;32758:9;32754:18;32746:26;;32818:9;32812:4;32808:20;32804:1;32793:9;32789:17;32782:47;32846:131;32972:4;32846:131;:::i;:::-;32838:139;;32565:419;;;:::o;32990:194::-;33030:4;33050:20;33068:1;33050:20;:::i;:::-;33045:25;;33084:20;33102:1;33084:20;:::i;:::-;33079:25;;33128:1;33125;33121:9;33113:17;;33152:1;33146:4;33143:11;33140:37;;;33157:18;;:::i;:::-;33140:37;32990:194;;;;:::o;33190:114::-;33257:6;33291:5;33285:12;33275:22;;33190:114;;;:::o;33310:184::-;33409:11;33443:6;33438:3;33431:19;33483:4;33478:3;33474:14;33459:29;;33310:184;;;;:::o;33500:132::-;33567:4;33590:3;33582:11;;33620:4;33615:3;33611:14;33603:22;;33500:132;;;:::o;33638:108::-;33715:24;33733:5;33715:24;:::i;:::-;33710:3;33703:37;33638:108;;:::o;33752:179::-;33821:10;33842:46;33884:3;33876:6;33842:46;:::i;:::-;33920:4;33915:3;33911:14;33897:28;;33752:179;;;;:::o;33937:113::-;34007:4;34039;34034:3;34030:14;34022:22;;33937:113;;;:::o;34086:732::-;34205:3;34234:54;34282:5;34234:54;:::i;:::-;34304:86;34383:6;34378:3;34304:86;:::i;:::-;34297:93;;34414:56;34464:5;34414:56;:::i;:::-;34493:7;34524:1;34509:284;34534:6;34531:1;34528:13;34509:284;;;34610:6;34604:13;34637:63;34696:3;34681:13;34637:63;:::i;:::-;34630:70;;34723:60;34776:6;34723:60;:::i;:::-;34713:70;;34569:224;34556:1;34553;34549:9;34544:14;;34509:284;;;34513:14;34809:3;34802:10;;34210:608;;;34086:732;;;;:::o;34824:831::-;35087:4;35125:3;35114:9;35110:19;35102:27;;35139:71;35207:1;35196:9;35192:17;35183:6;35139:71;:::i;:::-;35220:80;35296:2;35285:9;35281:18;35272:6;35220:80;:::i;:::-;35347:9;35341:4;35337:20;35332:2;35321:9;35317:18;35310:48;35375:108;35478:4;35469:6;35375:108;:::i;:::-;35367:116;;35493:72;35561:2;35550:9;35546:18;35537:6;35493:72;:::i;:::-;35575:73;35643:3;35632:9;35628:19;35619:6;35575:73;:::i;:::-;34824:831;;;;;;;;:::o;35661:180::-;35709:77;35706:1;35699:88;35806:4;35803:1;35796:15;35830:4;35827:1;35820:15;35847:185;35887:1;35904:20;35922:1;35904:20;:::i;:::-;35899:25;;35938:20;35956:1;35938:20;:::i;:::-;35933:25;;35977:1;35967:35;;35982:18;;:::i;:::-;35967:35;36024:1;36021;36017:9;36012:14;;35847:185;;;;:::o;36038:220::-;36178:34;36174:1;36166:6;36162:14;36155:58;36247:3;36242:2;36234:6;36230:15;36223:28;36038:220;:::o;36264:366::-;36406:3;36427:67;36491:2;36486:3;36427:67;:::i;:::-;36420:74;;36503:93;36592:3;36503:93;:::i;:::-;36621:2;36616:3;36612:12;36605:19;;36264:366;;;:::o;36636:419::-;36802:4;36840:2;36829:9;36825:18;36817:26;;36889:9;36883:4;36879:20;36875:1;36864:9;36860:17;36853:47;36917:131;37043:4;36917:131;:::i;:::-;36909:139;;36636:419;;;:::o;37061:177::-;37201:29;37197:1;37189:6;37185:14;37178:53;37061:177;:::o;37244:366::-;37386:3;37407:67;37471:2;37466:3;37407:67;:::i;:::-;37400:74;;37483:93;37572:3;37483:93;:::i;:::-;37601:2;37596:3;37592:12;37585:19;;37244:366;;;:::o;37616:419::-;37782:4;37820:2;37809:9;37805:18;37797:26;;37869:9;37863:4;37859:20;37855:1;37844:9;37840:17;37833:47;37897:131;38023:4;37897:131;:::i;:::-;37889:139;;37616:419;;;:::o

Swarm Source

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