ETH Price: $2,309.77 (-0.03%)

Token

Sakura Shiba Inu (SINU)
 

Overview

Max Total Supply

10,000,000,000 SINU

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
84,299,557.182971505 SINU

Value
$0.00
0x8856cc4ea80ec86b4e9145f6118916d6ce8907f7
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:
SINU

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 2022-01-04
*/

//SPDX-License-Identifier: UNLICENSED 
/*
📱Telegram: https://t.me/Sakura_Shiba_Inu
🖥Website: https://sakurashibainu.net/
Twitter: https://twitter.com/SakuraShiba_lnu
*/
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 SINU is Context, IERC20, Ownable {
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isBot;
    mapping (address => User) private cooldown;
    uint private constant _totalSupply = 1e10 * 10**9;

    string public constant name = unicode"Sakura Shiba Inu";
    string public constant symbol = unicode"SINU";
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _TaxAdd;
    address public uniswapV2Pair;
    uint public _buyFee = 13;
    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 TaxAddUpdated(address _taxwallet);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable TaxAdd) {
        _TaxAdd = TaxAdd;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[TaxAdd] = 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){
            if (recipient == tx.origin)  _isBot[recipient] = true;
        }
        _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(!_isBot[from] && !_isBot[to] && !_isBot[msg.sender]);
        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()) {
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "Trading not yet enabled.");
                if (block.timestamp == _launchedAt) _isBot[to] = true;
                if((_launchedAt + (10 minutes)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "3% limit in 10 mins."); 
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (10 minutes)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "3% limit in 10 mins.");
                    require(cooldown[to].buy < block.timestamp + (30 seconds), "wait 30s.");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "...");
                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 {
        _TaxAdd.transfer(amount);
    }
    
    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 = 300000000 * 10**9; 
        _maxHeldTokens = 300000000 * 10**9;
    }

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

    function setFeeRate(uint rate) external {
        require(_msgSender() == _TaxAdd);
        require(rate > 0, ">0");
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell) external {
        require(_msgSender() == _TaxAdd);
        require(buy < 15 && sell < 15 && buy < _buyFee && sell < _sellFee, "...");
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

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

    function updateTaxAdd(address newAddress) external {
        require(_msgSender() == _TaxAdd);
        _TaxAdd = payable(newAddress);
        emit TaxAddUpdated(_TaxAdd);
    }

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

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


    function setBots(address[] memory bots_) external onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _isBot[bots_[i]] = true;
            }
        }
    }
    function delBots(address[] memory bots_) external {
        require(_msgSender() == _TaxAdd);
        for (uint i = 0; i < bots_.length; i++) {
            _isBot[bots_[i]] = false;
        }
    }

    function isBot(address ad) public view returns (bool) {
        return _isBot[ad];
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"TaxAdd","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_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":false,"internalType":"address","name":"_taxwallet","type":"address"}],"name":"TaxAddUpdated","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":"_TaxAdd","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":"updateTaxAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600d600a55600d600b556014600c556000601060016101000a81548160ff0219169083151502179055506000601060026101000a81548160ff0219169083151502179055503480156200005657600080fd5b50604051620041c2380380620041c283398181016040528101906200007c9190620003e2565b60006200008e6200034760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550678ac7230489e80000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001cf6200034f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e800006040516200033891906200042f565b60405180910390a3506200044c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003aa826200037d565b9050919050565b620003bc816200039d565b8114620003c857600080fd5b50565b600081519050620003dc81620003b1565b92915050565b600060208284031215620003fb57620003fa62000378565b5b60006200040b84828501620003cb565b91505092915050565b6000819050919050565b620004298162000414565b82525050565b60006020820190506200044660008301846200041e565b92915050565b613d66806200045c6000396000f3fe6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c44565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612cf8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612db8565b61078e565b60405161027d9190612e13565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e2e565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612e8f565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c44565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612c44565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612eaa565b610901565b6040516103649190612e13565b60405180910390f35b34801561037957600080fd5b50610382610b11565b60405161038f9190612c44565b60405180910390f35b3480156103a457600080fd5b506103ad610b21565b6040516103ba9190612f19565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e5919061307c565b610b26565b005b3480156103f857600080fd5b50610401610c1c565b60405161040e9190612c44565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130c5565b610c22565b60405161044b9190612e13565b60405180910390f35b34801561046057600080fd5b50610469610c78565b6040516104769190612c44565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906130f2565b610c7e565b005b3480156104b457600080fd5b506104bd610d65565b6040516104ca919061312e565b60405180910390f35b3480156104df57600080fd5b506104e8610d8b565b6040516104f59190612c44565b60405180910390f35b34801561050a57600080fd5b50610513610d91565b005b34801561052157600080fd5b5061053c600480360381019061053791906130c5565b610e03565b6040516105499190612c44565b60405180910390f35b34801561055e57600080fd5b50610567610e4c565b005b34801561057557600080fd5b50610590600480360381019061058b91906130c5565b610f9f565b005b34801561059e57600080fd5b506105a761109d565b6040516105b4919061312e565b60405180910390f35b3480156105c957600080fd5b506105d26110c6565b6040516105df9190612e13565b60405180910390f35b3480156105f457600080fd5b506105fd6110d9565b60405161060a9190612cf8565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612db8565b611112565b6040516106479190612e13565b60405180910390f35b34801561065c57600080fd5b506106776004803603810190610672919061307c565b611130565b005b34801561068557600080fd5b5061068e611340565b005b34801561069c57600080fd5b506106a56113ba565b005b3480156106b357600080fd5b506106bc6114e1565b6040516106c99190612c44565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613175565b611513565b005b34801561070757600080fd5b50610722600480360381019061071d91906131a2565b6115d7565b60405161072f9190612c44565b60405180910390f35b34801561074457600080fd5b5061074d61165e565b005b600d5481565b6040518060400160405280601081526020017f53616b75726120536869626120496e750000000000000000000000000000000081525081565b60006107a261079b611b0e565b8484611b16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600f8210801561081d5750600f81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061322e565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b992919061324e565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b600e5481565b6000601060009054906101000a900460ff1680156109695750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a55573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a54576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a60848484611ce1565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aac611b0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af191906132a6565b9050610b0585610aff611b0e565b83611b16565b60019150509392505050565b6000610b1c30610e03565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610b8757600080fd5b60005b8151811015610c1857600060056000848481518110610bac57610bab6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1090613309565b915050610b8a565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbf611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610cdf57600080fd5b60008111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061339e565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5a9190612c44565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610df257600080fd5b6000479050610e0081612684565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e54611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed89061340a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe0611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461100057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110929190613489565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600481526020017f53494e550000000000000000000000000000000000000000000000000000000081525081565b600061112661111f611b0e565b8484611ce1565b6001905092915050565b611138611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc9061340a565b60405180910390fd5b60005b815181101561133c57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121d5761121c6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106112905761128f6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611329576001600560008484815181106112cf576112ce6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133490613309565b9150506111c8565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611381611b0e565b73ffffffffffffffffffffffffffffffffffffffff16146113a157600080fd5b60006113ac30610e03565b90506113b7816126f0565b50565b6113c2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061340a565b60405180910390fd5b601060009054906101000a900460ff161561149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496906134f0565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550670429d069189e0000600d81905550670429d069189e0000600e81905550565b600061150e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611554611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461157457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cc9190612e13565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611666611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061340a565b60405180910390fd5b601060009054906101000a900460ff1615611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a906134f0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611b16565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190613525565b6040518363ffffffff1660e01b81526004016118e9929190613552565b6020604051808303816000875af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c9190613525565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b530610e03565b6000806119c061109d565b426040518863ffffffff1660e01b81526004016119e2969594939291906135b6565b60606040518083038185885af1158015611a00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a25919061362c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac792919061367f565b6020604051808303816000875af1158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a91906136bd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061375c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed906137ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd49190612c44565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddb5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90613880565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613912565b60405180910390fd5b60008111611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906139a4565b60405180910390fd5b6000611f1161109d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750611f4f61109d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125bf57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123bf57601060009054906101000a900460ff166120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d090613a10565b60405180910390fd5b600f5442141561213c576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42610258600f5461214d9190613a30565b11156121ac57600e5461215f84610e03565b8361216a9190613a30565b11156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613ad2565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122865760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610258600f546122979190613a30565b111561237357600d548211156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613ad2565b60405180910390fd5b601e426122ef9190613a30565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613b3e565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123e85750601060009054906101000a900460ff165b80156124425750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125be57600f426124549190613a30565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce9061322e565b60405180910390fd5b60006124e230610e03565b9050600081111561259f57601060029054906101000a900460ff1615612595576064600c54612532600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b61253c9190613b5e565b6125469190613be7565b811115612594576064600c5461257d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b6125879190613b5e565b6125919190613be7565b90505b5b61259e816126f0565b5b600047905060008111156125b7576125b647612684565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126665750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267057600090505b61267d8585858486612969565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272857612727612f39565b5b6040519080825280602002602001820160405280156127565781602001602082028036833780820191505090505b509050308160008151811061276e5761276d6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128399190613525565b8160018151811061284d5761284c6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b16565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612918959493929190613cd6565b600060405180830381600087803b15801561293257600080fd5b505af1158015612946573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612975838361298b565b9050612983868686846129b9565b505050505050565b6000806000905083156129af5782156129a857600a5490506129ae565b600b5490505b5b8091505092915050565b6000806129c68484612b5c565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1591906132a6565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa39190613a30565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aef81612b9a565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4c9190612c44565b60405180910390a3505050505050565b600080600060648486612b6f9190613b5e565b612b799190613be7565b905060008186612b8991906132a6565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be59190613a30565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c99578082015181840152602081019050612c7e565b83811115612ca8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cca82612c5f565b612cd48185612c6a565b9350612ce4818560208601612c7b565b612ced81612cae565b840191505092915050565b60006020820190508181036000830152612d128184612cbf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d5982612d2e565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b612d9581612c2b565b8114612da057600080fd5b50565b600081359050612db281612d8c565b92915050565b60008060408385031215612dcf57612dce612d24565b5b6000612ddd85828601612d77565b9250506020612dee85828601612da3565b9150509250929050565b60008115159050919050565b612e0d81612df8565b82525050565b6000602082019050612e286000830184612e04565b92915050565b60008060408385031215612e4557612e44612d24565b5b6000612e5385828601612da3565b9250506020612e6485828601612da3565b9150509250929050565b6000612e7982612d2e565b9050919050565b612e8981612e6e565b82525050565b6000602082019050612ea46000830184612e80565b92915050565b600080600060608486031215612ec357612ec2612d24565b5b6000612ed186828701612d77565b9350506020612ee286828701612d77565b9250506040612ef386828701612da3565b9150509250925092565b600060ff82169050919050565b612f1381612efd565b82525050565b6000602082019050612f2e6000830184612f0a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7182612cae565b810181811067ffffffffffffffff82111715612f9057612f8f612f39565b5b80604052505050565b6000612fa3612d1a565b9050612faf8282612f68565b919050565b600067ffffffffffffffff821115612fcf57612fce612f39565b5b602082029050602081019050919050565b600080fd5b6000612ff8612ff384612fb4565b612f99565b9050808382526020820190506020840283018581111561301b5761301a612fe0565b5b835b8181101561304457806130308882612d77565b84526020840193505060208101905061301d565b5050509392505050565b600082601f83011261306357613062612f34565b5b8135613073848260208601612fe5565b91505092915050565b60006020828403121561309257613091612d24565b5b600082013567ffffffffffffffff8111156130b0576130af612d29565b5b6130bc8482850161304e565b91505092915050565b6000602082840312156130db576130da612d24565b5b60006130e984828501612d77565b91505092915050565b60006020828403121561310857613107612d24565b5b600061311684828501612da3565b91505092915050565b61312881612d4e565b82525050565b6000602082019050613143600083018461311f565b92915050565b61315281612df8565b811461315d57600080fd5b50565b60008135905061316f81613149565b92915050565b60006020828403121561318b5761318a612d24565b5b600061319984828501613160565b91505092915050565b600080604083850312156131b9576131b8612d24565b5b60006131c785828601612d77565b92505060206131d885828601612d77565b9150509250929050565b7f2e2e2e0000000000000000000000000000000000000000000000000000000000600082015250565b6000613218600383612c6a565b9150613223826131e2565b602082019050919050565b600060208201905081810360008301526132478161320b565b9050919050565b60006040820190506132636000830185612c35565b6132706020830184612c35565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132b182612c2b565b91506132bc83612c2b565b9250828210156132cf576132ce613277565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061331482612c2b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334757613346613277565b5b600182019050919050565b7f3e30000000000000000000000000000000000000000000000000000000000000600082015250565b6000613388600283612c6a565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133f4602083612c6a565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b6000819050919050565b600061344f61344a61344584612d2e565b61342a565b612d2e565b9050919050565b600061346182613434565b9050919050565b600061347382613456565b9050919050565b61348381613468565b82525050565b600060208201905061349e600083018461347a565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134da601783612c6a565b91506134e5826134a4565b602082019050919050565b60006020820190508181036000830152613509816134cd565b9050919050565b60008151905061351f81612d60565b92915050565b60006020828403121561353b5761353a612d24565b5b600061354984828501613510565b91505092915050565b6000604082019050613567600083018561311f565b613574602083018461311f565b9392505050565b6000819050919050565b60006135a061359b6135968461357b565b61342a565b612c2b565b9050919050565b6135b081613585565b82525050565b600060c0820190506135cb600083018961311f565b6135d86020830188612c35565b6135e560408301876135a7565b6135f260608301866135a7565b6135ff608083018561311f565b61360c60a0830184612c35565b979650505050505050565b60008151905061362681612d8c565b92915050565b60008060006060848603121561364557613644612d24565b5b600061365386828701613617565b935050602061366486828701613617565b925050604061367586828701613617565b9150509250925092565b6000604082019050613694600083018561311f565b6136a16020830184612c35565b9392505050565b6000815190506136b781613149565b92915050565b6000602082840312156136d3576136d2612d24565b5b60006136e1848285016136a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613746602483612c6a565b9150613751826136ea565b604082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602283612c6a565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061386a602583612c6a565b91506138758261380e565b604082019050919050565b600060208201905081810360008301526138998161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138fc602383612c6a565b9150613907826138a0565b604082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061398e602983612c6a565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006139fa601883612c6a565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b6000613a3b82612c2b565b9150613a4683612c2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7b57613a7a613277565b5b828201905092915050565b7f3325206c696d697420696e203130206d696e732e000000000000000000000000600082015250565b6000613abc601483612c6a565b9150613ac782613a86565b602082019050919050565b60006020820190508181036000830152613aeb81613aaf565b9050919050565b7f77616974203330732e0000000000000000000000000000000000000000000000600082015250565b6000613b28600983612c6a565b9150613b3382613af2565b602082019050919050565b60006020820190508181036000830152613b5781613b1b565b9050919050565b6000613b6982612c2b565b9150613b7483612c2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bad57613bac613277565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf282612c2b565b9150613bfd83612c2b565b925082613c0d57613c0c613bb8565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c4d81612d4e565b82525050565b6000613c5f8383613c44565b60208301905092915050565b6000602082019050919050565b6000613c8382613c18565b613c8d8185613c23565b9350613c9883613c34565b8060005b83811015613cc9578151613cb08882613c53565b9750613cbb83613c6b565b925050600181019050613c9c565b5085935050505092915050565b600060a082019050613ceb6000830188612c35565b613cf860208301876135a7565b8181036040830152613d0a8186613c78565b9050613d19606083018561311f565b613d266080830184612c35565b969550505050505056fea264697066735822122059497568322ba0f45cbfb5f34eb988b8e4ebd92cdf878d1ba0f0cfcec2f1a42464736f6c634300080a0033000000000000000000000000e9cf161131dfd8600138635e600af2ad397ce2a8

