ETH Price: $2,768.53 (+1.40%)
 

Overview

Max Total Supply

1,000,000,000,000 StarPig

Holders

57

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
StarPig

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
SPDX-License-Identifier: UNLICENSED 
https://starpig.games
https://t.me/StarPigGame
*/

pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

contract StarPig is Context, IERC20, Ownable {
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    uint private constant _totalSupply = 1e12 * 10**9;

    string public constant name = unicode"StarPig";
    string public constant symbol = unicode"StarPig";
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _FeeAddress1;
    address payable public _FeeAddress2;
    address public uniswapV2Pair;
    uint public _buyFee = 10;
    uint public _sellFee = 13;
    uint private _feeRate = 20;
    uint public _maxBuyAmount;
    uint public _maxHeldTokens;
    uint public _launchedAt;
    bool private _tradingOpen;
    bool private _inSwap = false;
    bool public _useImpactFeeSetter = false;

    struct User {
        uint buy;
        bool exists;
    }

    event FeeMultiplierUpdated(uint _multiplier);
    event ImpactFeeSetterUpdated(bool _usefeesetter);
    event FeeRateUpdated(uint _rate);
    event FeesUpdated(uint _buy, uint _sell);
    event FeeAddress1Updated(address _feewallet1);
    event FeeAddress2Updated(address _feewallet2);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable FeeAddress1, address payable FeeAddress2) {
        _FeeAddress1 = FeeAddress1;
        _FeeAddress2 = FeeAddress2;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress1] = true;
        _isExcludedFromFee[FeeAddress2] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    function balanceOf(address account) public view override returns (uint) {
        return _owned[account];
    }
    function transfer(address recipient, uint amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function totalSupply() public pure override returns (uint) {
        return _totalSupply;
    }

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

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

    function transferFrom(address sender, address recipient, uint amount) public override returns (bool) {
        if(_tradingOpen && !_isExcludedFromFee[recipient] && sender == uniswapV2Pair){
            require (recipient == tx.origin, "No bot");
        }
        _transfer(sender, recipient, amount);
        uint allowedAmount = _allowances[sender][_msgSender()] - amount;
        _approve(sender, _msgSender(), allowedAmount);
        return true;
    }

    function _approve(address owner, address spender, uint 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, uint 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");
        bool isBuy = false;
        if(from != owner() && to != owner()) {
            // Eth
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "PLZ Open Trade.");
                if((_launchedAt + (12 hours)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "Can't hold anymore."); // 10%
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (120 seconds)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "Don't buy too much.");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            // token
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "plz wait.");
                uint contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > 0) {
                    if(_useImpactFeeSetter) {
                        if(contractTokenBalance > (balanceOf(uniswapV2Pair) * _feeRate) / 100) {
                            contractTokenBalance = (balanceOf(uniswapV2Pair) * _feeRate) / 100;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                isBuy = false;
            }
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        _tokenTransfer(from,to,amount,takeFee,isBuy);
    }

    function swapTokensForEth(uint tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint amount) private {
        _FeeAddress1.transfer(amount / 2);
        _FeeAddress2.transfer(amount / 2);
    }
    
    function _tokenTransfer(address sender, address recipient, uint amount, bool takefee, bool buy) private {
        (uint fee) = _getFee(takefee, buy);
        _transferStandard(sender, recipient, amount, fee);
    }

    function _getFee(bool takefee, bool buy) private view returns (uint) {
        uint fee = 0;
        if(takefee) {
            if(buy) {
                fee = _buyFee;
            } else {
                fee = _sellFee;
                
            }
        }
        return fee;
    }

    function _transferStandard(address sender, address recipient, uint amount, uint fee) private {
        (uint transferAmount, uint team) = _getValues(amount, fee);
        _owned[sender] = _owned[sender] - amount;
        _owned[recipient] = _owned[recipient] + transferAmount; 
        _takeTeam(team);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint amount, uint teamFee) private pure returns (uint, uint) {
        uint team = (amount * teamFee) / 100;
        uint transferAmount = amount - team;
        return (transferAmount, team);
    }

    function _takeTeam(uint team) private {
        _owned[address(this)] = _owned[address(this)] + team;
    }

    receive() external payable {}
    
    // external functions
    function addLiquidity() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        _tradingOpen = true;
        _launchedAt = block.timestamp;
        _maxBuyAmount = 50000000000 * 10**9; // 5%
        _maxHeldTokens = 100000000000 * 10**9; // 10%
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress1);
        uint contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress1);
        uint contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setFeeRate(uint rate) external {
        require(_msgSender() == _FeeAddress1);
        require(rate > 0, "Rate can't be zero");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell) external {
        require(_msgSender() == _FeeAddress1);
        require(buy < 13 && sell < 13 && buy < _buyFee && sell < _sellFee);
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

    function toggleImpactFee(bool onoff) external {
        require(_msgSender() == _FeeAddress1);
        _useImpactFeeSetter = onoff;
        emit ImpactFeeSetterUpdated(_useImpactFeeSetter);
    }

    function updateFeeAddress1(address newAddress) external {
        require(_msgSender() == _FeeAddress1);
        _FeeAddress1 = payable(newAddress);
        emit FeeAddress1Updated(_FeeAddress1);
    }

    function updateFeeAddress2(address newAddress) external {
        require(_msgSender() == _FeeAddress2);
        _FeeAddress2 = payable(newAddress);
        emit FeeAddress2Updated(_FeeAddress2);
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress1","type":"address"},{"internalType":"address payable","name":"FeeAddress2","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":"address","name":"_feewallet1","type":"address"}],"name":"FeeAddress1Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feewallet2","type":"address"}],"name":"FeeAddress2Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_usefeesetter","type":"bool"}],"name":"ImpactFeeSetterUpdated","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":"_FeeAddress1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeAddress2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHeldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useImpactFeeSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","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":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleImpactFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a8055600d600b556014600c556000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055503480156200005557600080fd5b5060405162003cdf38038062003cdf83398181016040528101906200007b91906200047d565b60006200008d620003e260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000210620003ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003d29190620004df565b60405180910390a35050620004fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004458262000418565b9050919050565b620004578162000438565b81146200046357600080fd5b50565b60008151905062000477816200044c565b92915050565b6000806040838503121562000497576200049662000413565b5b6000620004a78582860162000466565b9250506020620004ba8582860162000466565b9150509250929050565b6000819050919050565b620004d981620004c4565b82525050565b6000602082019050620004f66000830184620004ce565b92915050565b6137d3806200050c6000396000f3fe6080604052600436106101dc5760003560e01c806349bd5a5e1161010257806395d89b4111610095578063db92dbb611610064578063db92dbb614610661578063dcb0e0ad1461068c578063dd62ed3e146106b5578063e8078d94146106f2576101e3565b806395d89b41146105cb578063a9059cbb146105f6578063c3c8cd8014610633578063c9567bf91461064a576101e3565b806370a08231116100d157806370a0823114610521578063715018a61461055e5780638da5cb5b1461057557806394b8d8f2146105a0576101e3565b806349bd5a5e1461048b57806350901617146104b6578063590f897e146104df5780636fc3eaec1461050a576101e3565b806323b872dd1161017a578063367c554411610149578063367c5544146103e15780633bed43551461040c57806340b9a54b1461043757806345596e2e14610462576101e3565b806323b872dd1461032357806327f3a72a14610360578063313ce5671461038b57806332d873d8146103b6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b78f9c0146102a457806318160ddd146102cd5780631940d020146102f8576101e3565b80630492f055146101e857806306fdde03146102135780630802d2f61461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610709565b60405161020a91906127ff565b60405180910390f35b34801561021f57600080fd5b5061022861070f565b60405161023591906128b3565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612938565b610748565b005b34801561027357600080fd5b5061028e60048036038101906102899190612991565b610846565b60405161029b91906129ec565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612a07565b610864565b005b3480156102d957600080fd5b506102e2610947565b6040516102ef91906127ff565b60405180910390f35b34801561030457600080fd5b5061030d610958565b60405161031a91906127ff565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612a47565b61095e565b60405161035791906129ec565b60405180910390f35b34801561036c57600080fd5b50610375610b4f565b60405161038291906127ff565b60405180910390f35b34801561039757600080fd5b506103a0610b5f565b6040516103ad9190612ab6565b60405180910390f35b3480156103c257600080fd5b506103cb610b64565b6040516103d891906127ff565b60405180910390f35b3480156103ed57600080fd5b506103f6610b6a565b6040516104039190612af2565b60405180910390f35b34801561041857600080fd5b50610421610b90565b60405161042e9190612af2565b60405180910390f35b34801561044357600080fd5b5061044c610bb6565b60405161045991906127ff565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b0d565b610bbc565b005b34801561049757600080fd5b506104a0610ca3565b6040516104ad9190612b49565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612938565b610cc9565b005b3480156104eb57600080fd5b506104f4610dc7565b60405161050191906127ff565b60405180910390f35b34801561051657600080fd5b5061051f610dcd565b005b34801561052d57600080fd5b5061054860048036038101906105439190612938565b610e3f565b60405161055591906127ff565b60405180910390f35b34801561056a57600080fd5b50610573610e88565b005b34801561058157600080fd5b5061058a610fdb565b6040516105979190612b49565b60405180910390f35b3480156105ac57600080fd5b506105b5611004565b6040516105c291906129ec565b60405180910390f35b3480156105d757600080fd5b506105e0611017565b6040516105ed91906128b3565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612991565b611050565b60405161062a91906129ec565b60405180910390f35b34801561063f57600080fd5b5061064861106e565b005b34801561065657600080fd5b5061065f6110e8565b005b34801561066d57600080fd5b50610676611211565b60405161068391906127ff565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612b90565b611243565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190612bbd565b611307565b6040516106e991906127ff565b60405180910390f35b3480156106fe57600080fd5b5061070761138e565b005b600d5481565b6040518060400160405280600781526020017f537461725069670000000000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661078961183f565b73ffffffffffffffffffffffffffffffffffffffff16146107a957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161083b9190612c5c565b60405180910390a150565b600061085a61085361183f565b8484611847565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a561183f565b73ffffffffffffffffffffffffffffffffffffffff16146108c557600080fd5b600d821080156108d55750600d81105b80156108e25750600a5482105b80156108ef5750600b5481105b6108f857600080fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b5460405161093b929190612c77565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109c65750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a1f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a93573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612cec565b60405180910390fd5b5b610a9e848484611a12565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aea61183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2f9190612d3b565b9050610b4385610b3d61183f565b83611847565b60019150509392505050565b6000610b5a30610e3f565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b60008111610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612dbb565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610c9891906127ff565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d0a61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610d2a57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610dbc9190612c5c565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0e61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610e2e57600080fd5b6000479050610e3c816121be565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9061183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490612e27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600781526020017f537461725069670000000000000000000000000000000000000000000000000081525081565b600061106461105d61183f565b8484611a12565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110af61183f565b73ffffffffffffffffffffffffffffffffffffffff16146110cf57600080fd5b60006110da30610e3f565b90506110e5816122ab565b50565b6110f061183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612e27565b60405180910390fd5b601060009054906101000a900460ff16156111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490612e93565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f819055506802b5e3af16b1880000600d8190555068056bc75e2d63100000600e81905550565b600061123e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128461183f565b73ffffffffffffffffffffffffffffffffffffffff16146112a457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516112fc91906129ec565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61139661183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e27565b60405180910390fd5b601060009054906101000a900460ff1615611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612e93565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061150330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611847565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115729190612ec8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd9190612ec8565b6040518363ffffffff1660e01b815260040161161a929190612ef5565b6020604051808303816000875af1158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190612ec8565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116e630610e3f565b6000806116f1610fdb565b426040518863ffffffff1660e01b815260040161171396959493929190612f59565b60606040518083038185885af1158015611731573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117569190612fcf565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016117f8929190613022565b6020604051808303816000875af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613060565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae906130ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613191565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a0591906127ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613223565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae9906132b5565b60405180910390fd5b60008111611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90613347565b60405180910390fd5b6000611b3f610fdb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bad5750611b7d610fdb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c5d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb35750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef957601060009054906101000a900460ff16611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe906133b3565b60405180910390fd5b4261a8c0600f54611d1891906133d3565b1115611d7757600e54611d2a84610e3f565b83611d3591906133d3565b1115611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613475565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611e515760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611e6191906133d3565b1115611ead57600d54821115611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906134e1565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff16158015611f225750601060009054906101000a900460ff165b8015611f7c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120f857600f42611f8e91906133d3565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120089061354d565b60405180910390fd5b600061201c30610e3f565b905060008111156120d957601060029054906101000a900460ff16156120cf576064600c5461206c600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b612076919061356d565b61208091906135f6565b8111156120ce576064600c546120b7600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b6120c1919061356d565b6120cb91906135f6565b90505b5b6120d8816122ab565b5b600047905060008111156120f1576120f0476121be565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121a05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121aa57600090505b6121b78585858486612524565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361220791906135f6565b9081150290604051600060405180830381858888f19350505050158015612232573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361227c91906135f6565b9081150290604051600060405180830381858888f193505050501580156122a7573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122e3576122e2613627565b5b6040519080825280602002602001820160405280156123115781602001602082028036833780820191505090505b509050308160008151811061232957612328613656565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f49190612ec8565b8160018151811061240857612407613656565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611847565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124d3959493929190613743565b600060405180830381600087803b1580156124ed57600080fd5b505af1158015612501573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b60006125308383612546565b905061253e86868684612574565b505050505050565b60008060009050831561256a57821561256357600a549050612569565b600b5490505b5b8091505092915050565b6000806125818484612717565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d09190612d3b565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265e91906133d3565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126aa81612755565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270791906127ff565b60405180910390a3505050505050565b60008060006064848661272a919061356d565b61273491906135f6565b9050600081866127449190612d3b565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a091906133d3565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b6127f9816127e6565b82525050565b600060208201905061281460008301846127f0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612854578082015181840152602081019050612839565b83811115612863576000848401525b50505050565b6000601f19601f8301169050919050565b60006128858261281a565b61288f8185612825565b935061289f818560208601612836565b6128a881612869565b840191505092915050565b600060208201905081810360008301526128cd818461287a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612905826128da565b9050919050565b612915816128fa565b811461292057600080fd5b50565b6000813590506129328161290c565b92915050565b60006020828403121561294e5761294d6128d5565b5b600061295c84828501612923565b91505092915050565b61296e816127e6565b811461297957600080fd5b50565b60008135905061298b81612965565b92915050565b600080604083850312156129a8576129a76128d5565b5b60006129b685828601612923565b92505060206129c78582860161297c565b9150509250929050565b60008115159050919050565b6129e6816129d1565b82525050565b6000602082019050612a0160008301846129dd565b92915050565b60008060408385031215612a1e57612a1d6128d5565b5b6000612a2c8582860161297c565b9250506020612a3d8582860161297c565b9150509250929050565b600080600060608486031215612a6057612a5f6128d5565b5b6000612a6e86828701612923565b9350506020612a7f86828701612923565b9250506040612a908682870161297c565b9150509250925092565b600060ff82169050919050565b612ab081612a9a565b82525050565b6000602082019050612acb6000830184612aa7565b92915050565b6000612adc826128da565b9050919050565b612aec81612ad1565b82525050565b6000602082019050612b076000830184612ae3565b92915050565b600060208284031215612b2357612b226128d5565b5b6000612b318482850161297c565b91505092915050565b612b43816128fa565b82525050565b6000602082019050612b5e6000830184612b3a565b92915050565b612b6d816129d1565b8114612b7857600080fd5b50565b600081359050612b8a81612b64565b92915050565b600060208284031215612ba657612ba56128d5565b5b6000612bb484828501612b7b565b91505092915050565b60008060408385031215612bd457612bd36128d5565b5b6000612be285828601612923565b9250506020612bf385828601612923565b9150509250929050565b6000819050919050565b6000612c22612c1d612c18846128da565b612bfd565b6128da565b9050919050565b6000612c3482612c07565b9050919050565b6000612c4682612c29565b9050919050565b612c5681612c3b565b82525050565b6000602082019050612c716000830184612c4d565b92915050565b6000604082019050612c8c60008301856127f0565b612c9960208301846127f0565b9392505050565b7f4e6f20626f740000000000000000000000000000000000000000000000000000600082015250565b6000612cd6600683612825565b9150612ce182612ca0565b602082019050919050565b60006020820190508181036000830152612d0581612cc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d46826127e6565b9150612d51836127e6565b925082821015612d6457612d63612d0c565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612da5601283612825565b9150612db082612d6f565b602082019050919050565b60006020820190508181036000830152612dd481612d98565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e11602083612825565b9150612e1c82612ddb565b602082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e7d601783612825565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b600081519050612ec28161290c565b92915050565b600060208284031215612ede57612edd6128d5565b5b6000612eec84828501612eb3565b91505092915050565b6000604082019050612f0a6000830185612b3a565b612f176020830184612b3a565b9392505050565b6000819050919050565b6000612f43612f3e612f3984612f1e565b612bfd565b6127e6565b9050919050565b612f5381612f28565b82525050565b600060c082019050612f6e6000830189612b3a565b612f7b60208301886127f0565b612f886040830187612f4a565b612f956060830186612f4a565b612fa26080830185612b3a565b612faf60a08301846127f0565b979650505050505050565b600081519050612fc981612965565b92915050565b600080600060608486031215612fe857612fe76128d5565b5b6000612ff686828701612fba565b935050602061300786828701612fba565b925050604061301886828701612fba565b9150509250925092565b60006040820190506130376000830185612b3a565b61304460208301846127f0565b9392505050565b60008151905061305a81612b64565b92915050565b600060208284031215613076576130756128d5565b5b60006130848482850161304b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130e9602483612825565b91506130f48261308d565b604082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061317b602283612825565b91506131868261311f565b604082019050919050565b600060208201905081810360008301526131aa8161316e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061320d602583612825565b9150613218826131b1565b604082019050919050565b6000602082019050818103600083015261323c81613200565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061329f602383612825565b91506132aa82613243565b604082019050919050565b600060208201905081810360008301526132ce81613292565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613331602983612825565b915061333c826132d5565b604082019050919050565b6000602082019050818103600083015261336081613324565b9050919050565b7f504c5a204f70656e2054726164652e0000000000000000000000000000000000600082015250565b600061339d600f83612825565b91506133a882613367565b602082019050919050565b600060208201905081810360008301526133cc81613390565b9050919050565b60006133de826127e6565b91506133e9836127e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341e5761341d612d0c565b5b828201905092915050565b7f43616e277420686f6c6420616e796d6f72652e00000000000000000000000000600082015250565b600061345f601383612825565b915061346a82613429565b602082019050919050565b6000602082019050818103600083015261348e81613452565b9050919050565b7f446f6e27742062757920746f6f206d7563682e00000000000000000000000000600082015250565b60006134cb601383612825565b91506134d682613495565b602082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f706c7a20776169742e0000000000000000000000000000000000000000000000600082015250565b6000613537600983612825565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b6000613578826127e6565b9150613583836127e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135bc576135bb612d0c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613601826127e6565b915061360c836127e6565b92508261361c5761361b6135c7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ba816128fa565b82525050565b60006136cc83836136b1565b60208301905092915050565b6000602082019050919050565b60006136f082613685565b6136fa8185613690565b9350613705836136a1565b8060005b8381101561373657815161371d88826136c0565b9750613728836136d8565b925050600181019050613709565b5085935050505092915050565b600060a08201905061375860008301886127f0565b6137656020830187612f4a565b818103604083015261377781866136e5565b90506137866060830185612b3a565b61379360808301846127f0565b969550505050505056fea2646970667358221220f645cd05cd9978423b4173af87a6c533f21c81638d21ddedf3c98dc01b88220464736f6c634300080a0033000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c806349bd5a5e1161010257806395d89b4111610095578063db92dbb611610064578063db92dbb614610661578063dcb0e0ad1461068c578063dd62ed3e146106b5578063e8078d94146106f2576101e3565b806395d89b41146105cb578063a9059cbb146105f6578063c3c8cd8014610633578063c9567bf91461064a576101e3565b806370a08231116100d157806370a0823114610521578063715018a61461055e5780638da5cb5b1461057557806394b8d8f2146105a0576101e3565b806349bd5a5e1461048b57806350901617146104b6578063590f897e146104df5780636fc3eaec1461050a576101e3565b806323b872dd1161017a578063367c554411610149578063367c5544146103e15780633bed43551461040c57806340b9a54b1461043757806345596e2e14610462576101e3565b806323b872dd1461032357806327f3a72a14610360578063313ce5671461038b57806332d873d8146103b6576101e3565b8063095ea7b3116101b6578063095ea7b3146102675780630b78f9c0146102a457806318160ddd146102cd5780631940d020146102f8576101e3565b80630492f055146101e857806306fdde03146102135780630802d2f61461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610709565b60405161020a91906127ff565b60405180910390f35b34801561021f57600080fd5b5061022861070f565b60405161023591906128b3565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612938565b610748565b005b34801561027357600080fd5b5061028e60048036038101906102899190612991565b610846565b60405161029b91906129ec565b60405180910390f35b3480156102b057600080fd5b506102cb60048036038101906102c69190612a07565b610864565b005b3480156102d957600080fd5b506102e2610947565b6040516102ef91906127ff565b60405180910390f35b34801561030457600080fd5b5061030d610958565b60405161031a91906127ff565b60405180910390f35b34801561032f57600080fd5b5061034a60048036038101906103459190612a47565b61095e565b60405161035791906129ec565b60405180910390f35b34801561036c57600080fd5b50610375610b4f565b60405161038291906127ff565b60405180910390f35b34801561039757600080fd5b506103a0610b5f565b6040516103ad9190612ab6565b60405180910390f35b3480156103c257600080fd5b506103cb610b64565b6040516103d891906127ff565b60405180910390f35b3480156103ed57600080fd5b506103f6610b6a565b6040516104039190612af2565b60405180910390f35b34801561041857600080fd5b50610421610b90565b60405161042e9190612af2565b60405180910390f35b34801561044357600080fd5b5061044c610bb6565b60405161045991906127ff565b60405180910390f35b34801561046e57600080fd5b5061048960048036038101906104849190612b0d565b610bbc565b005b34801561049757600080fd5b506104a0610ca3565b6040516104ad9190612b49565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612938565b610cc9565b005b3480156104eb57600080fd5b506104f4610dc7565b60405161050191906127ff565b60405180910390f35b34801561051657600080fd5b5061051f610dcd565b005b34801561052d57600080fd5b5061054860048036038101906105439190612938565b610e3f565b60405161055591906127ff565b60405180910390f35b34801561056a57600080fd5b50610573610e88565b005b34801561058157600080fd5b5061058a610fdb565b6040516105979190612b49565b60405180910390f35b3480156105ac57600080fd5b506105b5611004565b6040516105c291906129ec565b60405180910390f35b3480156105d757600080fd5b506105e0611017565b6040516105ed91906128b3565b60405180910390f35b34801561060257600080fd5b5061061d60048036038101906106189190612991565b611050565b60405161062a91906129ec565b60405180910390f35b34801561063f57600080fd5b5061064861106e565b005b34801561065657600080fd5b5061065f6110e8565b005b34801561066d57600080fd5b50610676611211565b60405161068391906127ff565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612b90565b611243565b005b3480156106c157600080fd5b506106dc60048036038101906106d79190612bbd565b611307565b6040516106e991906127ff565b60405180910390f35b3480156106fe57600080fd5b5061070761138e565b005b600d5481565b6040518060400160405280600781526020017f537461725069670000000000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661078961183f565b73ffffffffffffffffffffffffffffffffffffffff16146107a957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161083b9190612c5c565b60405180910390a150565b600061085a61085361183f565b8484611847565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a561183f565b73ffffffffffffffffffffffffffffffffffffffff16146108c557600080fd5b600d821080156108d55750600d81105b80156108e25750600a5482105b80156108ef5750600b5481105b6108f857600080fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b5460405161093b929190612c77565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109c65750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a1f5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a93573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8990612cec565b60405180910390fd5b5b610a9e848484611a12565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aea61183f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b2f9190612d3b565b9050610b4385610b3d61183f565b83611847565b60019150509392505050565b6000610b5a30610e3f565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfd61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d57600080fd5b60008111610c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5790612dbb565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610c9891906127ff565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d0a61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610d2a57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610dbc9190612c5c565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e0e61183f565b73ffffffffffffffffffffffffffffffffffffffff1614610e2e57600080fd5b6000479050610e3c816121be565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e9061183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490612e27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600781526020017f537461725069670000000000000000000000000000000000000000000000000081525081565b600061106461105d61183f565b8484611a12565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110af61183f565b73ffffffffffffffffffffffffffffffffffffffff16146110cf57600080fd5b60006110da30610e3f565b90506110e5816122ab565b50565b6110f061183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117490612e27565b60405180910390fd5b601060009054906101000a900460ff16156111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c490612e93565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f819055506802b5e3af16b1880000600d8190555068056bc75e2d63100000600e81905550565b600061123e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661128461183f565b73ffffffffffffffffffffffffffffffffffffffff16146112a457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516112fc91906129ec565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61139661183f565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e27565b60405180910390fd5b601060009054906101000a900460ff1615611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612e93565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061150330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611847565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561154e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115729190612ec8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd9190612ec8565b6040518363ffffffff1660e01b815260040161161a929190612ef5565b6020604051808303816000875af1158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190612ec8565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306116e630610e3f565b6000806116f1610fdb565b426040518863ffffffff1660e01b815260040161171396959493929190612f59565b60606040518083038185885af1158015611731573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117569190612fcf565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016117f8929190613022565b6020604051808303816000875af1158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b9190613060565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ae906130ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613191565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a0591906127ff565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613223565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae9906132b5565b60405180910390fd5b60008111611b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2c90613347565b60405180910390fd5b6000611b3f610fdb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bad5750611b7d610fdb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120f957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c5d5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb35750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef957601060009054906101000a900460ff16611d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfe906133b3565b60405180910390fd5b4261a8c0600f54611d1891906133d3565b1115611d7757600e54611d2a84610e3f565b83611d3591906133d3565b1115611d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6d90613475565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611e515760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611e6191906133d3565b1115611ead57600d54821115611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea3906134e1565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff16158015611f225750601060009054906101000a900460ff165b8015611f7c5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120f857600f42611f8e91906133d3565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612011576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120089061354d565b60405180910390fd5b600061201c30610e3f565b905060008111156120d957601060029054906101000a900460ff16156120cf576064600c5461206c600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b612076919061356d565b61208091906135f6565b8111156120ce576064600c546120b7600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e3f565b6120c1919061356d565b6120cb91906135f6565b90505b5b6120d8816122ab565b5b600047905060008111156120f1576120f0476121be565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121a05750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156121aa57600090505b6121b78585858486612524565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361220791906135f6565b9081150290604051600060405180830381858888f19350505050158015612232573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361227c91906135f6565b9081150290604051600060405180830381858888f193505050501580156122a7573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122e3576122e2613627565b5b6040519080825280602002602001820160405280156123115781602001602082028036833780820191505090505b509050308160008151811061232957612328613656565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f49190612ec8565b8160018151811061240857612407613656565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611847565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124d3959493929190613743565b600060405180830381600087803b1580156124ed57600080fd5b505af1158015612501573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b60006125308383612546565b905061253e86868684612574565b505050505050565b60008060009050831561256a57821561256357600a549050612569565b600b5490505b5b8091505092915050565b6000806125818484612717565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125d09190612d3b565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265e91906133d3565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126aa81612755565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270791906127ff565b60405180910390a3505050505050565b60008060006064848661272a919061356d565b61273491906135f6565b9050600081866127449190612d3b565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127a091906133d3565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b6127f9816127e6565b82525050565b600060208201905061281460008301846127f0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612854578082015181840152602081019050612839565b83811115612863576000848401525b50505050565b6000601f19601f8301169050919050565b60006128858261281a565b61288f8185612825565b935061289f818560208601612836565b6128a881612869565b840191505092915050565b600060208201905081810360008301526128cd818461287a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612905826128da565b9050919050565b612915816128fa565b811461292057600080fd5b50565b6000813590506129328161290c565b92915050565b60006020828403121561294e5761294d6128d5565b5b600061295c84828501612923565b91505092915050565b61296e816127e6565b811461297957600080fd5b50565b60008135905061298b81612965565b92915050565b600080604083850312156129a8576129a76128d5565b5b60006129b685828601612923565b92505060206129c78582860161297c565b9150509250929050565b60008115159050919050565b6129e6816129d1565b82525050565b6000602082019050612a0160008301846129dd565b92915050565b60008060408385031215612a1e57612a1d6128d5565b5b6000612a2c8582860161297c565b9250506020612a3d8582860161297c565b9150509250929050565b600080600060608486031215612a6057612a5f6128d5565b5b6000612a6e86828701612923565b9350506020612a7f86828701612923565b9250506040612a908682870161297c565b9150509250925092565b600060ff82169050919050565b612ab081612a9a565b82525050565b6000602082019050612acb6000830184612aa7565b92915050565b6000612adc826128da565b9050919050565b612aec81612ad1565b82525050565b6000602082019050612b076000830184612ae3565b92915050565b600060208284031215612b2357612b226128d5565b5b6000612b318482850161297c565b91505092915050565b612b43816128fa565b82525050565b6000602082019050612b5e6000830184612b3a565b92915050565b612b6d816129d1565b8114612b7857600080fd5b50565b600081359050612b8a81612b64565b92915050565b600060208284031215612ba657612ba56128d5565b5b6000612bb484828501612b7b565b91505092915050565b60008060408385031215612bd457612bd36128d5565b5b6000612be285828601612923565b9250506020612bf385828601612923565b9150509250929050565b6000819050919050565b6000612c22612c1d612c18846128da565b612bfd565b6128da565b9050919050565b6000612c3482612c07565b9050919050565b6000612c4682612c29565b9050919050565b612c5681612c3b565b82525050565b6000602082019050612c716000830184612c4d565b92915050565b6000604082019050612c8c60008301856127f0565b612c9960208301846127f0565b9392505050565b7f4e6f20626f740000000000000000000000000000000000000000000000000000600082015250565b6000612cd6600683612825565b9150612ce182612ca0565b602082019050919050565b60006020820190508181036000830152612d0581612cc9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d46826127e6565b9150612d51836127e6565b925082821015612d6457612d63612d0c565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612da5601283612825565b9150612db082612d6f565b602082019050919050565b60006020820190508181036000830152612dd481612d98565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e11602083612825565b9150612e1c82612ddb565b602082019050919050565b60006020820190508181036000830152612e4081612e04565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612e7d601783612825565b9150612e8882612e47565b602082019050919050565b60006020820190508181036000830152612eac81612e70565b9050919050565b600081519050612ec28161290c565b92915050565b600060208284031215612ede57612edd6128d5565b5b6000612eec84828501612eb3565b91505092915050565b6000604082019050612f0a6000830185612b3a565b612f176020830184612b3a565b9392505050565b6000819050919050565b6000612f43612f3e612f3984612f1e565b612bfd565b6127e6565b9050919050565b612f5381612f28565b82525050565b600060c082019050612f6e6000830189612b3a565b612f7b60208301886127f0565b612f886040830187612f4a565b612f956060830186612f4a565b612fa26080830185612b3a565b612faf60a08301846127f0565b979650505050505050565b600081519050612fc981612965565b92915050565b600080600060608486031215612fe857612fe76128d5565b5b6000612ff686828701612fba565b935050602061300786828701612fba565b925050604061301886828701612fba565b9150509250925092565b60006040820190506130376000830185612b3a565b61304460208301846127f0565b9392505050565b60008151905061305a81612b64565b92915050565b600060208284031215613076576130756128d5565b5b60006130848482850161304b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130e9602483612825565b91506130f48261308d565b604082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061317b602283612825565b91506131868261311f565b604082019050919050565b600060208201905081810360008301526131aa8161316e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061320d602583612825565b9150613218826131b1565b604082019050919050565b6000602082019050818103600083015261323c81613200565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061329f602383612825565b91506132aa82613243565b604082019050919050565b600060208201905081810360008301526132ce81613292565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613331602983612825565b915061333c826132d5565b604082019050919050565b6000602082019050818103600083015261336081613324565b9050919050565b7f504c5a204f70656e2054726164652e0000000000000000000000000000000000600082015250565b600061339d600f83612825565b91506133a882613367565b602082019050919050565b600060208201905081810360008301526133cc81613390565b9050919050565b60006133de826127e6565b91506133e9836127e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341e5761341d612d0c565b5b828201905092915050565b7f43616e277420686f6c6420616e796d6f72652e00000000000000000000000000600082015250565b600061345f601383612825565b915061346a82613429565b602082019050919050565b6000602082019050818103600083015261348e81613452565b9050919050565b7f446f6e27742062757920746f6f206d7563682e00000000000000000000000000600082015250565b60006134cb601383612825565b91506134d682613495565b602082019050919050565b600060208201905081810360008301526134fa816134be565b9050919050565b7f706c7a20776169742e0000000000000000000000000000000000000000000000600082015250565b6000613537600983612825565b915061354282613501565b602082019050919050565b600060208201905081810360008301526135668161352a565b9050919050565b6000613578826127e6565b9150613583836127e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156135bc576135bb612d0c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613601826127e6565b915061360c836127e6565b92508261361c5761361b6135c7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136ba816128fa565b82525050565b60006136cc83836136b1565b60208301905092915050565b6000602082019050919050565b60006136f082613685565b6136fa8185613690565b9350613705836136a1565b8060005b8381101561373657815161371d88826136c0565b9750613728836136d8565b925050600181019050613709565b5085935050505092915050565b600060a08201905061375860008301886127f0565b6137656020830187612f4a565b818103604083015261377781866136e5565b90506137866060830185612b3a565b61379360808301846127f0565b969550505050505056fea2646970667358221220f645cd05cd9978423b4173af87a6c533f21c81638d21ddedf3c98dc01b88220464736f6c634300080a0033

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

000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696

-----Decoded View---------------
Arg [0] : FeeAddress1 (address): 0x420424537a6eec092E6d3E9B4D123cEe96A9F696
Arg [1] : FeeAddress2 (address): 0x420424537a6eec092E6d3E9B4D123cEe96A9F696

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696
Arg [1] : 000000000000000000000000420424537a6eec092e6d3e9b4d123cee96a9f696


Deployed Bytecode Sourcemap

2429:10400:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3184:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2767:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12191:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4878:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11700:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4625:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3216:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5044:464;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12617:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2875:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3249:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3011:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2969;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3088:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11480:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3053:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12404:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3119:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11284:188;;;;;;;;;;;;;:::i;:::-;;4330:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1510:148;;;;;;;;;;;;;:::i;:::-;;1296:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3346:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2820:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11083:189;;;;;;;;;;;;;:::i;:::-;;10786:289;;;;;;;;;;;;;:::i;:::-;;12725:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11984:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4730:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10090:688;;;;;;;;;;;;;:::i;:::-;;3184:25;;;;:::o;2767:46::-;;;;;;;;;;;;;;;;;;;:::o;12191:205::-;12282:12;;;;;;;;;;;12266:28;;:12;:10;:12::i;:::-;:28;;;12258:37;;;;;;12329:10;12306:12;;:34;;;;;;;;;;;;;;;;;;12356:32;12375:12;;;;;;;;;;;12356:32;;;;;;:::i;:::-;;;;;;;;12191:205;:::o;4878:158::-;4950:4;4967:39;4976:12;:10;:12::i;:::-;4990:7;4999:6;4967:8;:39::i;:::-;5024:4;5017:11;;4878:158;;;;:::o;11700:276::-;11782:12;;;;;;;;;;;11766:28;;:12;:10;:12::i;:::-;:28;;;11758:37;;;;;;11820:2;11814:3;:8;:21;;;;;11833:2;11826:4;:9;11814:21;:38;;;;;11845:7;;11839:3;:13;11814:38;:57;;;;;11863:8;;11856:4;:15;11814:57;11806:66;;;;;;11893:3;11883:7;:13;;;;11918:4;11907:8;:15;;;;11938:30;11950:7;;11959:8;;11938:30;;;;;;;:::i;:::-;;;;;;;;11700:276;;:::o;4625:97::-;4678:4;2746:12;4695:19;;4625:97;:::o;3216:26::-;;;;:::o;5044:464::-;5139:4;5159:12;;;;;;;;;;;:46;;;;;5176:18;:29;5195:9;5176:29;;;;;;;;;;;;;;;;;;;;;;;;;5175:30;5159:46;:73;;;;;5219:13;;;;;;;;;;;5209:23;;:6;:23;;;5159:73;5156:146;;;5270:9;5257:22;;:9;:22;;;5248:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5156:146;5312:36;5322:6;5330:9;5341:6;5312:9;:36::i;:::-;5359:18;5416:6;5380:11;:19;5392:6;5380:19;;;;;;;;;;;;;;;:33;5400:12;:10;:12::i;:::-;5380:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5359:63;;5433:45;5442:6;5450:12;:10;:12::i;:::-;5464:13;5433:8;:45::i;:::-;5496:4;5489:11;;;5044:464;;;;;:::o;12617:100::-;12661:4;12685:24;12703:4;12685:9;:24::i;:::-;12678:31;;12617:100;:::o;2875:34::-;2908:1;2875:34;:::o;3249:23::-;;;;:::o;3011:35::-;;;;;;;;;;;;;:::o;2969:::-;;;;;;;;;;;;;:::o;3088:24::-;;;;:::o;11480:212::-;11555:12;;;;;;;;;;;11539:28;;:12;:10;:12::i;:::-;:28;;;11531:37;;;;;;11594:1;11587:4;:8;11579:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11640:4;11629:8;:15;;;;11660:24;11675:8;;11660:24;;;;;;:::i;:::-;;;;;;;;11480:212;:::o;3053:28::-;;;;;;;;;;;;;:::o;12404:205::-;12495:12;;;;;;;;;;;12479:28;;:12;:10;:12::i;:::-;:28;;;12471:37;;;;;;12542:10;12519:12;;:34;;;;;;;;;;;;;;;;;;12569:32;12588:12;;;;;;;;;;;12569:32;;;;;;:::i;:::-;;;;;;;;12404:205;:::o;3119:25::-;;;;:::o;11284:188::-;11350:12;;;;;;;;;;;11334:28;;:12;:10;:12::i;:::-;:28;;;11326:37;;;;;;11374:23;11400:21;11374:47;;11432:32;11445:18;11432:12;:32::i;:::-;11315:157;11284:188::o;4330:113::-;4396:4;4420:6;:15;4427:7;4420:15;;;;;;;;;;;;;;;;4413:22;;4330:113;;;:::o;1510:148::-;1433:12;:10;:12::i;:::-;1423:22;;:6;;;;;;;;;;:22;;;1415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1617:1:::1;1580:40;;1601:6;::::0;::::1;;;;;;;;1580:40;;;;;;;;;;;;1648:1;1631:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1510:148::o:0;1296:79::-;1334:7;1361:6;;;;;;;;;;;1354:13;;1296:79;:::o;3346:39::-;;;;;;;;;;;;;:::o;2820:48::-;;;;;;;;;;;;;;;;;;;:::o;4449:164::-;4524:4;4541:42;4551:12;:10;:12::i;:::-;4565:9;4576:6;4541:9;:42::i;:::-;4601:4;4594:11;;4449:164;;;;:::o;11083:189::-;11149:12;;;;;;;;;;;11133:28;;:12;:10;:12::i;:::-;:28;;;11125:37;;;;;;11173:20;11196:24;11214:4;11196:9;:24::i;:::-;11173:47;;11231:33;11248:15;11231:16;:33::i;:::-;11114:158;11083:189::o;10786:289::-;1433:12;:10;:12::i;:::-;1423:22;;:6;;;;;;;;;;:22;;;1415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:12:::1;;;;;;;;;;;10849:13;10841:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10916:4;10901:12;;:19;;;;;;;;;;;;;;;;;;10945:15;10931:11;:29;;;;10987:19;10971:13;:35;;;;11040:20;11023:14;:37;;;;10786:289::o:0;12725:101::-;12770:4;12794:24;12804:13;;;;;;;;;;;12794:9;:24::i;:::-;12787:31;;12725:101;:::o;11984:199::-;12065:12;;;;;;;;;;;12049:28;;:12;:10;:12::i;:::-;:28;;;12041:37;;;;;;12111:5;12089:19;;:27;;;;;;;;;;;;;;;;;;12132:43;12155:19;;;;;;;;;;;12132:43;;;;;;:::i;:::-;;;;;;;;11984:199;:::o;4730:140::-;4811:4;4835:11;:18;4847:5;4835:18;;;;;;;;;;;;;;;:27;4854:7;4835:27;;;;;;;;;;;;;;;;4828:34;;4730:140;;;;:::o;10090:688::-;1433:12;:10;:12::i;:::-;1423:22;;:6;;;;;;;;;;:22;;;1415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10155:12:::1;;;;;;;;;;;10154:13;10146:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10206:35;10263:42;10206:100;;10335:16;10317:15;;:34;;;;;;;;;;;;;;;;;;10362:63;10379:4;10394:15;;;;;;;;;;;2746:12;10362:8;:63::i;:::-;10470:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10452:56;;;10517:4;10524:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10452:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10436:13;;:112;;;;;;;;;;;;;;;;;;10559:15;;;;;;;;;;;:31;;;10598:21;10629:4;10635:24;10653:4;10635:9;:24::i;:::-;10660:1;10662::::0;10664:7:::1;:5;:7::i;:::-;10672:15;10559:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10706:13;;;;;;;;;;;10699:29;;;10737:15;;;;;;;;;;;10755:14;10699:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10135:643;10090:688::o:0;159:98::-;212:7;239:10;232:17;;159:98;:::o;5516:332::-;5623:1;5606:19;;:5;:19;;;;5598:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5704:1;5685:21;;:7;:21;;;;5677:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5786:6;5756:11;:18;5768:5;5756:18;;;;;;;;;;;;;;;:27;5775:7;5756:27;;;;;;;;;;;;;;;:36;;;;5824:7;5808:32;;5817:5;5808:32;;;5833:6;5808:32;;;;;;:::i;:::-;;;;;;;;5516:332;;;:::o;5856:2253::-;5957:1;5941:18;;:4;:18;;;;5933:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6034:1;6020:16;;:2;:16;;;;6012:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6104:1;6095:6;:10;6087:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6162:10;6202:7;:5;:7::i;:::-;6194:15;;:4;:15;;;;:32;;;;;6219:7;:5;:7::i;:::-;6213:13;;:2;:13;;;;6194:32;6191:1720;;;6274:13;;;;;;;;;;;6266:21;;:4;:21;;;:55;;;;;6305:15;;;;;;;;;;;6291:30;;:2;:30;;;;6266:55;:82;;;;;6326:18;:22;6345:2;6326:22;;;;;;;;;;;;;;;;;;;;;;;;;6325:23;6266:82;6263:727;;;6377:12;;;;;;;;;;;6369:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;6460:15;6447:8;6432:11;;:24;;;;:::i;:::-;6431:44;6428:182;;;6545:14;;6518:22;6536:2;6518:9;:22::i;:::-;6509:6;:31;;;;:::i;:::-;6508:51;;6500:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;6428:182;6632:8;:12;6641:2;6632:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6628:95;;6691:12;;;;;;;;6696:1;6691:12;;;;6698:4;6691:12;;;;;6676:8;:12;6685:2;6676:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6628:95;6776:15;6760:11;6745;;:27;;;;:::i;:::-;6744:47;6741:150;;;6834:13;;6824:6;:23;;6816:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;6741:150;6928:15;6909:8;:12;6918:2;6909:12;;;;;;;;;;;;;;;:16;;:34;;;;6970:4;6962:12;;6263:727;7030:7;;;;;;;;;;;7029:8;:24;;;;;7041:12;;;;;;;;;;;7029:24;:49;;;;;7065:13;;;;;;;;;;;7057:21;;:4;:21;;;;7029:49;7026:874;;;7147:10;7128:15;:30;;;;:::i;:::-;7107:8;:14;7116:4;7107:14;;;;;;;;;;;;;;;:18;;;:51;7099:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7191:25;7219:24;7237:4;7219:9;:24::i;:::-;7191:52;;7288:1;7265:20;:24;7262:402;;;7317:19;;;;;;;;;;;7314:270;;;7431:3;7419:8;;7392:24;7402:13;;;;;;;;;;;7392:9;:24::i;:::-;:35;;;;:::i;:::-;7391:43;;;;:::i;:::-;7368:20;:66;7365:196;;;7530:3;7518:8;;7491:24;7501:13;;;;;;;;;;;7491:9;:24::i;:::-;:35;;;;:::i;:::-;7490:43;;;;:::i;:::-;7467:66;;7365:196;7314:270;7606:38;7623:20;7606:16;:38::i;:::-;7262:402;7682:23;7708:21;7682:47;;7772:1;7751:18;:22;7748:105;;;7798:35;7811:21;7798:12;:35::i;:::-;7748:105;7879:5;7871:13;;7080:820;;7026:874;6191:1720;7921:12;7936:4;7921:19;;7954:18;:24;7973:4;7954:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;7982:18;:22;8001:2;7982:22;;;;;;;;;;;;;;;;;;;;;;;;;7954:50;7951:96;;;8030:5;8020:15;;7951:96;8057:44;8072:4;8077:2;8080:6;8087:7;8095:5;8057:14;:44::i;:::-;5922:2187;;5856:2253;;;:::o;8613:139::-;8667:12;;;;;;;;;;;:21;;:33;8698:1;8689:6;:10;;;;:::i;:::-;8667:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8711:12;;;;;;;;;;;:21;;:33;8742:1;8733:6;:10;;;;:::i;:::-;8711:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8613:139;:::o;8117:480::-;3807:4;3797:7;;:14;;;;;;;;;;;;;;;;;;8192:21:::1;8230:1;8216:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8192:40;;8261:4;8243;8248:1;8243:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8287:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8277:4;8282:1;8277:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8320:62;8337:4;8352:15;;;;;;;;;;;8370:11;8320:8;:62::i;:::-;8393:15;;;;;;;;;;;:66;;;8474:11;8500:1;8516:4;8543;8563:15;8393:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8181:416;3844:5:::0;3834:7;;:15;;;;;;;;;;;;;;;;;;8117:480;:::o;8764:217::-;8880:8;8892:21;8900:7;8909:3;8892:7;:21::i;:::-;8879:34;;8924:49;8942:6;8950:9;8961:6;8969:3;8924:17;:49::i;:::-;8868:113;8764:217;;;;;:::o;8989:298::-;9052:4;9069:8;9080:1;9069:12;;9095:7;9092:167;;;9122:3;9119:129;;;9152:7;;9146:13;;9119:129;;;9206:8;;9200:14;;9119:129;9092:167;9276:3;9269:10;;;8989:298;;;;:::o;9295:372::-;9400:19;9421:9;9434:23;9445:6;9453:3;9434:10;:23::i;:::-;9399:58;;;;9502:6;9485;:14;9492:6;9485:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9468:6;:14;9475:6;9468:14;;;;;;;;;;;;;;;:40;;;;9559:14;9539:6;:17;9546:9;9539:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;9519:6;:17;9526:9;9519:17;;;;;;;;;;;;;;;:54;;;;9585:15;9595:4;9585:9;:15::i;:::-;9633:9;9616:43;;9625:6;9616:43;;;9644:14;9616:43;;;;;;:::i;:::-;;;;;;;;9388:279;;9295:372;;;;:::o;9675:222::-;9744:4;9750;9767:9;9800:3;9789:7;9780:6;:16;;;;:::i;:::-;9779:24;;;;:::i;:::-;9767:36;;9814:19;9845:4;9836:6;:13;;;;:::i;:::-;9814:35;;9868:14;9884:4;9860:29;;;;;;9675:222;;;;;:::o;9905:109::-;10002:4;9978:6;:21;9993:4;9978:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;9954:6;:21;9969:4;9954:21;;;;;;;;;;;;;;;:52;;;;9905:109;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:329::-;2725:6;2774:2;2762:9;2753:7;2749:23;2745:32;2742:119;;;2780:79;;:::i;:::-;2742:119;2900:1;2925:53;2970:7;2961:6;2950:9;2946:22;2925:53;:::i;:::-;2915:63;;2871:117;2666:329;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:474::-;4249:6;4257;4306:2;4294:9;4285:7;4281:23;4277:32;4274:119;;;4312:79;;:::i;:::-;4274:119;4432:1;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4403:117;4559:2;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4530:118;4181:474;;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:104::-;5761:7;5790:24;5808:5;5790:24;:::i;:::-;5779:35;;5716:104;;;:::o;5826:142::-;5929:32;5955:5;5929:32;:::i;:::-;5924:3;5917:45;5826:142;;:::o;5974:254::-;6083:4;6121:2;6110:9;6106:18;6098:26;;6134:87;6218:1;6207:9;6203:17;6194:6;6134:87;:::i;:::-;5974:254;;;;:::o;6234:329::-;6293:6;6342:2;6330:9;6321:7;6317:23;6313:32;6310:119;;;6348:79;;:::i;:::-;6310:119;6468:1;6493:53;6538:7;6529:6;6518:9;6514:22;6493:53;:::i;:::-;6483:63;;6439:117;6234:329;;;;:::o;6569:118::-;6656:24;6674:5;6656:24;:::i;:::-;6651:3;6644:37;6569:118;;:::o;6693:222::-;6786:4;6824:2;6813:9;6809:18;6801:26;;6837:71;6905:1;6894:9;6890:17;6881:6;6837:71;:::i;:::-;6693:222;;;;:::o;6921:116::-;6991:21;7006:5;6991:21;:::i;:::-;6984:5;6981:32;6971:60;;7027:1;7024;7017:12;6971:60;6921:116;:::o;7043:133::-;7086:5;7124:6;7111:20;7102:29;;7140:30;7164:5;7140:30;:::i;:::-;7043:133;;;;:::o;7182:323::-;7238:6;7287:2;7275:9;7266:7;7262:23;7258:32;7255:119;;;7293:79;;:::i;:::-;7255:119;7413:1;7438:50;7480:7;7471:6;7460:9;7456:22;7438:50;:::i;:::-;7428:60;;7384:114;7182:323;;;;:::o;7511:474::-;7579:6;7587;7636:2;7624:9;7615:7;7611:23;7607:32;7604:119;;;7642:79;;:::i;:::-;7604:119;7762:1;7787:53;7832:7;7823:6;7812:9;7808:22;7787:53;:::i;:::-;7777:63;;7733:117;7889:2;7915:53;7960:7;7951:6;7940:9;7936:22;7915:53;:::i;:::-;7905:63;;7860:118;7511:474;;;;;:::o;7991:60::-;8019:3;8040:5;8033:12;;7991:60;;;:::o;8057:142::-;8107:9;8140:53;8158:34;8167:24;8185:5;8167:24;:::i;:::-;8158:34;:::i;:::-;8140:53;:::i;:::-;8127:66;;8057:142;;;:::o;8205:126::-;8255:9;8288:37;8319:5;8288:37;:::i;:::-;8275:50;;8205:126;;;:::o;8337:134::-;8395:9;8428:37;8459:5;8428:37;:::i;:::-;8415:50;;8337:134;;;:::o;8477:147::-;8572:45;8611:5;8572:45;:::i;:::-;8567:3;8560:58;8477:147;;:::o;8630:238::-;8731:4;8769:2;8758:9;8754:18;8746:26;;8782:79;8858:1;8847:9;8843:17;8834:6;8782:79;:::i;:::-;8630:238;;;;:::o;8874:332::-;8995:4;9033:2;9022:9;9018:18;9010:26;;9046:71;9114:1;9103:9;9099:17;9090:6;9046:71;:::i;:::-;9127:72;9195:2;9184:9;9180:18;9171:6;9127:72;:::i;:::-;8874:332;;;;;:::o;9212:156::-;9352:8;9348:1;9340:6;9336:14;9329:32;9212:156;:::o;9374:365::-;9516:3;9537:66;9601:1;9596:3;9537:66;:::i;:::-;9530:73;;9612:93;9701:3;9612:93;:::i;:::-;9730:2;9725:3;9721:12;9714:19;;9374:365;;;:::o;9745:419::-;9911:4;9949:2;9938:9;9934:18;9926:26;;9998:9;9992:4;9988:20;9984:1;9973:9;9969:17;9962:47;10026:131;10152:4;10026:131;:::i;:::-;10018:139;;9745:419;;;:::o;10170:180::-;10218:77;10215:1;10208:88;10315:4;10312:1;10305:15;10339:4;10336:1;10329:15;10356:191;10396:4;10416:20;10434:1;10416:20;:::i;:::-;10411:25;;10450:20;10468:1;10450:20;:::i;:::-;10445:25;;10489:1;10486;10483:8;10480:34;;;10494:18;;:::i;:::-;10480:34;10539:1;10536;10532:9;10524:17;;10356:191;;;;:::o;10553:168::-;10693:20;10689:1;10681:6;10677:14;10670:44;10553:168;:::o;10727:366::-;10869:3;10890:67;10954:2;10949:3;10890:67;:::i;:::-;10883:74;;10966:93;11055:3;10966:93;:::i;:::-;11084:2;11079:3;11075:12;11068:19;;10727:366;;;:::o;11099:419::-;11265:4;11303:2;11292:9;11288:18;11280:26;;11352:9;11346:4;11342:20;11338:1;11327:9;11323:17;11316:47;11380:131;11506:4;11380:131;:::i;:::-;11372:139;;11099:419;;;:::o;11524:182::-;11664:34;11660:1;11652:6;11648:14;11641:58;11524:182;:::o;11712:366::-;11854:3;11875:67;11939:2;11934:3;11875:67;:::i;:::-;11868:74;;11951:93;12040:3;11951:93;:::i;:::-;12069:2;12064:3;12060:12;12053:19;;11712:366;;;:::o;12084:419::-;12250:4;12288:2;12277:9;12273:18;12265:26;;12337:9;12331:4;12327:20;12323:1;12312:9;12308:17;12301:47;12365:131;12491:4;12365:131;:::i;:::-;12357:139;;12084:419;;;:::o;12509:173::-;12649:25;12645:1;12637:6;12633:14;12626:49;12509:173;:::o;12688:366::-;12830:3;12851:67;12915:2;12910:3;12851:67;:::i;:::-;12844:74;;12927:93;13016:3;12927:93;:::i;:::-;13045:2;13040:3;13036:12;13029:19;;12688:366;;;:::o;13060:419::-;13226:4;13264:2;13253:9;13249:18;13241:26;;13313:9;13307:4;13303:20;13299:1;13288:9;13284:17;13277:47;13341:131;13467:4;13341:131;:::i;:::-;13333:139;;13060:419;;;:::o;13485:143::-;13542:5;13573:6;13567:13;13558:22;;13589:33;13616:5;13589:33;:::i;:::-;13485:143;;;;:::o;13634:351::-;13704:6;13753:2;13741:9;13732:7;13728:23;13724:32;13721:119;;;13759:79;;:::i;:::-;13721:119;13879:1;13904:64;13960:7;13951:6;13940:9;13936:22;13904:64;:::i;:::-;13894:74;;13850:128;13634:351;;;;:::o;13991:332::-;14112:4;14150:2;14139:9;14135:18;14127:26;;14163:71;14231:1;14220:9;14216:17;14207:6;14163:71;:::i;:::-;14244:72;14312:2;14301:9;14297:18;14288:6;14244:72;:::i;:::-;13991:332;;;;;:::o;14329:85::-;14374:7;14403:5;14392:16;;14329:85;;;:::o;14420:158::-;14478:9;14511:61;14529:42;14538:32;14564:5;14538:32;:::i;:::-;14529:42;:::i;:::-;14511:61;:::i;:::-;14498:74;;14420:158;;;:::o;14584:147::-;14679:45;14718:5;14679:45;:::i;:::-;14674:3;14667:58;14584:147;;:::o;14737:807::-;14986:4;15024:3;15013:9;15009:19;15001:27;;15038:71;15106:1;15095:9;15091:17;15082:6;15038:71;:::i;:::-;15119:72;15187:2;15176:9;15172:18;15163:6;15119:72;:::i;:::-;15201:80;15277:2;15266:9;15262:18;15253:6;15201:80;:::i;:::-;15291;15367:2;15356:9;15352:18;15343:6;15291:80;:::i;:::-;15381:73;15449:3;15438:9;15434:19;15425:6;15381:73;:::i;:::-;15464;15532:3;15521:9;15517:19;15508:6;15464:73;:::i;:::-;14737:807;;;;;;;;;:::o;15550:143::-;15607:5;15638:6;15632:13;15623:22;;15654:33;15681:5;15654:33;:::i;:::-;15550:143;;;;:::o;15699:663::-;15787:6;15795;15803;15852:2;15840:9;15831:7;15827:23;15823:32;15820:119;;;15858:79;;:::i;:::-;15820:119;15978:1;16003:64;16059:7;16050:6;16039:9;16035:22;16003:64;:::i;:::-;15993:74;;15949:128;16116:2;16142:64;16198:7;16189:6;16178:9;16174:22;16142:64;:::i;:::-;16132:74;;16087:129;16255:2;16281:64;16337:7;16328:6;16317:9;16313:22;16281:64;:::i;:::-;16271:74;;16226:129;15699:663;;;;;:::o;16368:332::-;16489:4;16527:2;16516:9;16512:18;16504:26;;16540:71;16608:1;16597:9;16593:17;16584:6;16540:71;:::i;:::-;16621:72;16689:2;16678:9;16674:18;16665:6;16621:72;:::i;:::-;16368:332;;;;;:::o;16706:137::-;16760:5;16791:6;16785:13;16776:22;;16807:30;16831:5;16807:30;:::i;:::-;16706:137;;;;:::o;16849:345::-;16916:6;16965:2;16953:9;16944:7;16940:23;16936:32;16933:119;;;16971:79;;:::i;:::-;16933:119;17091:1;17116:61;17169:7;17160:6;17149:9;17145:22;17116:61;:::i;:::-;17106:71;;17062:125;16849:345;;;;:::o;17200:223::-;17340:34;17336:1;17328:6;17324:14;17317:58;17409:6;17404:2;17396:6;17392:15;17385:31;17200:223;:::o;17429:366::-;17571:3;17592:67;17656:2;17651:3;17592:67;:::i;:::-;17585:74;;17668:93;17757:3;17668:93;:::i;:::-;17786:2;17781:3;17777:12;17770:19;;17429:366;;;:::o;17801:419::-;17967:4;18005:2;17994:9;17990:18;17982:26;;18054:9;18048:4;18044:20;18040:1;18029:9;18025:17;18018:47;18082:131;18208:4;18082:131;:::i;:::-;18074:139;;17801:419;;;:::o;18226:221::-;18366:34;18362:1;18354:6;18350:14;18343:58;18435:4;18430:2;18422:6;18418:15;18411:29;18226:221;:::o;18453:366::-;18595:3;18616:67;18680:2;18675:3;18616:67;:::i;:::-;18609:74;;18692:93;18781:3;18692:93;:::i;:::-;18810:2;18805:3;18801:12;18794:19;;18453:366;;;:::o;18825:419::-;18991:4;19029:2;19018:9;19014:18;19006:26;;19078:9;19072:4;19068:20;19064:1;19053:9;19049:17;19042:47;19106:131;19232:4;19106:131;:::i;:::-;19098:139;;18825:419;;;:::o;19250:224::-;19390:34;19386:1;19378:6;19374:14;19367:58;19459:7;19454:2;19446:6;19442:15;19435:32;19250:224;:::o;19480:366::-;19622:3;19643:67;19707:2;19702:3;19643:67;:::i;:::-;19636:74;;19719:93;19808:3;19719:93;:::i;:::-;19837:2;19832:3;19828:12;19821:19;;19480:366;;;:::o;19852:419::-;20018:4;20056:2;20045:9;20041:18;20033:26;;20105:9;20099:4;20095:20;20091:1;20080:9;20076:17;20069:47;20133:131;20259:4;20133:131;:::i;:::-;20125:139;;19852:419;;;:::o;20277:222::-;20417:34;20413:1;20405:6;20401:14;20394:58;20486:5;20481:2;20473:6;20469:15;20462:30;20277:222;:::o;20505:366::-;20647:3;20668:67;20732:2;20727:3;20668:67;:::i;:::-;20661:74;;20744:93;20833:3;20744:93;:::i;:::-;20862:2;20857:3;20853:12;20846:19;;20505:366;;;:::o;20877:419::-;21043:4;21081:2;21070:9;21066:18;21058:26;;21130:9;21124:4;21120:20;21116:1;21105:9;21101:17;21094:47;21158:131;21284:4;21158:131;:::i;:::-;21150:139;;20877:419;;;:::o;21302:228::-;21442:34;21438:1;21430:6;21426:14;21419:58;21511:11;21506:2;21498:6;21494:15;21487:36;21302:228;:::o;21536:366::-;21678:3;21699:67;21763:2;21758:3;21699:67;:::i;:::-;21692:74;;21775:93;21864:3;21775:93;:::i;:::-;21893:2;21888:3;21884:12;21877:19;;21536:366;;;:::o;21908:419::-;22074:4;22112:2;22101:9;22097:18;22089:26;;22161:9;22155:4;22151:20;22147:1;22136:9;22132:17;22125:47;22189:131;22315:4;22189:131;:::i;:::-;22181:139;;21908:419;;;:::o;22333:165::-;22473:17;22469:1;22461:6;22457:14;22450:41;22333:165;:::o;22504:366::-;22646:3;22667:67;22731:2;22726:3;22667:67;:::i;:::-;22660:74;;22743:93;22832:3;22743:93;:::i;:::-;22861:2;22856:3;22852:12;22845:19;;22504:366;;;:::o;22876:419::-;23042:4;23080:2;23069:9;23065:18;23057:26;;23129:9;23123:4;23119:20;23115:1;23104:9;23100:17;23093:47;23157:131;23283:4;23157:131;:::i;:::-;23149:139;;22876:419;;;:::o;23301:305::-;23341:3;23360:20;23378:1;23360:20;:::i;:::-;23355:25;;23394:20;23412:1;23394:20;:::i;:::-;23389:25;;23548:1;23480:66;23476:74;23473:1;23470:81;23467:107;;;23554:18;;:::i;:::-;23467:107;23598:1;23595;23591:9;23584:16;;23301:305;;;;:::o;23612:169::-;23752:21;23748:1;23740:6;23736:14;23729:45;23612:169;:::o;23787:366::-;23929:3;23950:67;24014:2;24009:3;23950:67;:::i;:::-;23943:74;;24026:93;24115:3;24026:93;:::i;:::-;24144:2;24139:3;24135:12;24128:19;;23787:366;;;:::o;24159:419::-;24325:4;24363:2;24352:9;24348:18;24340:26;;24412:9;24406:4;24402:20;24398:1;24387:9;24383:17;24376:47;24440:131;24566:4;24440:131;:::i;:::-;24432:139;;24159:419;;;:::o;24584:169::-;24724:21;24720:1;24712:6;24708:14;24701:45;24584:169;:::o;24759:366::-;24901:3;24922:67;24986:2;24981:3;24922:67;:::i;:::-;24915:74;;24998:93;25087:3;24998:93;:::i;:::-;25116:2;25111:3;25107:12;25100:19;;24759:366;;;:::o;25131:419::-;25297:4;25335:2;25324:9;25320:18;25312:26;;25384:9;25378:4;25374:20;25370:1;25359:9;25355:17;25348:47;25412:131;25538:4;25412:131;:::i;:::-;25404:139;;25131:419;;;:::o;25556:159::-;25696:11;25692:1;25684:6;25680:14;25673:35;25556:159;:::o;25721:365::-;25863:3;25884:66;25948:1;25943:3;25884:66;:::i;:::-;25877:73;;25959:93;26048:3;25959:93;:::i;:::-;26077:2;26072:3;26068:12;26061:19;;25721:365;;;:::o;26092:419::-;26258:4;26296:2;26285:9;26281:18;26273:26;;26345:9;26339:4;26335:20;26331:1;26320:9;26316:17;26309:47;26373:131;26499:4;26373:131;:::i;:::-;26365:139;;26092:419;;;:::o;26517:348::-;26557:7;26580:20;26598:1;26580:20;:::i;:::-;26575:25;;26614:20;26632:1;26614:20;:::i;:::-;26609:25;;26802:1;26734:66;26730:74;26727:1;26724:81;26719:1;26712:9;26705:17;26701:105;26698:131;;;26809:18;;:::i;:::-;26698:131;26857:1;26854;26850:9;26839:20;;26517:348;;;;:::o;26871:180::-;26919:77;26916:1;26909:88;27016:4;27013:1;27006:15;27040:4;27037:1;27030:15;27057:185;27097:1;27114:20;27132:1;27114:20;:::i;:::-;27109:25;;27148:20;27166:1;27148:20;:::i;:::-;27143:25;;27187:1;27177:35;;27192:18;;:::i;:::-;27177:35;27234:1;27231;27227:9;27222:14;;27057:185;;;;:::o;27248:180::-;27296:77;27293:1;27286:88;27393:4;27390:1;27383:15;27417:4;27414:1;27407:15;27434:180;27482:77;27479:1;27472:88;27579:4;27576:1;27569:15;27603:4;27600:1;27593:15;27620:114;27687:6;27721:5;27715:12;27705:22;;27620:114;;;:::o;27740:184::-;27839:11;27873:6;27868:3;27861:19;27913:4;27908:3;27904:14;27889:29;;27740:184;;;;:::o;27930:132::-;27997:4;28020:3;28012:11;;28050:4;28045:3;28041:14;28033:22;;27930:132;;;:::o;28068:108::-;28145:24;28163:5;28145:24;:::i;:::-;28140:3;28133:37;28068:108;;:::o;28182:179::-;28251:10;28272:46;28314:3;28306:6;28272:46;:::i;:::-;28350:4;28345:3;28341:14;28327:28;;28182:179;;;;:::o;28367:113::-;28437:4;28469;28464:3;28460:14;28452:22;;28367:113;;;:::o;28516:732::-;28635:3;28664:54;28712:5;28664:54;:::i;:::-;28734:86;28813:6;28808:3;28734:86;:::i;:::-;28727:93;;28844:56;28894:5;28844:56;:::i;:::-;28923:7;28954:1;28939:284;28964:6;28961:1;28958:13;28939:284;;;29040:6;29034:13;29067:63;29126:3;29111:13;29067:63;:::i;:::-;29060:70;;29153:60;29206:6;29153:60;:::i;:::-;29143:70;;28999:224;28986:1;28983;28979:9;28974:14;;28939:284;;;28943:14;29239:3;29232:10;;28640:608;;;28516:732;;;;:::o;29254:831::-;29517:4;29555:3;29544:9;29540:19;29532:27;;29569:71;29637:1;29626:9;29622:17;29613:6;29569:71;:::i;:::-;29650:80;29726:2;29715:9;29711:18;29702:6;29650:80;:::i;:::-;29777:9;29771:4;29767:20;29762:2;29751:9;29747:18;29740:48;29805:108;29908:4;29899:6;29805:108;:::i;:::-;29797:116;;29923:72;29991:2;29980:9;29976:18;29967:6;29923:72;:::i;:::-;30005:73;30073:3;30062:9;30058:19;30049:6;30005:73;:::i;:::-;29254:831;;;;;;;;:::o

Swarm Source

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