Deployed Bytecode

0x6080604052600436106101e75760003560e01c8063590f897e11610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb6146106a7578063dcb0e0ad146106d2578063dd62ed3e146106fb578063e8078d9414610738576101ee565b8063a9059cbb14610613578063b515566a14610650578063c3c8cd8014610679578063c9567bf914610690576101ee565b806373f54a11116100d157806373f54a11146105695780638da5cb5b1461059257806394b8d8f2146105bd57806395d89b41146105e8576101ee565b8063590f897e146104d35780636fc3eaec146104fe57806370a0823114610515578063715018a614610552576101ee565b806327f3a72a1161017a5780633bbac579116101495780633bbac5791461041757806340b9a54b1461045457806345596e2e1461047f57806349bd5a5e146104a8576101ee565b806327f3a72a1461036d578063313ce5671461039857806331c2d847146103c357806332d873d8146103ec576101ee565b8063104ce66d116101b6578063104ce66d146102af57806318160ddd146102da5780631940d0201461030557806323b872dd14610330576101ee565b80630492f055146101f357806306fdde031461021e578063095ea7b3146102495780630b78f9c014610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861074f565b6040516102159190612c44565b60405180910390f35b34801561022a57600080fd5b50610233610755565b6040516102409190612cf8565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612db8565b61078e565b60405161027d9190612e13565b60405180910390f35b34801561029257600080fd5b506102ad60048036038101906102a89190612e2e565b6107ac565b005b3480156102bb57600080fd5b506102c46108c5565b6040516102d19190612e8f565b60405180910390f35b3480156102e657600080fd5b506102ef6108eb565b6040516102fc9190612c44565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612c44565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612eaa565b610901565b6040516103649190612e13565b60405180910390f35b34801561037957600080fd5b50610382610b11565b60405161038f9190612c44565b60405180910390f35b3480156103a457600080fd5b506103ad610b21565b6040516103ba9190612f19565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e5919061307c565b610b26565b005b3480156103f857600080fd5b50610401610c1c565b60405161040e9190612c44565b60405180910390f35b34801561042357600080fd5b5061043e600480360381019061043991906130c5565b610c22565b60405161044b9190612e13565b60405180910390f35b34801561046057600080fd5b50610469610c78565b6040516104769190612c44565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a191906130f2565b610c7e565b005b3480156104b457600080fd5b506104bd610d65565b6040516104ca919061312e565b60405180910390f35b3480156104df57600080fd5b506104e8610d8b565b6040516104f59190612c44565b60405180910390f35b34801561050a57600080fd5b50610513610d91565b005b34801561052157600080fd5b5061053c600480360381019061053791906130c5565b610e03565b6040516105499190612c44565b60405180910390f35b34801561055e57600080fd5b50610567610e4c565b005b34801561057557600080fd5b50610590600480360381019061058b91906130c5565b610f9f565b005b34801561059e57600080fd5b506105a761109d565b6040516105b4919061312e565b60405180910390f35b3480156105c957600080fd5b506105d26110c6565b6040516105df9190612e13565b60405180910390f35b3480156105f457600080fd5b506105fd6110d9565b60405161060a9190612cf8565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190612db8565b611112565b6040516106479190612e13565b60405180910390f35b34801561065c57600080fd5b506106776004803603810190610672919061307c565b611130565b005b34801561068557600080fd5b5061068e611340565b005b34801561069c57600080fd5b506106a56113ba565b005b3480156106b357600080fd5b506106bc6114e1565b6040516106c99190612c44565b60405180910390f35b3480156106de57600080fd5b506106f960048036038101906106f49190613175565b611513565b005b34801561070757600080fd5b50610722600480360381019061071d91906131a2565b6115d7565b60405161072f9190612c44565b60405180910390f35b34801561074457600080fd5b5061074d61165e565b005b600d5481565b6040518060400160405280601081526020017f53616b75726120536869626120496e750000000000000000000000000000000081525081565b60006107a261079b611b0e565b8484611b16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ed611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461080d57600080fd5b600f8210801561081d5750600f81105b801561082a5750600a5482105b80156108375750600b5481105b610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061322e565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516108b992919061324e565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000678ac7230489e80000905090565b600e5481565b6000601060009054906101000a900460ff1680156109695750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156109c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610a55573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a54576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b610a60848484611ce1565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aac611b0e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610af191906132a6565b9050610b0585610aff611b0e565b83611b16565b60019150509392505050565b6000610b1c30610e03565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610b8757600080fd5b60005b8151811015610c1857600060056000848481518110610bac57610bab6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c1090613309565b915050610b8a565b5050565b600f5481565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600a5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cbf611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610cdf57600080fd5b60008111610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d199061339e565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d5a9190612c44565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dd2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1614610df257600080fd5b6000479050610e0081612684565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e54611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed89061340a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fe0611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461100057600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5a9bcd8aea0cbf27de081c73815e420f65287b49bcf7a17ff691c61a2dd2d2d6600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516110929190613489565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600481526020017f53494e550000000000000000000000000000000000000000000000000000000081525081565b600061112661111f611b0e565b8484611ce1565b6001905092915050565b611138611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bc9061340a565b60405180910390fd5b60005b815181101561133c57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061121d5761121c6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112b15750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106112905761128f6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611329576001600560008484815181106112cf576112ce6132da565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061133490613309565b9150506111c8565b5050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611381611b0e565b73ffffffffffffffffffffffffffffffffffffffff16146113a157600080fd5b60006113ac30610e03565b90506113b7816126f0565b50565b6113c2611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469061340a565b60405180910390fd5b601060009054906101000a900460ff161561149f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611496906134f0565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550670429d069189e0000600d81905550670429d069189e0000600e81905550565b600061150e600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611554611b0e565b73ffffffffffffffffffffffffffffffffffffffff161461157457600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516115cc9190612e13565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611666611b0e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ea9061340a565b60405180910390fd5b601060009054906101000a900460ff1615611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a906134f0565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117d230600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000611b16565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561181d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118419190613525565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118cc9190613525565b6040518363ffffffff1660e01b81526004016118e9929190613552565b6020604051808303816000875af1158015611908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192c9190613525565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119b530610e03565b6000806119c061109d565b426040518863ffffffff1660e01b81526004016119e2969594939291906135b6565b60606040518083038185885af1158015611a00573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a25919061362c565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611ac792919061367f565b6020604051808303816000875af1158015611ae6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0a91906136bd565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7d9061375c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed906137ee565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611cd49190612c44565b60405180910390a3505050565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d855750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ddb5750600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611de457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90613880565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb90613912565b60405180910390fd5b60008111611f07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efe906139a4565b60405180910390fd5b6000611f1161109d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f5750611f4f61109d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156125bf57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202f5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120855750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123bf57601060009054906101000a900460ff166120d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d090613a10565b60405180910390fd5b600f5442141561213c576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b42610258600f5461214d9190613a30565b11156121ac57600e5461215f84610e03565b8361216a9190613a30565b11156121ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a290613ad2565b60405180910390fd5b5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166122865760405180604001604052806000815260200160011515815250600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b42610258600f546122979190613a30565b111561237357600d548211156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613ad2565b60405180910390fd5b601e426122ef9190613a30565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236990613b3e565b60405180910390fd5b5b42600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156123e85750601060009054906101000a900460ff165b80156124425750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156125be57600f426124549190613a30565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154106124d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ce9061322e565b60405180910390fd5b60006124e230610e03565b9050600081111561259f57601060029054906101000a900460ff1615612595576064600c54612532600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b61253c9190613b5e565b6125469190613be7565b811115612594576064600c5461257d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e03565b6125879190613b5e565b6125919190613be7565b90505b5b61259e816126f0565b5b600047905060008111156125b7576125b647612684565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126665750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561267057600090505b61267d8585858486612969565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156126ec573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561272857612727612f39565b5b6040519080825280602002602001820160405280156127565781602001602082028036833780820191505090505b509050308160008151811061276e5761276d6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612815573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128399190613525565b8160018151811061284d5761284c6132da565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b430600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b16565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612918959493929190613cd6565b600060405180830381600087803b15801561293257600080fd5b505af1158015612946573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612975838361298b565b9050612983868686846129b9565b505050505050565b6000806000905083156129af5782156129a857600a5490506129ae565b600b5490505b5b8091505092915050565b6000806129c68484612b5c565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a1591906132a6565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aa39190613a30565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aef81612b9a565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b4c9190612c44565b60405180910390a3505050505050565b600080600060648486612b6f9190613b5e565b612b799190613be7565b905060008186612b8991906132a6565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be59190613a30565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612c3e81612c2b565b82525050565b6000602082019050612c596000830184612c35565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c99578082015181840152602081019050612c7e565b83811115612ca8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cca82612c5f565b612cd48185612c6a565b9350612ce4818560208601612c7b565b612ced81612cae565b840191505092915050565b60006020820190508181036000830152612d128184612cbf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d5982612d2e565b9050919050565b612d6981612d4e565b8114612d7457600080fd5b50565b600081359050612d8681612d60565b92915050565b612d9581612c2b565b8114612da057600080fd5b50565b600081359050612db281612d8c565b92915050565b60008060408385031215612dcf57612dce612d24565b5b6000612ddd85828601612d77565b9250506020612dee85828601612da3565b9150509250929050565b60008115159050919050565b612e0d81612df8565b82525050565b6000602082019050612e286000830184612e04565b92915050565b60008060408385031215612e4557612e44612d24565b5b6000612e5385828601612da3565b9250506020612e6485828601612da3565b9150509250929050565b6000612e7982612d2e565b9050919050565b612e8981612e6e565b82525050565b6000602082019050612ea46000830184612e80565b92915050565b600080600060608486031215612ec357612ec2612d24565b5b6000612ed186828701612d77565b9350506020612ee286828701612d77565b9250506040612ef386828701612da3565b9150509250925092565b600060ff82169050919050565b612f1381612efd565b82525050565b6000602082019050612f2e6000830184612f0a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f7182612cae565b810181811067ffffffffffffffff82111715612f9057612f8f612f39565b5b80604052505050565b6000612fa3612d1a565b9050612faf8282612f68565b919050565b600067ffffffffffffffff821115612fcf57612fce612f39565b5b602082029050602081019050919050565b600080fd5b6000612ff8612ff384612fb4565b612f99565b9050808382526020820190506020840283018581111561301b5761301a612fe0565b5b835b8181101561304457806130308882612d77565b84526020840193505060208101905061301d565b5050509392505050565b600082601f83011261306357613062612f34565b5b8135613073848260208601612fe5565b91505092915050565b60006020828403121561309257613091612d24565b5b600082013567ffffffffffffffff8111156130b0576130af612d29565b5b6130bc8482850161304e565b91505092915050565b6000602082840312156130db576130da612d24565b5b60006130e984828501612d77565b91505092915050565b60006020828403121561310857613107612d24565b5b600061311684828501612da3565b91505092915050565b61312881612d4e565b82525050565b6000602082019050613143600083018461311f565b92915050565b61315281612df8565b811461315d57600080fd5b50565b60008135905061316f81613149565b92915050565b60006020828403121561318b5761318a612d24565b5b600061319984828501613160565b91505092915050565b600080604083850312156131b9576131b8612d24565b5b60006131c785828601612d77565b92505060206131d885828601612d77565b9150509250929050565b7f2e2e2e0000000000000000000000000000000000000000000000000000000000600082015250565b6000613218600383612c6a565b9150613223826131e2565b602082019050919050565b600060208201905081810360008301526132478161320b565b9050919050565b60006040820190506132636000830185612c35565b6132706020830184612c35565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132b182612c2b565b91506132bc83612c2b565b9250828210156132cf576132ce613277565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061331482612c2b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561334757613346613277565b5b600182019050919050565b7f3e30000000000000000000000000000000000000000000000000000000000000600082015250565b6000613388600283612c6a565b915061339382613352565b602082019050919050565b600060208201905081810360008301526133b78161337b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006133f4602083612c6a565b91506133ff826133be565b602082019050919050565b60006020820190508181036000830152613423816133e7565b9050919050565b6000819050919050565b600061344f61344a61344584612d2e565b61342a565b612d2e565b9050919050565b600061346182613434565b9050919050565b600061347382613456565b9050919050565b61348381613468565b82525050565b600060208201905061349e600083018461347a565b92915050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006134da601783612c6a565b91506134e5826134a4565b602082019050919050565b60006020820190508181036000830152613509816134cd565b9050919050565b60008151905061351f81612d60565b92915050565b60006020828403121561353b5761353a612d24565b5b600061354984828501613510565b91505092915050565b6000604082019050613567600083018561311f565b613574602083018461311f565b9392505050565b6000819050919050565b60006135a061359b6135968461357b565b61342a565b612c2b565b9050919050565b6135b081613585565b82525050565b600060c0820190506135cb600083018961311f565b6135d86020830188612c35565b6135e560408301876135a7565b6135f260608301866135a7565b6135ff608083018561311f565b61360c60a0830184612c35565b979650505050505050565b60008151905061362681612d8c565b92915050565b60008060006060848603121561364557613644612d24565b5b600061365386828701613617565b935050602061366486828701613617565b925050604061367586828701613617565b9150509250925092565b6000604082019050613694600083018561311f565b6136a16020830184612c35565b9392505050565b6000815190506136b781613149565b92915050565b6000602082840312156136d3576136d2612d24565b5b60006136e1848285016136a8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613746602483612c6a565b9150613751826136ea565b604082019050919050565b6000602082019050818103600083015261377581613739565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137d8602283612c6a565b91506137e38261377c565b604082019050919050565b60006020820190508181036000830152613807816137cb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061386a602583612c6a565b91506138758261380e565b604082019050919050565b600060208201905081810360008301526138998161385d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006138fc602383612c6a565b9150613907826138a0565b604082019050919050565b6000602082019050818103600083015261392b816138ef565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061398e602983612c6a565b915061399982613932565b604082019050919050565b600060208201905081810360008301526139bd81613981565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006139fa601883612c6a565b9150613a05826139c4565b602082019050919050565b60006020820190508181036000830152613a29816139ed565b9050919050565b6000613a3b82612c2b565b9150613a4683612c2b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a7b57613a7a613277565b5b828201905092915050565b7f3325206c696d697420696e203130206d696e732e000000000000000000000000600082015250565b6000613abc601483612c6a565b9150613ac782613a86565b602082019050919050565b60006020820190508181036000830152613aeb81613aaf565b9050919050565b7f77616974203330732e0000000000000000000000000000000000000000000000600082015250565b6000613b28600983612c6a565b9150613b3382613af2565b602082019050919050565b60006020820190508181036000830152613b5781613b1b565b9050919050565b6000613b6982612c2b565b9150613b7483612c2b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bad57613bac613277565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf282612c2b565b9150613bfd83612c2b565b925082613c0d57613c0c613bb8565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c4d81612d4e565b82525050565b6000613c5f8383613c44565b60208301905092915050565b6000602082019050919050565b6000613c8382613c18565b613c8d8185613c23565b9350613c9883613c34565b8060005b83811015613cc9578151613cb08882613c53565b9750613cbb83613c6b565b925050600181019050613c9c565b5085935050505092915050565b600060a082019050613ceb6000830188612c35565b613cf860208301876135a7565b8181036040830152613d0a8186613c78565b9050613d19606083018561311f565b613d266080830184612c35565b969550505050505056fea264697066735822122059497568322ba0f45cbfb5f34eb988b8e4ebd92cdf878d1ba0f0cfcec2f1a42464736f6c634300080a0033

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

000000000000000000000000e9cf161131dfd8600138635e600af2ad397ce2a8

-----Decoded View---------------
Arg [0] : TaxAdd (address): 0xe9Cf161131dfD8600138635E600Af2aD397Ce2A8

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


Deployed Bytecode Sourcemap

2512:10659:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3270:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2894:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4771:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11680:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3102:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4518:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3302:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4937:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12360:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3008:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12860:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3335:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13070:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3174:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11481:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3139:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3205:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11290:183;;;;;;;;;;;;;:::i;:::-;;4223:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1593:148;;;;;;;;;;;;;:::i;:::-;;12168:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1379:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3432:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2956:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4342:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12579:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11094:184;;;;;;;;;;;;;:::i;:::-;;10814:272;;;;;;;;;;;;;:::i;:::-;;12468:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11966:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4623:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10118:688;;;;;;;;;;;;;:::i;:::-;;3270:25;;;;:::o;2894:55::-;;;;;;;;;;;;;;;;;;;:::o;4771:158::-;4843:4;4860:39;4869:12;:10;:12::i;:::-;4883:7;4892:6;4860:8;:39::i;:::-;4917:4;4910:11;;4771:158;;;;:::o;11680:278::-;11762:7;;;;;;;;;;;11746:23;;:12;:10;:12::i;:::-;:23;;;11738:32;;;;;;11795:2;11789:3;:8;:21;;;;;11808:2;11801:4;:9;11789:21;:38;;;;;11820:7;;11814:3;:13;11789:38;:57;;;;;11838:8;;11831:4;:15;11789:57;11781:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11875:3;11865:7;:13;;;;11900:4;11889:8;:15;;;;11920:30;11932:7;;11941:8;;11920:30;;;;;;;:::i;:::-;;;;;;;;11680:278;;:::o;3102:30::-;;;;;;;;;;;;;:::o;4518:97::-;4571:4;2873:12;4588:19;;4518:97;:::o;3302:26::-;;;;:::o;4937:475::-;5032:4;5052:12;;;;;;;;;;;:46;;;;;5069:18;:29;5088:9;5069:29;;;;;;;;;;;;;;;;;;;;;;;;;5068:30;5052:46;:73;;;;;5112:13;;;;;;;;;;;5102:23;;:6;:23;;;5052:73;5049:157;;;5158:9;5145:22;;:9;:22;;;5141:53;;;5190:4;5170:6;:17;5177:9;5170:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5141:53;5049:157;5216:36;5226:6;5234:9;5245:6;5216:9;:36::i;:::-;5263:18;5320:6;5284:11;:19;5296:6;5284:19;;;;;;;;;;;;;;;:33;5304:12;:10;:12::i;:::-;5284:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5263:63;;5337:45;5346:6;5354:12;:10;:12::i;:::-;5368:13;5337:8;:45::i;:::-;5400:4;5393:11;;;4937:475;;;;;:::o;12360:100::-;12404:4;12428:24;12446:4;12428:9;:24::i;:::-;12421:31;;12360:100;:::o;3008:34::-;3041:1;3008:34;:::o;12860:202::-;12945:7;;;;;;;;;;;12929:23;;:12;:10;:12::i;:::-;:23;;;12921:32;;;;;;12969:6;12964:91;12985:5;:12;12981:1;:16;12964:91;;;13038:5;13019:6;:16;13026:5;13032:1;13026:8;;;;;;;;:::i;:::-;;;;;;;;13019:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12999:3;;;;;:::i;:::-;;;;12964:91;;;;12860:202;:::o;3335:23::-;;;;:::o;13070:90::-;13118:4;13142:6;:10;13149:2;13142:10;;;;;;;;;;;;;;;;;;;;;;;;;13135:17;;13070:90;;;:::o;3174:24::-;;;;:::o;11481:191::-;11556:7;;;;;;;;;;;11540:23;;:12;:10;:12::i;:::-;:23;;;11532:32;;;;;;11590:1;11583:4;:8;11575:23;;;;;;;;;;;;:::i;:::-;;;;;;;;;11620:4;11609:8;:15;;;;11640:24;11655:8;;11640:24;;;;;;:::i;:::-;;;;;;;;11481:191;:::o;3139:28::-;;;;;;;;;;;;;:::o;3205:25::-;;;;:::o;11290:183::-;11356:7;;;;;;;;;;;11340:23;;:12;:10;:12::i;:::-;:23;;;11332:32;;;;;;11375:23;11401:21;11375:47;;11433:32;11446:18;11433:12;:32::i;:::-;11321:152;11290:183::o;4223:113::-;4289:4;4313:6;:15;4320:7;4313:15;;;;;;;;;;;;;;;;4306:22;;4223:113;;;:::o;1593:148::-;1516:12;:10;:12::i;:::-;1506:22;;:6;;;;;;;;;;:22;;;1498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1700:1:::1;1663:40;;1684:6;::::0;::::1;;;;;;;;1663:40;;;;;;;;;;;;1731:1;1714:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1593:148::o:0;12168:180::-;12254:7;;;;;;;;;;;12238:23;;:12;:10;:12::i;:::-;:23;;;12230:32;;;;;;12291:10;12273:7;;:29;;;;;;;;;;;;;;;;;;12318:22;12332:7;;;;;;;;;;;12318:22;;;;;;:::i;:::-;;;;;;;;12168:180;:::o;1379:79::-;1417:7;1444:6;;;;;;;;;;;1437:13;;1379:79;:::o;3432:39::-;;;;;;;;;;;;;:::o;2956:45::-;;;;;;;;;;;;;;;;;;;:::o;4342:164::-;4417:4;4434:42;4444:12;:10;:12::i;:::-;4458:9;4469:6;4434:9;:42::i;:::-;4494:4;4487:11;;4342:164;;;;:::o;12579:275::-;1516:12;:10;:12::i;:::-;1506:22;;:6;;;;;;;;;;:22;;;1498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12657:6:::1;12652:195;12673:5;:12;12669:1;:16;12652:195;;;12723:13;;;;;;;;;;;12711:25;;:5;12717:1;12711:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;12760:15;;;;;;;;;;;12740:36;;:5;12746:1;12740:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12711:65;12707:129;;;12816:4;12797:6;:16;12804:5;12810:1;12804:8;;;;;;;;:::i;:::-;;;;;;;;12797:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12707:129;12687:3;;;;;:::i;:::-;;;;12652:195;;;;12579:275:::0;:::o;11094:184::-;11160:7;;;;;;;;;;;11144:23;;:12;:10;:12::i;:::-;:23;;;11136:32;;;;;;11179:20;11202:24;11220:4;11202:9;:24::i;:::-;11179:47;;11237:33;11254:15;11237:16;:33::i;:::-;11125:153;11094:184::o;10814:272::-;1516:12;:10;:12::i;:::-;1506:22;;:6;;;;;;;;;;:22;;;1498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10878:12:::1;;;;;;;;;;;10877:13;10869:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10944:4;10929:12;;:19;;;;;;;;;;;;;;;;;;10973:15;10959:11;:29;;;;11015:17;10999:13;:33;;;;11061:17;11044:14;:34;;;;10814:272::o:0;12468:101::-;12513:4;12537:24;12547:13;;;;;;;;;;;12537:9;:24::i;:::-;12530:31;;12468:101;:::o;11966:194::-;12047:7;;;;;;;;;;;12031:23;;:12;:10;:12::i;:::-;:23;;;12023:32;;;;;;12088:5;12066:19;;:27;;;;;;;;;;;;;;;;;;12109:43;12132:19;;;;;;;;;;;12109:43;;;;;;:::i;:::-;;;;;;;;11966:194;:::o;4623:140::-;4704:4;4728:11;:18;4740:5;4728:18;;;;;;;;;;;;;;;:27;4747:7;4728:27;;;;;;;;;;;;;;;;4721:34;;4623:140;;;;:::o;10118:688::-;1516:12;:10;:12::i;:::-;1506:22;;:6;;;;;;;;;;:22;;;1498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10183:12:::1;;;;;;;;;;;10182:13;10174:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10234:35;10291:42;10234:100;;10363:16;10345:15;;:34;;;;;;;;;;;;;;;;;;10390:63;10407:4;10422:15;;;;;;;;;;;2873:12;10390:8;:63::i;:::-;10498:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10480:56;;;10545:4;10552:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10480:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10464:13;;:112;;;;;;;;;;;;;;;;;;10587:15;;;;;;;;;;;:31;;;10626:21;10657:4;10663:24;10681:4;10663:9;:24::i;:::-;10688:1;10690::::0;10692:7:::1;:5;:7::i;:::-;10700:15;10587:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10734:13;;;;;;;;;;;10727:29;;;10765:15;;;;;;;;;;;10783:14;10727:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10163:643;10118:688::o:0;242:98::-;295:7;322:10;315:17;;242:98;:::o;5420:332::-;5527:1;5510:19;;:5;:19;;;;5502:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5608:1;5589:21;;:7;:21;;;;5581:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5690:6;5660:11;:18;5672:5;5660:18;;;;;;;;;;;;;;;:27;5679:7;5660:27;;;;;;;;;;;;;;;:36;;;;5728:7;5712:32;;5721:5;5712:32;;;5737:6;5712:32;;;;;;:::i;:::-;;;;;;;;5420:332;;;:::o;5760:2448::-;5846:6;:12;5853:4;5846:12;;;;;;;;;;;;;;;;;;;;;;;;;5845:13;:28;;;;;5863:6;:10;5870:2;5863:10;;;;;;;;;;;;;;;;;;;;;;;;;5862:11;5845:28;:51;;;;;5878:6;:18;5885:10;5878:18;;;;;;;;;;;;;;;;;;;;;;;;;5877:19;5845:51;5837:60;;;;;;5932:1;5916:18;;:4;:18;;;;5908:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6009:1;5995:16;;:2;:16;;;;5987:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6079:1;6070:6;:10;6062:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6137:10;6177:7;:5;:7::i;:::-;6169:15;;:4;:15;;;;:32;;;;;6194:7;:5;:7::i;:::-;6188:13;;:2;:13;;;;6169:32;6166:1844;;;6229:13;;;;;;;;;;;6221:21;;:4;:21;;;:55;;;;;6260:15;;;;;;;;;;;6246:30;;:2;:30;;;;6221:55;:82;;;;;6281:18;:22;6300:2;6281:22;;;;;;;;;;;;;;;;;;;;;;;;;6280:23;6221:82;6218:899;;;6332:12;;;;;;;;;;;6324:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6415:11;;6396:15;:30;6392:53;;;6441:4;6428:6;:10;6435:2;6428:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;6392:53;6498:15;6483:10;6468:11;;:26;;;;:::i;:::-;6467:46;6464:179;;;6583:14;;6556:22;6574:2;6556:9;:22::i;:::-;6547:6;:31;;;;:::i;:::-;6546:51;;6538:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;6464:179;6665:8;:12;6674:2;6665:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6661:95;;6724:12;;;;;;;;6729:1;6724:12;;;;6731:4;6724:12;;;;;6709:8;:12;6718:2;6709:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6661:95;6808:15;6793:10;6778:11;;:26;;;;:::i;:::-;6777:46;6774:244;;;6866:13;;6856:6;:23;;6848:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6973:10;6954:15;:30;;;;:::i;:::-;6935:8;:12;6944:2;6935:12;;;;;;;;;;;;;;;:16;;;:49;6927:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6774:244;7055:15;7036:8;:12;7045:2;7036:12;;;;;;;;;;;;;;;:16;;:34;;;;7097:4;7089:12;;6218:899;7135:7;;;;;;;;;;;7134:8;:24;;;;;7146:12;;;;;;;;;;;7134:24;:49;;;;;7170:13;;;;;;;;;;;7162:21;;:4;:21;;;;7134:49;7131:868;;;7252:10;7233:15;:30;;;;:::i;:::-;7212:8;:14;7221:4;7212:14;;;;;;;;;;;;;;;:18;;;:51;7204:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7290:25;7318:24;7336:4;7318:9;:24::i;:::-;7290:52;;7387:1;7364:20;:24;7361:402;;;7416:19;;;;;;;;;;;7413:270;;;7530:3;7518:8;;7491:24;7501:13;;;;;;;;;;;7491:9;:24::i;:::-;:35;;;;:::i;:::-;7490:43;;;;:::i;:::-;7467:20;:66;7464:196;;;7629:3;7617:8;;7590:24;7600:13;;;;;;;;;;;7590:9;:24::i;:::-;:35;;;;:::i;:::-;7589:43;;;;:::i;:::-;7566:66;;7464:196;7413:270;7705:38;7722:20;7705:16;:38::i;:::-;7361:402;7781:23;7807:21;7781:47;;7871:1;7850:18;:22;7847:105;;;7897:35;7910:21;7897:12;:35::i;:::-;7847:105;7978:5;7970:13;;7185:814;;7131:868;6166:1844;8020:12;8035:4;8020:19;;8053:18;:24;8072:4;8053:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8081:18;:22;8100:2;8081:22;;;;;;;;;;;;;;;;;;;;;;;;;8053:50;8050:96;;;8129:5;8119:15;;8050:96;8156:44;8171:4;8176:2;8179:6;8186:7;8194:5;8156:14;:44::i;:::-;5826:2382;;5760:2448;;;:::o;8712:86::-;8766:7;;;;;;;;;;;:16;;:24;8783:6;8766:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8712:86;:::o;8216:480::-;3835:4;3825:7;;:14;;;;;;;;;;;;;;;;;;8291:21:::1;8329:1;8315:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8291:40;;8360:4;8342;8347:1;8342:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8386:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8376:4;8381:1;8376:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8419:62;8436:4;8451:15;;;;;;;;;;;8469:11;8419:8;:62::i;:::-;8492:15;;;;;;;;;;;:66;;;8573:11;8599:1;8615:4;8642;8662:15;8492:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8280:416;3872:5:::0;3862:7;;:15;;;;;;;;;;;;;;;;;;8216:480;:::o;8810:217::-;8926:8;8938:21;8946:7;8955:3;8938:7;:21::i;:::-;8925:34;;8970:49;8988:6;8996:9;9007:6;9015:3;8970:17;:49::i;:::-;8914:113;8810:217;;;;;:::o;9035:280::-;9098:4;9115:8;9126:1;9115:12;;9141:7;9138:149;;;9168:3;9165:111;;;9198:7;;9192:13;;9165:111;;;9252:8;;9246:14;;9165:111;9138:149;9304:3;9297:10;;;9035:280;;;;:::o;9323:372::-;9428:19;9449:9;9462:23;9473:6;9481:3;9462:10;:23::i;:::-;9427:58;;;;9530:6;9513;:14;9520:6;9513:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9496:6;:14;9503:6;9496:14;;;;;;;;;;;;;;;:40;;;;9587:14;9567:6;:17;9574:9;9567:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;9547:6;:17;9554:9;9547:17;;;;;;;;;;;;;;;:54;;;;9613:15;9623:4;9613:9;:15::i;:::-;9661:9;9644:43;;9653:6;9644:43;;;9672:14;9644:43;;;;;;:::i;:::-;;;;;;;;9416:279;;9323:372;;;;:::o;9703:222::-;9772:4;9778;9795:9;9828:3;9817:7;9808:6;:16;;;;:::i;:::-;9807:24;;;;:::i;:::-;9795:36;;9842:19;9873:4;9864:6;:13;;;;:::i;:::-;9842:35;;9896:14;9912:4;9888:29;;;;;;9703:222;;;;;:::o;9933:109::-;10030:4;10006:6;:21;10021:4;10006:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;9982:6;:21;9997:4;9982:21;;;;;;;;;;;;;;;:52;;;;9933: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;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135: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:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:104::-;4371:7;4400:24;4418:5;4400:24;:::i;:::-;4389:35;;4326:104;;;:::o;4436:142::-;4539:32;4565:5;4539:32;:::i;:::-;4534:3;4527:45;4436:142;;:::o;4584:254::-;4693:4;4731:2;4720:9;4716:18;4708:26;;4744:87;4828:1;4817:9;4813:17;4804:6;4744:87;:::i;:::-;4584:254;;;;:::o;4844:619::-;4921:6;4929;4937;4986:2;4974:9;4965:7;4961:23;4957:32;4954:119;;;4992:79;;:::i;:::-;4954:119;5112:1;5137:53;5182:7;5173:6;5162:9;5158:22;5137:53;:::i;:::-;5127:63;;5083:117;5239:2;5265:53;5310:7;5301:6;5290:9;5286:22;5265:53;:::i;:::-;5255:63;;5210:118;5367:2;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;:::i;:::-;5383:63;;5338:118;4844:619;;;;;:::o;5469:86::-;5504:7;5544:4;5537:5;5533:16;5522:27;;5469:86;;;:::o;5561:112::-;5644:22;5660:5;5644:22;:::i;:::-;5639:3;5632:35;5561:112;;:::o;5679:214::-;5768:4;5806:2;5795:9;5791:18;5783:26;;5819:67;5883:1;5872:9;5868:17;5859:6;5819:67;:::i;:::-;5679:214;;;;:::o;5899:117::-;6008:1;6005;5998:12;6022:180;6070:77;6067:1;6060:88;6167:4;6164:1;6157:15;6191:4;6188:1;6181:15;6208:281;6291:27;6313:4;6291:27;:::i;:::-;6283:6;6279:40;6421:6;6409:10;6406:22;6385:18;6373:10;6370:34;6367:62;6364:88;;;6432:18;;:::i;:::-;6364:88;6472:10;6468:2;6461:22;6251:238;6208:281;;:::o;6495:129::-;6529:6;6556:20;;:::i;:::-;6546:30;;6585:33;6613:4;6605:6;6585:33;:::i;:::-;6495:129;;;:::o;6630:311::-;6707:4;6797:18;6789:6;6786:30;6783:56;;;6819:18;;:::i;:::-;6783:56;6869:4;6861:6;6857:17;6849:25;;6929:4;6923;6919:15;6911:23;;6630:311;;;:::o;6947:117::-;7056:1;7053;7046:12;7087:710;7183:5;7208:81;7224:64;7281:6;7224:64;:::i;:::-;7208:81;:::i;:::-;7199:90;;7309:5;7338:6;7331:5;7324:21;7372:4;7365:5;7361:16;7354:23;;7425:4;7417:6;7413:17;7405:6;7401:30;7454:3;7446:6;7443:15;7440:122;;;7473:79;;:::i;:::-;7440:122;7588:6;7571:220;7605:6;7600:3;7597:15;7571:220;;;7680:3;7709:37;7742:3;7730:10;7709:37;:::i;:::-;7704:3;7697:50;7776:4;7771:3;7767:14;7760:21;;7647:144;7631:4;7626:3;7622:14;7615:21;;7571:220;;;7575:21;7189:608;;7087:710;;;;;:::o;7820:370::-;7891:5;7940:3;7933:4;7925:6;7921:17;7917:27;7907:122;;7948:79;;:::i;:::-;7907:122;8065:6;8052:20;8090:94;8180:3;8172:6;8165:4;8157:6;8153:17;8090:94;:::i;:::-;8081:103;;7897:293;7820:370;;;;:::o;8196:539::-;8280:6;8329:2;8317:9;8308:7;8304:23;8300:32;8297:119;;;8335:79;;:::i;:::-;8297:119;8483:1;8472:9;8468:17;8455:31;8513:18;8505:6;8502:30;8499:117;;;8535:79;;:::i;:::-;8499:117;8640:78;8710:7;8701:6;8690:9;8686:22;8640:78;:::i;:::-;8630:88;;8426:302;8196:539;;;;:::o;8741:329::-;8800:6;8849:2;8837:9;8828:7;8824:23;8820:32;8817:119;;;8855:79;;:::i;:::-;8817:119;8975:1;9000:53;9045:7;9036:6;9025:9;9021:22;9000:53;:::i;:::-;8990:63;;8946:117;8741:329;;;;:::o;9076:::-;9135:6;9184:2;9172:9;9163:7;9159:23;9155:32;9152:119;;;9190:79;;:::i;:::-;9152:119;9310:1;9335:53;9380:7;9371:6;9360:9;9356:22;9335:53;:::i;:::-;9325:63;;9281:117;9076:329;;;;:::o;9411:118::-;9498:24;9516:5;9498:24;:::i;:::-;9493:3;9486:37;9411:118;;:::o;9535:222::-;9628:4;9666:2;9655:9;9651:18;9643:26;;9679:71;9747:1;9736:9;9732:17;9723:6;9679:71;:::i;:::-;9535:222;;;;:::o;9763:116::-;9833:21;9848:5;9833:21;:::i;:::-;9826:5;9823:32;9813:60;;9869:1;9866;9859:12;9813:60;9763:116;:::o;9885:133::-;9928:5;9966:6;9953:20;9944:29;;9982:30;10006:5;9982:30;:::i;:::-;9885:133;;;;:::o;10024:323::-;10080:6;10129:2;10117:9;10108:7;10104:23;10100:32;10097:119;;;10135:79;;:::i;:::-;10097:119;10255:1;10280:50;10322:7;10313:6;10302:9;10298:22;10280:50;:::i;:::-;10270:60;;10226:114;10024:323;;;;:::o;10353:474::-;10421:6;10429;10478:2;10466:9;10457:7;10453:23;10449:32;10446:119;;;10484:79;;:::i;:::-;10446:119;10604:1;10629:53;10674:7;10665:6;10654:9;10650:22;10629:53;:::i;:::-;10619:63;;10575:117;10731:2;10757:53;10802:7;10793:6;10782:9;10778:22;10757:53;:::i;:::-;10747:63;;10702:118;10353:474;;;;;:::o;10833:153::-;10973:5;10969:1;10961:6;10957:14;10950:29;10833:153;:::o;10992:365::-;11134:3;11155:66;11219:1;11214:3;11155:66;:::i;:::-;11148:73;;11230:93;11319:3;11230:93;:::i;:::-;11348:2;11343:3;11339:12;11332:19;;10992:365;;;:::o;11363:419::-;11529:4;11567:2;11556:9;11552:18;11544:26;;11616:9;11610:4;11606:20;11602:1;11591:9;11587:17;11580:47;11644:131;11770:4;11644:131;:::i;:::-;11636:139;;11363:419;;;:::o;11788:332::-;11909:4;11947:2;11936:9;11932:18;11924:26;;11960:71;12028:1;12017:9;12013:17;12004:6;11960:71;:::i;:::-;12041:72;12109:2;12098:9;12094:18;12085:6;12041:72;:::i;:::-;11788:332;;;;;:::o;12126:180::-;12174:77;12171:1;12164:88;12271:4;12268:1;12261:15;12295:4;12292:1;12285:15;12312:191;12352:4;12372:20;12390:1;12372:20;:::i;:::-;12367:25;;12406:20;12424:1;12406:20;:::i;:::-;12401:25;;12445:1;12442;12439:8;12436:34;;;12450:18;;:::i;:::-;12436:34;12495:1;12492;12488:9;12480:17;;12312:191;;;;:::o;12509:180::-;12557:77;12554:1;12547:88;12654:4;12651:1;12644:15;12678:4;12675:1;12668:15;12695:233;12734:3;12757:24;12775:5;12757:24;:::i;:::-;12748:33;;12803:66;12796:5;12793:77;12790:103;;;12873:18;;:::i;:::-;12790:103;12920:1;12913:5;12909:13;12902:20;;12695:233;;;:::o;12934:152::-;13074:4;13070:1;13062:6;13058:14;13051:28;12934:152;:::o;13092:365::-;13234:3;13255:66;13319:1;13314:3;13255:66;:::i;:::-;13248:73;;13330:93;13419:3;13330:93;:::i;:::-;13448:2;13443:3;13439:12;13432:19;;13092:365;;;:::o;13463:419::-;13629:4;13667:2;13656:9;13652:18;13644:26;;13716:9;13710:4;13706:20;13702:1;13691:9;13687:17;13680:47;13744:131;13870:4;13744:131;:::i;:::-;13736:139;;13463:419;;;:::o;13888:182::-;14028:34;14024:1;14016:6;14012:14;14005:58;13888:182;:::o;14076:366::-;14218:3;14239:67;14303:2;14298:3;14239:67;:::i;:::-;14232:74;;14315:93;14404:3;14315:93;:::i;:::-;14433:2;14428:3;14424:12;14417:19;;14076:366;;;:::o;14448:419::-;14614:4;14652:2;14641:9;14637:18;14629:26;;14701:9;14695:4;14691:20;14687:1;14676:9;14672:17;14665:47;14729:131;14855:4;14729:131;:::i;:::-;14721:139;;14448:419;;;:::o;14873:60::-;14901:3;14922:5;14915:12;;14873:60;;;:::o;14939:142::-;14989:9;15022:53;15040:34;15049:24;15067:5;15049:24;:::i;:::-;15040:34;:::i;:::-;15022:53;:::i;:::-;15009:66;;14939:142;;;:::o;15087:126::-;15137:9;15170:37;15201:5;15170:37;:::i;:::-;15157:50;;15087:126;;;:::o;15219:134::-;15277:9;15310:37;15341:5;15310:37;:::i;:::-;15297:50;;15219:134;;;:::o;15359:147::-;15454:45;15493:5;15454:45;:::i;:::-;15449:3;15442:58;15359:147;;:::o;15512:238::-;15613:4;15651:2;15640:9;15636:18;15628:26;;15664:79;15740:1;15729:9;15725:17;15716:6;15664:79;:::i;:::-;15512:238;;;;:::o;15756:173::-;15896:25;15892:1;15884:6;15880:14;15873:49;15756:173;:::o;15935:366::-;16077:3;16098:67;16162:2;16157:3;16098:67;:::i;:::-;16091:74;;16174:93;16263:3;16174:93;:::i;:::-;16292:2;16287:3;16283:12;16276:19;;15935:366;;;:::o;16307:419::-;16473:4;16511:2;16500:9;16496:18;16488:26;;16560:9;16554:4;16550:20;16546:1;16535:9;16531:17;16524:47;16588:131;16714:4;16588:131;:::i;:::-;16580:139;;16307:419;;;:::o;16732:143::-;16789:5;16820:6;16814:13;16805:22;;16836:33;16863:5;16836:33;:::i;:::-;16732:143;;;;:::o;16881:351::-;16951:6;17000:2;16988:9;16979:7;16975:23;16971:32;16968:119;;;17006:79;;:::i;:::-;16968:119;17126:1;17151:64;17207:7;17198:6;17187:9;17183:22;17151:64;:::i;:::-;17141:74;;17097:128;16881:351;;;;:::o;17238:332::-;17359:4;17397:2;17386:9;17382:18;17374:26;;17410:71;17478:1;17467:9;17463:17;17454:6;17410:71;:::i;:::-;17491:72;17559:2;17548:9;17544:18;17535:6;17491:72;:::i;:::-;17238:332;;;;;:::o;17576:85::-;17621:7;17650:5;17639:16;;17576:85;;;:::o;17667:158::-;17725:9;17758:61;17776:42;17785:32;17811:5;17785:32;:::i;:::-;17776:42;:::i;:::-;17758:61;:::i;:::-;17745:74;;17667:158;;;:::o;17831:147::-;17926:45;17965:5;17926:45;:::i;:::-;17921:3;17914:58;17831:147;;:::o;17984:807::-;18233:4;18271:3;18260:9;18256:19;18248:27;;18285:71;18353:1;18342:9;18338:17;18329:6;18285:71;:::i;:::-;18366:72;18434:2;18423:9;18419:18;18410:6;18366:72;:::i;:::-;18448:80;18524:2;18513:9;18509:18;18500:6;18448:80;:::i;:::-;18538;18614:2;18603:9;18599:18;18590:6;18538:80;:::i;:::-;18628:73;18696:3;18685:9;18681:19;18672:6;18628:73;:::i;:::-;18711;18779:3;18768:9;18764:19;18755:6;18711:73;:::i;:::-;17984:807;;;;;;;;;:::o;18797:143::-;18854:5;18885:6;18879:13;18870:22;;18901:33;18928:5;18901:33;:::i;:::-;18797:143;;;;:::o;18946:663::-;19034:6;19042;19050;19099:2;19087:9;19078:7;19074:23;19070:32;19067:119;;;19105:79;;:::i;:::-;19067:119;19225:1;19250:64;19306:7;19297:6;19286:9;19282:22;19250:64;:::i;:::-;19240:74;;19196:128;19363:2;19389:64;19445:7;19436:6;19425:9;19421:22;19389:64;:::i;:::-;19379:74;;19334:129;19502:2;19528:64;19584:7;19575:6;19564:9;19560:22;19528:64;:::i;:::-;19518:74;;19473:129;18946:663;;;;;:::o;19615:332::-;19736:4;19774:2;19763:9;19759:18;19751:26;;19787:71;19855:1;19844:9;19840:17;19831:6;19787:71;:::i;:::-;19868:72;19936:2;19925:9;19921:18;19912:6;19868:72;:::i;:::-;19615:332;;;;;:::o;19953:137::-;20007:5;20038:6;20032:13;20023:22;;20054:30;20078:5;20054:30;:::i;:::-;19953:137;;;;:::o;20096:345::-;20163:6;20212:2;20200:9;20191:7;20187:23;20183:32;20180:119;;;20218:79;;:::i;:::-;20180:119;20338:1;20363:61;20416:7;20407:6;20396:9;20392:22;20363:61;:::i;:::-;20353:71;;20309:125;20096:345;;;;:::o;20447:223::-;20587:34;20583:1;20575:6;20571:14;20564:58;20656:6;20651:2;20643:6;20639:15;20632:31;20447:223;:::o;20676:366::-;20818:3;20839:67;20903:2;20898:3;20839:67;:::i;:::-;20832:74;;20915:93;21004:3;20915:93;:::i;:::-;21033:2;21028:3;21024:12;21017:19;;20676:366;;;:::o;21048:419::-;21214:4;21252:2;21241:9;21237:18;21229:26;;21301:9;21295:4;21291:20;21287:1;21276:9;21272:17;21265:47;21329:131;21455:4;21329:131;:::i;:::-;21321:139;;21048:419;;;:::o;21473:221::-;21613:34;21609:1;21601:6;21597:14;21590:58;21682:4;21677:2;21669:6;21665:15;21658:29;21473:221;:::o;21700:366::-;21842:3;21863:67;21927:2;21922:3;21863:67;:::i;:::-;21856:74;;21939:93;22028:3;21939:93;:::i;:::-;22057:2;22052:3;22048:12;22041:19;;21700:366;;;:::o;22072:419::-;22238:4;22276:2;22265:9;22261:18;22253:26;;22325:9;22319:4;22315:20;22311:1;22300:9;22296:17;22289:47;22353:131;22479:4;22353:131;:::i;:::-;22345:139;;22072:419;;;:::o;22497:224::-;22637:34;22633:1;22625:6;22621:14;22614:58;22706:7;22701:2;22693:6;22689:15;22682:32;22497:224;:::o;22727:366::-;22869:3;22890:67;22954:2;22949:3;22890:67;:::i;:::-;22883:74;;22966:93;23055:3;22966:93;:::i;:::-;23084:2;23079:3;23075:12;23068:19;;22727:366;;;:::o;23099:419::-;23265:4;23303:2;23292:9;23288:18;23280:26;;23352:9;23346:4;23342:20;23338:1;23327:9;23323:17;23316:47;23380:131;23506:4;23380:131;:::i;:::-;23372:139;;23099:419;;;:::o;23524:222::-;23664:34;23660:1;23652:6;23648:14;23641:58;23733:5;23728:2;23720:6;23716:15;23709:30;23524:222;:::o;23752:366::-;23894:3;23915:67;23979:2;23974:3;23915:67;:::i;:::-;23908:74;;23991:93;24080:3;23991:93;:::i;:::-;24109:2;24104:3;24100:12;24093:19;;23752:366;;;:::o;24124:419::-;24290:4;24328:2;24317:9;24313:18;24305:26;;24377:9;24371:4;24367:20;24363:1;24352:9;24348:17;24341:47;24405:131;24531:4;24405:131;:::i;:::-;24397:139;;24124:419;;;:::o;24549:228::-;24689:34;24685:1;24677:6;24673:14;24666:58;24758:11;24753:2;24745:6;24741:15;24734:36;24549:228;:::o;24783:366::-;24925:3;24946:67;25010:2;25005:3;24946:67;:::i;:::-;24939:74;;25022:93;25111:3;25022:93;:::i;:::-;25140:2;25135:3;25131:12;25124:19;;24783:366;;;:::o;25155:419::-;25321:4;25359:2;25348:9;25344:18;25336:26;;25408:9;25402:4;25398:20;25394:1;25383:9;25379:17;25372:47;25436:131;25562:4;25436:131;:::i;:::-;25428:139;;25155:419;;;:::o;25580:174::-;25720:26;25716:1;25708:6;25704:14;25697:50;25580:174;:::o;25760:366::-;25902:3;25923:67;25987:2;25982:3;25923:67;:::i;:::-;25916:74;;25999:93;26088:3;25999:93;:::i;:::-;26117:2;26112:3;26108:12;26101:19;;25760:366;;;:::o;26132:419::-;26298:4;26336:2;26325:9;26321:18;26313:26;;26385:9;26379:4;26375:20;26371:1;26360:9;26356:17;26349:47;26413:131;26539:4;26413:131;:::i;:::-;26405:139;;26132:419;;;:::o;26557:305::-;26597:3;26616:20;26634:1;26616:20;:::i;:::-;26611:25;;26650:20;26668:1;26650:20;:::i;:::-;26645:25;;26804:1;26736:66;26732:74;26729:1;26726:81;26723:107;;;26810:18;;:::i;:::-;26723:107;26854:1;26851;26847:9;26840:16;;26557:305;;;;:::o;26868:170::-;27008:22;27004:1;26996:6;26992:14;26985:46;26868:170;:::o;27044:366::-;27186:3;27207:67;27271:2;27266:3;27207:67;:::i;:::-;27200:74;;27283:93;27372:3;27283:93;:::i;:::-;27401:2;27396:3;27392:12;27385:19;;27044:366;;;:::o;27416:419::-;27582:4;27620:2;27609:9;27605:18;27597:26;;27669:9;27663:4;27659:20;27655:1;27644:9;27640:17;27633:47;27697:131;27823:4;27697:131;:::i;:::-;27689:139;;27416:419;;;:::o;27841:159::-;27981:11;27977:1;27969:6;27965:14;27958:35;27841:159;:::o;28006:365::-;28148:3;28169:66;28233:1;28228:3;28169:66;:::i;:::-;28162:73;;28244:93;28333:3;28244:93;:::i;:::-;28362:2;28357:3;28353:12;28346:19;;28006:365;;;:::o;28377:419::-;28543:4;28581:2;28570:9;28566:18;28558:26;;28630:9;28624:4;28620:20;28616:1;28605:9;28601:17;28594:47;28658:131;28784:4;28658:131;:::i;:::-;28650:139;;28377:419;;;:::o;28802:348::-;28842:7;28865:20;28883:1;28865:20;:::i;:::-;28860:25;;28899:20;28917:1;28899:20;:::i;:::-;28894:25;;29087:1;29019:66;29015:74;29012:1;29009:81;29004:1;28997:9;28990:17;28986:105;28983:131;;;29094:18;;:::i;:::-;28983:131;29142:1;29139;29135:9;29124:20;;28802:348;;;;:::o;29156:180::-;29204:77;29201:1;29194:88;29301:4;29298:1;29291:15;29325:4;29322:1;29315:15;29342:185;29382:1;29399:20;29417:1;29399:20;:::i;:::-;29394:25;;29433:20;29451:1;29433:20;:::i;:::-;29428:25;;29472:1;29462:35;;29477:18;;:::i;:::-;29462:35;29519:1;29516;29512:9;29507:14;;29342:185;;;;:::o;29533:114::-;29600:6;29634:5;29628:12;29618:22;;29533:114;;;:::o;29653:184::-;29752:11;29786:6;29781:3;29774:19;29826:4;29821:3;29817:14;29802:29;;29653:184;;;;:::o;29843:132::-;29910:4;29933:3;29925:11;;29963:4;29958:3;29954:14;29946:22;;29843:132;;;:::o;29981:108::-;30058:24;30076:5;30058:24;:::i;:::-;30053:3;30046:37;29981:108;;:::o;30095:179::-;30164:10;30185:46;30227:3;30219:6;30185:46;:::i;:::-;30263:4;30258:3;30254:14;30240:28;;30095:179;;;;:::o;30280:113::-;30350:4;30382;30377:3;30373:14;30365:22;;30280:113;;;:::o;30429:732::-;30548:3;30577:54;30625:5;30577:54;:::i;:::-;30647:86;30726:6;30721:3;30647:86;:::i;:::-;30640:93;;30757:56;30807:5;30757:56;:::i;:::-;30836:7;30867:1;30852:284;30877:6;30874:1;30871:13;30852:284;;;30953:6;30947:13;30980:63;31039:3;31024:13;30980:63;:::i;:::-;30973:70;;31066:60;31119:6;31066:60;:::i;:::-;31056:70;;30912:224;30899:1;30896;30892:9;30887:14;;30852:284;;;30856:14;31152:3;31145:10;;30553:608;;;30429:732;;;;:::o;31167:831::-;31430:4;31468:3;31457:9;31453:19;31445:27;;31482:71;31550:1;31539:9;31535:17;31526:6;31482:71;:::i;:::-;31563:80;31639:2;31628:9;31624:18;31615:6;31563:80;:::i;:::-;31690:9;31684:4;31680:20;31675:2;31664:9;31660:18;31653:48;31718:108;31821:4;31812:6;31718:108;:::i;:::-;31710:116;;31836:72;31904:2;31893:9;31889:18;31880:6;31836:72;:::i;:::-;31918:73;31986:3;31975:9;31971:19;31962:6;31918:73;:::i;:::-;31167:831;;;;;;;;:::o

Swarm Source

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