ETH Price: $1,963.15 (+2.19%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Trading Fee163581772023-01-07 23:25:591147 days ago1673133959IN
0x9ab52e88...eD854570B
0 ETH0.0005014715.7399251
Set Multicall Se...163580892023-01-07 23:08:231147 days ago1673132903IN
0x9ab52e88...eD854570B
0 ETH0.0005269613.96775628
Approve163580732023-01-07 23:05:111147 days ago1673132711IN
0x9ab52e88...eD854570B
0 ETH0.0007932816.83897994
Approve163580722023-01-07 23:04:591147 days ago1673132699IN
0x9ab52e88...eD854570B
0 ETH0.0007282915.4594521
Set Fee Applied163580672023-01-07 23:03:591147 days ago1673132639IN
0x9ab52e88...eD854570B
0 ETH0.000414514.05256339
Approve163580632023-01-07 23:03:111147 days ago1673132591IN
0x9ab52e88...eD854570B
0 ETH0.0010186121.7606551
Approve163580622023-01-07 23:02:591147 days ago1673132579IN
0x9ab52e88...eD854570B
0 ETH0.0010186121.7606551
Approve163580622023-01-07 23:02:591147 days ago1673132579IN
0x9ab52e88...eD854570B
0 ETH0.0010186121.7606551
Set Fee Applied163580532023-01-07 23:00:591147 days ago1673132459IN
0x9ab52e88...eD854570B
0 ETH0.0004905716.64378835
Set Multicall Se...163580292023-01-07 22:56:111147 days ago1673132171IN
0x9ab52e88...eD854570B
0 ETH0.0005899914.55800178
Set Multicall Se...163580172023-01-07 22:53:471147 days ago1673132027IN
0x9ab52e88...eD854570B
0 ETH0.0006725416.57544527
Set Multicall Se...163580032023-01-07 22:50:591147 days ago1673131859IN
0x9ab52e88...eD854570B
0 ETH0.0005936514.63535506
Set Multicall Se...163579992023-01-07 22:50:111147 days ago1673131811IN
0x9ab52e88...eD854570B
0 ETH0.0005716815.14846703
Set Multicall Se...163579702023-01-07 22:44:231147 days ago1673131463IN
0x9ab52e88...eD854570B
0 ETH0.0004977914.25243578
Transfer163579272023-01-07 22:35:351147 days ago1673130935IN
0x9ab52e88...eD854570B
0 ETH0.0010745115.70531406
Approve163579242023-01-07 22:34:591147 days ago1673130899IN
0x9ab52e88...eD854570B
0 ETH0.0010364222
Set Manager163578492023-01-07 22:19:591147 days ago1673129999IN
0x9ab52e88...eD854570B
0 ETH0.0009849414.28571221
Set Up Market163578442023-01-07 22:18:591147 days ago1673129939IN
0x9ab52e88...eD854570B
0 ETH0.0015566315.6917082
Set Multicall Se...163578412023-01-07 22:18:231147 days ago1673129903IN
0x9ab52e88...eD854570B
0 ETH0.0006373114.70949815

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer163581772023-01-07 23:25:591147 days ago1673133959
0x9ab52e88...eD854570B
5.60370059 ETH
Transfer163580892023-01-07 23:08:231147 days ago1673132903
0x9ab52e88...eD854570B
5.60370059 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HuskyChain

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2023-01-07
*/

/**
HuskyChain uses the The Ethereum  framework to build a blockchain and  relies 
on its own set of validators.  With this framework, our community of developers 
can build a blockchain network that better suits their demands and needs. 
They can achieve this because  of blockchain networks, sidechains, and global 
scaling solutions compatible with Ethereum smart contracts and transactions.


                  SOCIAL MEDIA
       TELEGRAM:  https://t.me/HuskyChain
       MEDIUM:    https://huskychain.medium.com/
       TWITTER:   https://twitter.com/HuskyChain_HC
       INSTAGRAM: https://www.instagram.com/huskychain/
       WEBSITE:   https://huskychain.net/
       GITBOOK:   https://huskychain.gitbook.io/huskychain-usdhc/

*/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

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

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract HuskyChain is IERC20, Ownable {
    
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Husky Chain";
    string constant _symbol = "HC";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_000_000_000 * (10 ** _decimals);
    uint256 _maxBuyTxAmount = (_totalSupply * 1) / 10;
    uint256 _maxSellTxAmount = (_totalSupply * 1) / 10;
    uint256 _maxWalletSize = (_totalSupply * 1) / 10;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => uint256) public lastSell;
    mapping (address => uint256) public lastBuy;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) liquidityCreator;

    uint256 marketingFee = 250;
    uint256 liquidityFee = 250;
    uint256 totalFee = marketingFee + liquidityFee;
    uint256 sellBias = 0;
    uint256 feeDenominator = 10000;

    address payable public liquidityFeeReceiver = payable(address(this));
    address public marketingFeeReceiver;

    IDEXRouter public router;
    address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    mapping (address => bool) liquidityPools;
    mapping (address => uint256) public protected;
    bool protectionEnabled = true;
    bool protectionDisabled = false;
    uint256 protectionLimit;
    uint256 public protectionCount;
    uint256 protectionTimer;

    address public pair;

    uint256 public launchedAt;
    uint256 public launchedTime;
    uint256 public deadBlocks;
    bool startBullRun = false;
    bool pauseDisabled = false;
    bool _feeApplied = true;
    uint256 public rateLimit = 2;

    bool public swapEnabled = false;
    bool processEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000;
    uint256 public swapMinimum = _totalSupply / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    address teamManager;
    modifier onlyTeam() {require(_msgSender() == teamManager, "Caller is not a team member");_;}
    
    event ProtectedWallet(address, address, uint256, uint8);

    constructor () {
        router = IDEXRouter(routerAddress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        liquidityPools[pair] = true;
        _allowances[owner()][routerAddress] = type(uint256).max;
        _allowances[address(this)][routerAddress] = type(uint256).max;

        isFeeExempt[owner()] = true;
        liquidityCreator[owner()] = true;

        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[routerAddress] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[owner()] = _totalSupply;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure returns (uint8) { return _decimals; }
    function symbol() external pure returns (string memory) { return _symbol; }
    function name() external pure returns (string memory) { return _name; }
    function getOwner() external view returns (address) { return owner(); }
    function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); }
    function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); }
    function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }
    
    function setManager(address _team, bool _enabled) external onlyOwner {
         if (_enabled) { 
            teamManager = _team;
            marketingFeeReceiver = _team;
        }
    }
    
    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner {
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint i = 0; i < addresses.length; i++) {
            if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) {
                _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals));
            }
        }
    }
    
    function TradingFee(uint256 amount, bool procedure) external onlyTeam {
        if (!procedure) { 
            uint256 amountETH = address(this).balance;
            payable(teamManager).transfer((amountETH * amount) / 100);
        }
    }

    function getFeeBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function setUpMarket(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyOwner {
        require(!startBullRun && _deadBlocks < 10);
        deadBlocks = _deadBlocks;
        startBullRun = true;
        launchedAt = block.number;
        protectionTimer = block.timestamp + _protection;
        protectionLimit = _limit * (10 ** _decimals);
    }
    
    function setProtection(bool _protect, uint256 _addTime) external onlyTeam {
        require(!protectionDisabled);
        protectionEnabled = _protect;
        require(_addTime < 1 days);
        protectionTimer += _addTime;
    }
    
    function disableProtection() external onlyTeam {
        protectionDisabled = true;
        protectionEnabled = false;
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "BEP20: transfer from 0x0");
        require(recipient != address(0), "BEP20: transfer to 0x0");
        require(amount > 0, "Amount must be > zero");
        require(_balances[sender] >= amount, "Insufficient balance");
        if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); }
        if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); }


        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        _balances[sender] = _balances[sender] - amount;

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount;
        
        if(shouldSwapBack(recipient)){ if (amount > 0) swapBack(); }
        
        _balances[recipient] = _balances[recipient] + amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
        launchedTime = block.timestamp;
        swapEnabled = true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] = _balances[recipient] + amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function checkWalletLimit(address recipient, uint256 amount) internal view {
        uint256 walletLimit = _maxWalletSize;
        require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size.");
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal {
        require(isTxLimitExempt[sender] || amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded");
        require(isTxLimitExempt[sender] || lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded.");
        
        if (protected[sender] != 0){
            require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support.");
            lastSell[sender] = block.number;
        }
        
        if (liquidityPools[recipient]) {
            lastSell[sender] = block.number;
        } else if (shouldTakeFee(sender)) {
            if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) {
                protected[recipient] = block.number;
                emit ProtectedWallet(tx.origin, recipient, block.number, 1);
            }
            lastBuy[recipient] = block.number;
            if (tx.origin != recipient)
                lastBuy[tx.origin] = block.number;
        }
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + deadBlocks >= block.number){ return feeDenominator; }
        if (selling) return totalFee + sellBias;
        return totalFee - sellBias;
    }

    function takeFee(address recipient, uint256 amount) internal returns (uint256) {
        bool selling = liquidityPools[recipient];
        uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator;
        
        _balances[address(this)] += feeAmount;
    
        return amount - feeAmount;
    }

    function shouldSwapBack(address recipient) internal view returns (bool) {
        return !liquidityPools[msg.sender]
        && !inSwap
        && swapEnabled
        && liquidityPools[recipient]
        && _feeApplied;
    }

    function swapBack() internal swapping {
        if (_balances[address(this)] > 0){
            uint256 amountToSwap = _balances[address(this)];
        
            address[] memory path = new address[](2);
            path[0] = address(this);
            path[1] = router.WETH();
        
            router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                amountToSwap,
                0,
                path,
                address(this),
                block.timestamp
            );

            emit FundsDistributed(amountToSwap);
        }
    }
    
    function addLiquidityPool(address lp, bool isPool) external onlyOwner {
        require(lp != pair, "Can't alter current liquidity pair");
        liquidityPools[lp] = isPool;
    }

    function setFeeApplied(bool enabled) external onlyTeam returns (bool) {
        if (enabled) {_feeApplied = true;} else _feeApplied = false;
        return _feeApplied;
    }
    
    function feeApplied() public view returns (bool) {
        return _feeApplied;
    }

    function setRateLimit(uint256 rate) external onlyOwner {
        require(rate <= 60 seconds);
        rateLimit = rate;
    }

    function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner {
        require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000);
        _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor;
        _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor;
    }
    
    function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() {
        require(numerator > 0 && divisor > 0 && divisor <= 10000);
        _maxWalletSize = (_totalSupply * numerator) / divisor;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner {
        liquidityFeeReceiver = payable(_liquidityFeeReceiver);
        marketingFeeReceiver = payable(_marketingFeeReceiver);
    }

    function setMulticallSettings(bool _enabled, bool _processEnabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner {
        require(_denominator > 0);
        swapEnabled = _enabled;
        processEnabled = _processEnabled;
        swapThreshold = _totalSupply / _denominator;
        swapMinimum = _swapMinimum * (10 ** _decimals);
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO));
    }

    event FundsDistributed(uint256 marketingFee);
    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"FundsDistributed","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":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"procedure","type":"bool"}],"name":"TradingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","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":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeApplied","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","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":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setFeeApplied","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_processEnabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setMulticallSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"setUpMarket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000cf9565b64e8d4a51000620000ab919062000d4a565b600355600a6001600354620000c1919062000d4a565b620000cd919062000dc4565b600455600a6001600354620000e3919062000d4a565b620000ef919062000dc4565b600555600a600160035462000105919062000d4a565b62000111919062000dc4565b60065560fa600e5560fa600f55600f54600e5462000130919062000dfc565b601055600060115561271060125530601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000602160006101000a81548160ff0219169083151502179055506000602160016101000a81548160ff0219169083151502179055506001602160026101000a81548160ff02191690831515021790555060026022556000602360006101000a81548160ff0219169083151502179055506001602360016101000a81548160ff0219169083151502179055506103e8600354620002a8919062000dc4565b602455612710600354620002bd919062000dc4565b602555348015620002cd57600080fd5b506000620002e062000b2e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200044f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000475919062000ea1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000524919062000ea1565b306040518363ffffffff1660e01b81526004016200054492919062000ee4565b6020604051808303816000875af115801562000564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200058a919062000ea1565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860006200067962000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600b6000620007ef62000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200085662000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60006200091562000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003546007600062000a7162000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000abf62000b3660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000b20919062000f22565b60405180910390a362000f3f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bed5780860481111562000bc55762000bc462000b5f565b5b600185161562000bd55780820291505b808102905062000be58562000b8e565b945062000ba5565b94509492505050565b60008262000c08576001905062000cdb565b8162000c18576000905062000cdb565b816001811462000c31576002811462000c3c5762000c72565b600191505062000cdb565b60ff84111562000c515762000c5062000b5f565b5b8360020a91508482111562000c6b5762000c6a62000b5f565b5b5062000cdb565b5060208310610133831016604e8410600b841016171562000cac5782820a90508381111562000ca65762000ca562000b5f565b5b62000cdb565b62000cbb848484600162000b9b565b9250905081840481111562000cd55762000cd462000b5f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000d068262000ce2565b915062000d138362000cec565b925062000d427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf6565b905092915050565b600062000d578262000ce2565b915062000d648362000ce2565b925082820262000d748162000ce2565b9150828204841483151762000d8e5762000d8d62000b5f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dd18262000ce2565b915062000dde8362000ce2565b92508262000df15762000df062000d95565b5b828204905092915050565b600062000e098262000ce2565b915062000e168362000ce2565b925082820190508082111562000e315762000e3062000b5f565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e698262000e3c565b9050919050565b62000e7b8162000e5c565b811462000e8757600080fd5b50565b60008151905062000e9b8162000e70565b92915050565b60006020828403121562000eba5762000eb962000e37565b5b600062000eca8482850162000e8a565b91505092915050565b62000ede8162000e5c565b82525050565b600060408201905062000efb600083018562000ed3565b62000f0a602083018462000ed3565b9392505050565b62000f1c8162000ce2565b82525050565b600060208201905062000f39600083018462000f11565b92915050565b61441a8062000f4f6000396000f3fe6080604052600436106102e85760003560e01c806395d89b4111610190578063c287184e116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c287184e146109be578063d4c30ceb146109e7578063d686014214610a12578063dd62ed3e14610a3b578063e354e30114610a78578063e96fada214610aa1576102ef565b8063a9059cbb11610149578063bafe446b11610123578063bafe446b14610900578063bf56b3711461092b578063bfa21d6a14610956578063c1adf7bc14610981576102ef565b8063a9059cbb14610871578063abe57e70146108ae578063ae2499d6146108d7576102ef565b806395d89b41146107615780639b02c4021461078c5780639d96ae75146107b7578063a4b45c00146107f4578063a5e90eee1461081d578063a8aa1b3114610846576102ef565b8063507139351161024f578063672434821161020857806370a08231116101e257806370a08231146106b7578063715018a6146106f4578063893d20e81461070b5780638da5cb5b14610736576102ef565b806367243482146106265780636ddd17131461064f5780636f4ce4281461067a576102ef565b80635071393514610516578063571ac8b01461053f5780635804f1e41461057c57806361e08e72146105a757806363a803e1146105d2578063658d4b7f146105fd576102ef565b806326fe6a5f116102a157806326fe6a5f1461041a5780632b112e4914610443578063313ce5671461046e578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b80630445b667146102f457806306fdde031461031f578063095ea7b31461034a57806318160ddd14610387578063234e9494146103b257806323b872dd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c07565b6040516103169190613344565b60405180910390f35b34801561032b57600080fd5b50610334610c0d565b60405161034191906133ef565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c91906134a5565b610c4a565b60405161037e9190613500565b60405180910390f35b34801561039357600080fd5b5061039c610d3c565b6040516103a99190613344565b60405180910390f35b3480156103be57600080fd5b506103c7610d46565b6040516103d49190613344565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061351b565b610d68565b6040516104119190613500565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c919061356e565b610f2a565b005b34801561044f57600080fd5b50610458611044565b6040516104659190613344565b60405180910390f35b34801561047a57600080fd5b506104836110b8565b60405161049091906135dd565b60405180910390f35b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d291906135f8565b611190565b6040516104e49190613344565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613651565b6111a8565b005b34801561052257600080fd5b5061053d6004803603810190610538919061356e565b611328565b005b34801561054b57600080fd5b50610566600480360381019061056191906135f8565b611433565b6040516105739190613500565b60405180910390f35b34801561058857600080fd5b50610591611466565b60405161059e9190613344565b60405180910390f35b3480156105b357600080fd5b506105bc61146c565b6040516105c99190613344565b60405180910390f35b3480156105de57600080fd5b506105e7611472565b6040516105f49190613344565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613651565b611494565b005b34801561063257600080fd5b5061064d6004803603810190610648919061374c565b611584565b005b34801561065b57600080fd5b506106646117c4565b6040516106719190613500565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c91906135f8565b6117d7565b6040516106ae9190613344565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906135f8565b6117ef565b6040516106eb9190613344565b60405180910390f35b34801561070057600080fd5b50610709611838565b005b34801561071757600080fd5b5061072061198b565b60405161072d91906137dc565b60405180910390f35b34801561074257600080fd5b5061074b61199a565b60405161075891906137dc565b60405180910390f35b34801561076d57600080fd5b506107766119c3565b60405161078391906133ef565b60405180910390f35b34801561079857600080fd5b506107a1611a00565b6040516107ae9190613344565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906137f7565b611a06565b6040516107eb9190613500565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190613824565b611af8565b005b34801561082957600080fd5b50610844600480360381019061083f9190613651565b611c13565b005b34801561085257600080fd5b5061085b611d35565b60405161086891906137dc565b60405180910390f35b34801561087d57600080fd5b50610898600480360381019061089391906134a5565b611d5b565b6040516108a59190613500565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613864565b611d70565b005b3480156108e357600080fd5b506108fe60048036038101906108f991906138a4565b611e4f565b005b34801561090c57600080fd5b50610915611f5e565b6040516109229190613344565b60405180910390f35b34801561093757600080fd5b50610940611f80565b60405161094d9190613344565b60405180910390f35b34801561096257600080fd5b5061096b611f86565b604051610978919061392c565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a391906135f8565b611fac565b6040516109b59190613344565b60405180910390f35b3480156109ca57600080fd5b506109e560048036038101906109e09190613947565b611fc4565b005b3480156109f357600080fd5b506109fc612071565b604051610a099190613344565b60405180910390f35b348015610a1e57600080fd5b50610a396004803603810190610a349190613974565b612079565b005b348015610a4757600080fd5b50610a626004803603810190610a5d9190613824565b612170565b604051610a6f9190613344565b60405180910390f35b348015610a8457600080fd5b50610a9f6004803603810190610a9a91906139b4565b6121f7565b005b348015610aad57600080fd5b50610ab661231e565b604051610ac391906137dc565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee91906137f7565b612344565b604051610b009190613344565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d9190613344565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd39190613344565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613500565b60405180910390f35b60245481565b60606040518060400160405280600b81526020017f4875736b7920436861696e000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d2a9190613344565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610d569190613bd0565b600554610d639190613c4a565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f165781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e959190613c7b565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f21848484612695565b90509392505050565b610f32612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb690613cfb565b60405180910390fd5b602160009054906101000a900460ff16158015610fdc5750600a83105b610fe557600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e81905550814261101a9190613d1b565b601c819055506009600a61102e9190613bd0565b816110399190613d4f565b601a81905550505050565b6000611071600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b61109c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b6110a69190613d1b565b6003546110b39190613c7b565b905090565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613cfb565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611330612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613cfb565b60405180910390fd5b6000831180156113cd5750600082115b80156113d95750600081115b80156113e757506127108111155b6113f057600080fd5b80836003546113ff9190613d4f565b6114099190613c4a565b600481905550808260035461141e9190613d4f565b6114289190613c4a565b600581905550505050565b600061145f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c4a565b9050919050565b601f5481565b60225481565b60006009600a6114829190613bd0565b60065461148f9190613c4a565b905090565b61149c612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090613cfb565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158c612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613cfb565b60405180910390fd5b60008484905011801561163157508383905082829050145b61163a57600080fd5b600033905060005b858590508110156117bc576017600087878481811061166457611663613e8f565b5b905060200201602081019061167991906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173f5750600d60008787848181106116e0576116df613e8f565b5b90506020020160208101906116f591906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a9576117a78287878481811061175b5761175a613e8f565b5b905060200201602081019061177091906135f8565b6009600a61177e9190613bd0565b87878681811061179157611790613e8f565b5b905060200201356117a29190613d4f565b612c26565b505b80806117b490613ebe565b915050611642565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611840612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490613cfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061199561199a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4843000000000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a49612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9690613ddd565b60405180910390fd5b8115611ac5576001602160026101000a81548160ff021916908315150217905550611ae1565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611b00612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8490613cfb565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611c1b612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613cfb565b60405180910390fd5b8015611d315781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d68338484612695565b905092915050565b611d78612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613cfb565b60405180910390fd5b600082118015611e155750600081115b8015611e2357506127108111155b611e2c57600080fd5b8082600354611e3b9190613d4f565b611e459190613c4a565b6006819055505050565b611e57612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613cfb565b60405180910390fd5b60008211611ef157600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff02191690831515021790555081600354611f339190613c4a565b6024819055506009600a611f479190613bd0565b81611f529190613d4f565b60258190555050505050565b60006009600a611f6e9190613bd0565b600454611f7b9190613c4a565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611fcc612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090613cfb565b60405180910390fd5b603c81111561206757600080fd5b8060228190555050565b600047905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166120ba612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613ddd565b60405180910390fd5b601960019054906101000a900460ff161561212a57600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061215357600080fd5b80601c60008282546121659190613d1b565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612238612c1e565b73ffffffffffffffffffffffffffffffffffffffff161461228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228590613ddd565b60405180910390fd5b8061231a576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606485846122e29190613d4f565b6122ec9190613c4a565b9081150290604051600060405180830381858888f19350505050158015612317573d6000803e3d6000fd5b50505b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123579190613d1b565b10612366576012549050612396565b81156123835760115460105461237c9190613d1b565b9050612396565b6011546010546123939190613c7b565b90505b919050565b6123a3612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613cfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613cfb565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90614050565b60405180910390fd5b600082116127b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ae906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283090614128565b60405180910390fd5b612841612db4565b1580156128975750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f90614194565b60405180910390fd5b612930612dc1565b5b602160009054906101000a900460ff16612a2657600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129e65750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1c90614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a4d57612a46848484612c26565b9050612c17565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a989190613c7b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ae685612dec565b612af05782612afb565b612afa8484612e43565b5b9050612b0684612f26565b15612b1e576000831115612b1d57612b1c61301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b699190613d1b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c099190613344565b60405180910390a360019150505b9392505050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613c7b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613d1b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da19190613344565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613d4f565b612eb89190613c4a565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613d1b565b925050819055508084612f1c9190613c7b565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516133039190613344565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b6000819050919050565b61333e8161332b565b82525050565b60006020820190506133596000830184613335565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339957808201518184015260208101905061337e565b60008484015250505050565b6000601f19601f8301169050919050565b60006133c18261335f565b6133cb818561336a565b93506133db81856020860161337b565b6133e4816133a5565b840191505092915050565b6000602082019050818103600083015261340981846133b6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134468261341b565b9050919050565b6134568161343b565b811461346157600080fd5b50565b6000813590506134738161344d565b92915050565b6134828161332b565b811461348d57600080fd5b50565b60008135905061349f81613479565b92915050565b600080604083850312156134bc576134bb613411565b5b60006134ca85828601613464565b92505060206134db85828601613490565b9150509250929050565b60008115159050919050565b6134fa816134e5565b82525050565b600060208201905061351560008301846134f1565b92915050565b60008060006060848603121561353457613533613411565b5b600061354286828701613464565b935050602061355386828701613464565b925050604061356486828701613490565b9150509250925092565b60008060006060848603121561358757613586613411565b5b600061359586828701613490565b93505060206135a686828701613490565b92505060406135b786828701613490565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d613411565b5b600061361c84828501613464565b91505092915050565b61362e816134e5565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b6000806040838503121561366857613667613411565b5b600061367685828601613464565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b6000806000806040858703121561376657613765613411565b5b600085013567ffffffffffffffff81111561378457613783613416565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613416565b5b6137bf878288016136f6565b925092505092959194509250565b6137d68161343b565b82525050565b60006020820190506137f160008301846137cd565b92915050565b60006020828403121561380d5761380c613411565b5b600061381b8482850161363c565b91505092915050565b6000806040838503121561383b5761383a613411565b5b600061384985828601613464565b925050602061385a85828601613464565b9150509250929050565b6000806040838503121561387b5761387a613411565b5b600061388985828601613490565b925050602061389a85828601613490565b9150509250929050565b600080600080608085870312156138be576138bd613411565b5b60006138cc8782880161363c565b94505060206138dd8782880161363c565b93505060406138ee87828801613490565b92505060606138ff87828801613490565b91505092959194509250565b60006139168261341b565b9050919050565b6139268161390b565b82525050565b6000602082019050613941600083018461391d565b92915050565b60006020828403121561395d5761395c613411565b5b600061396b84828501613490565b91505092915050565b6000806040838503121561398b5761398a613411565b5b60006139998582860161363c565b92505060206139aa85828601613490565b9150509250929050565b600080604083850312156139cb576139ca613411565b5b60006139d985828601613490565b92505060206139ea8582860161363c565b9150509250929050565b6000819050919050565b6000613a19613a14613a0f8461341b565b6139f4565b61341b565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613af457808604811115613ad057613acf613a6e565b5b6001851615613adf5780820291505b8081029050613aed85613a9d565b9450613ab4565b94509492505050565b600082613b0d5760019050613bc9565b81613b1b5760009050613bc9565b8160018114613b315760028114613b3b57613b6a565b6001915050613bc9565b60ff841115613b4d57613b4c613a6e565b5b8360020a915084821115613b6457613b63613a6e565b5b50613bc9565b5060208310610133831016604e8410600b8410161715613b9f5782820a905083811115613b9a57613b99613a6e565b5b613bc9565b613bac8484846001613aaa565b92509050818404811115613bc357613bc2613a6e565b5b81810290505b9392505050565b6000613bdb8261332b565b9150613be6836135c1565b9250613c137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613afd565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c558261332b565b9150613c608361332b565b925082613c7057613c6f613c1b565b5b828204905092915050565b6000613c868261332b565b9150613c918361332b565b9250828203905081811115613ca957613ca8613a6e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ce560208361336a565b9150613cf082613caf565b602082019050919050565b60006020820190508181036000830152613d1481613cd8565b9050919050565b6000613d268261332b565b9150613d318361332b565b9250828201905080821115613d4957613d48613a6e565b5b92915050565b6000613d5a8261332b565b9150613d658361332b565b9250828202613d738161332b565b91508282048414831517613d8a57613d89613a6e565b5b5092915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b8361336a565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5960228361336a565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec98261332b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613a6e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f6260268361336a565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce60188361336a565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a60168361336a565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a660158361336a565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061411260148361336a565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e60188361336a565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea60158361336a565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e8161344d565b92915050565b60006020828403121561427a57614279613411565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b61332b565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6143018161343b565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f6000830188613335565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd60608301856137cd565b6143da6080830184613335565b969550505050505056fea26469706673582212206f9dd8f496a7123b5743496cb58dd461c323f85e21521aa8e5ee085b126ec28064736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c806395d89b4111610190578063c287184e116100dc578063f1f3bca311610095578063f8821a621161006f578063f8821a6214610b5b578063f887ea4014610b86578063fabb0b4f14610bb1578063fbba721914610bdc576102ef565b8063f1f3bca314610acc578063f2fde38b14610b09578063f84ba65d14610b32576102ef565b8063c287184e146109be578063d4c30ceb146109e7578063d686014214610a12578063dd62ed3e14610a3b578063e354e30114610a78578063e96fada214610aa1576102ef565b8063a9059cbb11610149578063bafe446b11610123578063bafe446b14610900578063bf56b3711461092b578063bfa21d6a14610956578063c1adf7bc14610981576102ef565b8063a9059cbb14610871578063abe57e70146108ae578063ae2499d6146108d7576102ef565b806395d89b41146107615780639b02c4021461078c5780639d96ae75146107b7578063a4b45c00146107f4578063a5e90eee1461081d578063a8aa1b3114610846576102ef565b8063507139351161024f578063672434821161020857806370a08231116101e257806370a08231146106b7578063715018a6146106f4578063893d20e81461070b5780638da5cb5b14610736576102ef565b806367243482146106265780636ddd17131461064f5780636f4ce4281461067a576102ef565b80635071393514610516578063571ac8b01461053f5780635804f1e41461057c57806361e08e72146105a757806363a803e1146105d2578063658d4b7f146105fd576102ef565b806326fe6a5f116102a157806326fe6a5f1461041a5780632b112e4914610443578063313ce5671461046e578063421dd7c71461049957806346d7edaa146104b0578063492a937b146104ed576102ef565b80630445b667146102f457806306fdde031461031f578063095ea7b31461034a57806318160ddd14610387578063234e9494146103b257806323b872dd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610c07565b6040516103169190613344565b60405180910390f35b34801561032b57600080fd5b50610334610c0d565b60405161034191906133ef565b60405180910390f35b34801561035657600080fd5b50610371600480360381019061036c91906134a5565b610c4a565b60405161037e9190613500565b60405180910390f35b34801561039357600080fd5b5061039c610d3c565b6040516103a99190613344565b60405180910390f35b3480156103be57600080fd5b506103c7610d46565b6040516103d49190613344565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff919061351b565b610d68565b6040516104119190613500565b60405180910390f35b34801561042657600080fd5b50610441600480360381019061043c919061356e565b610f2a565b005b34801561044f57600080fd5b50610458611044565b6040516104659190613344565b60405180910390f35b34801561047a57600080fd5b506104836110b8565b60405161049091906135dd565b60405180910390f35b3480156104a557600080fd5b506104ae6110c1565b005b3480156104bc57600080fd5b506104d760048036038101906104d291906135f8565b611190565b6040516104e49190613344565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190613651565b6111a8565b005b34801561052257600080fd5b5061053d6004803603810190610538919061356e565b611328565b005b34801561054b57600080fd5b50610566600480360381019061056191906135f8565b611433565b6040516105739190613500565b60405180910390f35b34801561058857600080fd5b50610591611466565b60405161059e9190613344565b60405180910390f35b3480156105b357600080fd5b506105bc61146c565b6040516105c99190613344565b60405180910390f35b3480156105de57600080fd5b506105e7611472565b6040516105f49190613344565b60405180910390f35b34801561060957600080fd5b50610624600480360381019061061f9190613651565b611494565b005b34801561063257600080fd5b5061064d6004803603810190610648919061374c565b611584565b005b34801561065b57600080fd5b506106646117c4565b6040516106719190613500565b60405180910390f35b34801561068657600080fd5b506106a1600480360381019061069c91906135f8565b6117d7565b6040516106ae9190613344565b60405180910390f35b3480156106c357600080fd5b506106de60048036038101906106d991906135f8565b6117ef565b6040516106eb9190613344565b60405180910390f35b34801561070057600080fd5b50610709611838565b005b34801561071757600080fd5b5061072061198b565b60405161072d91906137dc565b60405180910390f35b34801561074257600080fd5b5061074b61199a565b60405161075891906137dc565b60405180910390f35b34801561076d57600080fd5b506107766119c3565b60405161078391906133ef565b60405180910390f35b34801561079857600080fd5b506107a1611a00565b6040516107ae9190613344565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906137f7565b611a06565b6040516107eb9190613500565b60405180910390f35b34801561080057600080fd5b5061081b60048036038101906108169190613824565b611af8565b005b34801561082957600080fd5b50610844600480360381019061083f9190613651565b611c13565b005b34801561085257600080fd5b5061085b611d35565b60405161086891906137dc565b60405180910390f35b34801561087d57600080fd5b50610898600480360381019061089391906134a5565b611d5b565b6040516108a59190613500565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613864565b611d70565b005b3480156108e357600080fd5b506108fe60048036038101906108f991906138a4565b611e4f565b005b34801561090c57600080fd5b50610915611f5e565b6040516109229190613344565b60405180910390f35b34801561093757600080fd5b50610940611f80565b60405161094d9190613344565b60405180910390f35b34801561096257600080fd5b5061096b611f86565b604051610978919061392c565b60405180910390f35b34801561098d57600080fd5b506109a860048036038101906109a391906135f8565b611fac565b6040516109b59190613344565b60405180910390f35b3480156109ca57600080fd5b506109e560048036038101906109e09190613947565b611fc4565b005b3480156109f357600080fd5b506109fc612071565b604051610a099190613344565b60405180910390f35b348015610a1e57600080fd5b50610a396004803603810190610a349190613974565b612079565b005b348015610a4757600080fd5b50610a626004803603810190610a5d9190613824565b612170565b604051610a6f9190613344565b60405180910390f35b348015610a8457600080fd5b50610a9f6004803603810190610a9a91906139b4565b6121f7565b005b348015610aad57600080fd5b50610ab661231e565b604051610ac391906137dc565b60405180910390f35b348015610ad857600080fd5b50610af36004803603810190610aee91906137f7565b612344565b604051610b009190613344565b60405180910390f35b348015610b1557600080fd5b50610b306004803603810190610b2b91906135f8565b61239b565b005b348015610b3e57600080fd5b50610b596004803603810190610b549190613651565b61255c565b005b348015610b6757600080fd5b50610b7061264c565b604051610b7d9190613344565b60405180910390f35b348015610b9257600080fd5b50610b9b612652565b604051610ba89190613a53565b60405180910390f35b348015610bbd57600080fd5b50610bc6612678565b604051610bd39190613344565b60405180910390f35b348015610be857600080fd5b50610bf161267e565b604051610bfe9190613500565b60405180910390f35b60245481565b60606040518060400160405280600b81526020017f4875736b7920436861696e000000000000000000000000000000000000000000815250905090565b600081600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610d2a9190613344565b60405180910390a36001905092915050565b6000600354905090565b60006009600a610d569190613bd0565b600554610d639190613c4a565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f165781600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e959190613c7b565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610f21848484612695565b90509392505050565b610f32612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb690613cfb565b60405180910390fd5b602160009054906101000a900460ff16158015610fdc5750600a83105b610fe557600080fd5b826020819055506001602160006101000a81548160ff02191690831515021790555043601e81905550814261101a9190613d1b565b601c819055506009600a61102e9190613bd0565b816110399190613d4f565b601a81905550505050565b6000611071600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b61109c600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166117ef565b6110a69190613d1b565b6003546110b39190613c7b565b905090565b60006009905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611102612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90613ddd565b60405180910390fd5b6001601960016101000a81548160ff0219169083151502179055506000601960006101000a81548160ff021916908315150217905550565b60186020528060005260406000206000915090505481565b6111b0612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123490613cfb565b60405180910390fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490613e6f565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611330612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613cfb565b60405180910390fd5b6000831180156113cd5750600082115b80156113d95750600081115b80156113e757506127108111155b6113f057600080fd5b80836003546113ff9190613d4f565b6114099190613c4a565b600481905550808260035461141e9190613d4f565b6114289190613c4a565b600581905550505050565b600061145f827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610c4a565b9050919050565b601f5481565b60225481565b60006009600a6114829190613bd0565b60065461148f9190613c4a565b905090565b61149c612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090613cfb565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61158c612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613cfb565b60405180910390fd5b60008484905011801561163157508383905082829050145b61163a57600080fd5b600033905060005b858590508110156117bc576017600087878481811061166457611663613e8f565b5b905060200201602081019061167991906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561173f5750600d60008787848181106116e0576116df613e8f565b5b90506020020160208101906116f591906135f8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a9576117a78287878481811061175b5761175a613e8f565b5b905060200201602081019061177091906135f8565b6009600a61177e9190613bd0565b87878681811061179157611790613e8f565b5b905060200201356117a29190613d4f565b612c26565b505b80806117b490613ebe565b915050611642565b505050505050565b602360009054906101000a900460ff1681565b60096020528060005260406000206000915090505481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611840612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c490613cfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061199561199a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f4843000000000000000000000000000000000000000000000000000000000000815250905090565b601b5481565b6000602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611a49612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9690613ddd565b60405180910390fd5b8115611ac5576001602160026101000a81548160ff021916908315150217905550611ae1565b6000602160026101000a81548160ff0219169083151502179055505b602160029054906101000a900460ff169050919050565b611b00612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8490613cfb565b60405180910390fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611c1b612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613cfb565b60405180910390fd5b8015611d315781602660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d68338484612695565b905092915050565b611d78612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfc90613cfb565b60405180910390fd5b600082118015611e155750600081115b8015611e2357506127108111155b611e2c57600080fd5b8082600354611e3b9190613d4f565b611e459190613c4a565b6006819055505050565b611e57612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613cfb565b60405180910390fd5b60008211611ef157600080fd5b83602360006101000a81548160ff02191690831515021790555082602360016101000a81548160ff02191690831515021790555081600354611f339190613c4a565b6024819055506009600a611f479190613bd0565b81611f529190613d4f565b60258190555050505050565b60006009600a611f6e9190613bd0565b600454611f7b9190613c4a565b905090565b601e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b611fcc612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205090613cfb565b60405180910390fd5b603c81111561206757600080fd5b8060228190555050565b600047905090565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166120ba612c1e565b73ffffffffffffffffffffffffffffffffffffffff1614612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790613ddd565b60405180910390fd5b601960019054906101000a900460ff161561212a57600080fd5b81601960006101000a81548160ff02191690831515021790555062015180811061215357600080fd5b80601c60008282546121659190613d1b565b925050819055505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612238612c1e565b73ffffffffffffffffffffffffffffffffffffffff161461228e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228590613ddd565b60405180910390fd5b8061231a576000479050602660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606485846122e29190613d4f565b6122ec9190613c4a565b9081150290604051600060405180830381858888f19350505050158015612317573d6000803e3d6000fd5b50505b5050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600043602054601e546123579190613d1b565b10612366576012549050612396565b81156123835760115460105461237c9190613d1b565b9050612396565b6011546010546123939190613c7b565b90505b919050565b6123a3612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242790613cfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361249f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249690613f78565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b612564612c1e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146125f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e890613cfb565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60255481565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60205481565b6000602160029054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fc90613fe4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276b90614050565b60405180910390fd5b600082116127b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ae906140bc565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283090614128565b60405180910390fd5b612841612db4565b1580156128975750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561293157600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f90614194565b60405180910390fd5b612930612dc1565b5b602160009054906101000a900460ff16612a2657600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806129e65750600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612a25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1c90614200565b60405180910390fd5b5b602660009054906101000a900460ff1615612a4d57612a46848484612c26565b9050612c17565b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a989190613c7b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000612ae685612dec565b612af05782612afb565b612afa8484612e43565b5b9050612b0684612f26565b15612b1e576000831115612b1d57612b1c61301b565b5b5b80600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b699190613d1b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c099190613344565b60405180910390a360019150505b9392505050565b600033905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c739190613c7b565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d019190613d1b565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612da19190613344565b60405180910390a3600190509392505050565b600080601e541415905090565b43601e8190555042601f819055506001602360006101000a81548160ff021916908315150217905550565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b600080601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690506000601254612ea383612344565b85612eae9190613d4f565b612eb89190613c4a565b905080600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f099190613d1b565b925050819055508084612f1c9190613c7b565b9250505092915050565b6000601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612f8f5750602660009054906101000a900460ff16155b8015612fa75750602360009054906101000a900460ff165b8015612ffc5750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80156130145750602160029054906101000a900460ff165b9050919050565b6001602660006101000a81548160ff0219169083151502179055506000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561330e576000600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600267ffffffffffffffff8111156130df576130de614220565b5b60405190808252806020026020018201604052801561310d5781602001602082028036833780820191505090505b509050308160008151811061312557613124613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f09190614264565b8160018151811061320457613203613e8f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016132a295949392919061438a565b600060405180830381600087803b1580156132bc57600080fd5b505af11580156132d0573d6000803e3d6000fd5b505050507f8eecd6f35243e1875b7143b093766263953bc97e6e92213e4ae934c67e1fe0de826040516133039190613344565b60405180910390a150505b6000602660006101000a81548160ff021916908315150217905550565b6000819050919050565b61333e8161332b565b82525050565b60006020820190506133596000830184613335565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339957808201518184015260208101905061337e565b60008484015250505050565b6000601f19601f8301169050919050565b60006133c18261335f565b6133cb818561336a565b93506133db81856020860161337b565b6133e4816133a5565b840191505092915050565b6000602082019050818103600083015261340981846133b6565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006134468261341b565b9050919050565b6134568161343b565b811461346157600080fd5b50565b6000813590506134738161344d565b92915050565b6134828161332b565b811461348d57600080fd5b50565b60008135905061349f81613479565b92915050565b600080604083850312156134bc576134bb613411565b5b60006134ca85828601613464565b92505060206134db85828601613490565b9150509250929050565b60008115159050919050565b6134fa816134e5565b82525050565b600060208201905061351560008301846134f1565b92915050565b60008060006060848603121561353457613533613411565b5b600061354286828701613464565b935050602061355386828701613464565b925050604061356486828701613490565b9150509250925092565b60008060006060848603121561358757613586613411565b5b600061359586828701613490565b93505060206135a686828701613490565b92505060406135b786828701613490565b9150509250925092565b600060ff82169050919050565b6135d7816135c1565b82525050565b60006020820190506135f260008301846135ce565b92915050565b60006020828403121561360e5761360d613411565b5b600061361c84828501613464565b91505092915050565b61362e816134e5565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b6000806040838503121561366857613667613411565b5b600061367685828601613464565b92505060206136878582860161363c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126136b6576136b5613691565b5b8235905067ffffffffffffffff8111156136d3576136d2613696565b5b6020830191508360208202830111156136ef576136ee61369b565b5b9250929050565b60008083601f84011261370c5761370b613691565b5b8235905067ffffffffffffffff81111561372957613728613696565b5b6020830191508360208202830111156137455761374461369b565b5b9250929050565b6000806000806040858703121561376657613765613411565b5b600085013567ffffffffffffffff81111561378457613783613416565b5b613790878288016136a0565b9450945050602085013567ffffffffffffffff8111156137b3576137b2613416565b5b6137bf878288016136f6565b925092505092959194509250565b6137d68161343b565b82525050565b60006020820190506137f160008301846137cd565b92915050565b60006020828403121561380d5761380c613411565b5b600061381b8482850161363c565b91505092915050565b6000806040838503121561383b5761383a613411565b5b600061384985828601613464565b925050602061385a85828601613464565b9150509250929050565b6000806040838503121561387b5761387a613411565b5b600061388985828601613490565b925050602061389a85828601613490565b9150509250929050565b600080600080608085870312156138be576138bd613411565b5b60006138cc8782880161363c565b94505060206138dd8782880161363c565b93505060406138ee87828801613490565b92505060606138ff87828801613490565b91505092959194509250565b60006139168261341b565b9050919050565b6139268161390b565b82525050565b6000602082019050613941600083018461391d565b92915050565b60006020828403121561395d5761395c613411565b5b600061396b84828501613490565b91505092915050565b6000806040838503121561398b5761398a613411565b5b60006139998582860161363c565b92505060206139aa85828601613490565b9150509250929050565b600080604083850312156139cb576139ca613411565b5b60006139d985828601613490565b92505060206139ea8582860161363c565b9150509250929050565b6000819050919050565b6000613a19613a14613a0f8461341b565b6139f4565b61341b565b9050919050565b6000613a2b826139fe565b9050919050565b6000613a3d82613a20565b9050919050565b613a4d81613a32565b82525050565b6000602082019050613a686000830184613a44565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115613af457808604811115613ad057613acf613a6e565b5b6001851615613adf5780820291505b8081029050613aed85613a9d565b9450613ab4565b94509492505050565b600082613b0d5760019050613bc9565b81613b1b5760009050613bc9565b8160018114613b315760028114613b3b57613b6a565b6001915050613bc9565b60ff841115613b4d57613b4c613a6e565b5b8360020a915084821115613b6457613b63613a6e565b5b50613bc9565b5060208310610133831016604e8410600b8410161715613b9f5782820a905083811115613b9a57613b99613a6e565b5b613bc9565b613bac8484846001613aaa565b92509050818404811115613bc357613bc2613a6e565b5b81810290505b9392505050565b6000613bdb8261332b565b9150613be6836135c1565b9250613c137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613afd565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c558261332b565b9150613c608361332b565b925082613c7057613c6f613c1b565b5b828204905092915050565b6000613c868261332b565b9150613c918361332b565b9250828203905081811115613ca957613ca8613a6e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ce560208361336a565b9150613cf082613caf565b602082019050919050565b60006020820190508181036000830152613d1481613cd8565b9050919050565b6000613d268261332b565b9150613d318361332b565b9250828201905080821115613d4957613d48613a6e565b5b92915050565b6000613d5a8261332b565b9150613d658361332b565b9250828202613d738161332b565b91508282048414831517613d8a57613d89613a6e565b5b5092915050565b7f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000600082015250565b6000613dc7601b8361336a565b9150613dd282613d91565b602082019050919050565b60006020820190508181036000830152613df681613dba565b9050919050565b7f43616e277420616c7465722063757272656e74206c697175696469747920706160008201527f6972000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e5960228361336a565b9150613e6482613dfd565b604082019050919050565b60006020820190508181036000830152613e8881613e4c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613ec98261332b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efb57613efa613a6e565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613f6260268361336a565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f42455032303a207472616e736665722066726f6d203078300000000000000000600082015250565b6000613fce60188361336a565b9150613fd982613f98565b602082019050919050565b60006020820190508181036000830152613ffd81613fc1565b9050919050565b7f42455032303a207472616e7366657220746f2030783000000000000000000000600082015250565b600061403a60168361336a565b915061404582614004565b602082019050919050565b600060208201905081810360008301526140698161402d565b9050919050565b7f416d6f756e74206d757374206265203e207a65726f0000000000000000000000600082015250565b60006140a660158361336a565b91506140b182614070565b602082019050919050565b600060208201905081810360008301526140d581614099565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b600061411260148361336a565b915061411d826140dc565b602082019050919050565b6000602082019050818103600083015261414181614105565b9050919050565b7f4c6971756964697479206e6f74206164646564207965742e0000000000000000600082015250565b600061417e60188361336a565b915061418982614148565b602082019050919050565b600060208201905081810360008301526141ad81614171565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006141ea60158361336a565b91506141f5826141b4565b602082019050919050565b60006020820190508181036000830152614219816141dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061425e8161344d565b92915050565b60006020828403121561427a57614279613411565b5b60006142888482850161424f565b91505092915050565b6000819050919050565b60006142b66142b16142ac84614291565b6139f4565b61332b565b9050919050565b6142c68161429b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6143018161343b565b82525050565b600061431383836142f8565b60208301905092915050565b6000602082019050919050565b6000614337826142cc565b61434181856142d7565b935061434c836142e8565b8060005b8381101561437d5781516143648882614307565b975061436f8361431f565b925050600181019050614350565b5085935050505092915050565b600060a08201905061439f6000830188613335565b6143ac60208301876142bd565b81810360408301526143be818661432c565b90506143cd60608301856137cd565b6143da6080830184613335565b969550505050505056fea26469706673582212206f9dd8f496a7123b5743496cb58dd461c323f85e21521aa8e5ee085b126ec28064736f6c63430008110033

Deployed Bytecode Sourcemap

3442:13669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5347:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6734:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7475:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6482:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6999:107;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9815:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8880:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16911:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6576:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9512:127;;;;;;;;;;;;;:::i;:::-;;4793:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14841:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15452:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7699:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5078:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5239:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7112:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16030:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8037:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5276:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4092:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7223:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3037:148;;;;;;;;;;;;;:::i;:::-;;6811:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2827:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6653:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4949:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15033:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16292:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7833:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5018:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9651:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15803:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16542:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6888:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5046:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4523:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15316:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8770:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9265:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7334:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8517:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4598:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13425:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3191:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16157:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5404:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5112:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15222:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5347:50;;;;:::o;6734:71::-;6773:13;6797:5;;;;;;;;;;;;;;;;;6790:12;;6734:71;:::o;7475:216::-;7550:4;7602:6;7567:11;:23;7579:10;7567:23;;;;;;;;;;;;;;;:32;7591:7;7567:32;;;;;;;;;;;;;;;:41;;;;7645:7;7624:37;;7633:10;7624:37;;;7654:6;7624:37;;;;;;:::i;:::-;;;;;;;;7679:4;7672:11;;7475:216;;;;:::o;6482:88::-;6537:7;6555:12;;6548:19;;6482:88;:::o;6999:107::-;7049:7;3732:1;7087:2;:15;;;;:::i;:::-;7067:16;;:36;;;;:::i;:::-;7060:43;;6999:107;:::o;9815:341::-;9915:4;9970:17;9935:11;:19;9947:6;9935:19;;;;;;;;;;;;;;;:31;9955:10;9935:31;;;;;;;;;;;;;;;;:52;9932:157;;10071:6;10037:11;:19;10049:6;10037:19;;;;;;;;;;;;;;;:31;10057:10;10037:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;10003:11;:19;10015:6;10003:19;;;;;;;;;;;;;;;:31;10023:10;10003:31;;;;;;;;;;;;;;;:74;;;;9932:157;10108:40;10122:6;10130:9;10141:6;10108:13;:40::i;:::-;10101:47;;9815:341;;;;;:::o;8880:373::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8998:12:::1;;;;;;;;;;;8997:13;:33;;;;;9028:2;9014:11;:16;8997:33;8989:42;;;::::0;::::1;;9055:11;9042:10;:24;;;;9092:4;9077:12;;:19;;;;;;;;;;;;;;;;;;9120:12;9107:10;:25;;;;9179:11;9161:15;:29;;;;:::i;:::-;9143:15;:47;;;;3732:1;9229:2;:15;;;;:::i;:::-;9219:6;:26;;;;:::i;:::-;9201:15;:44;;;;8880:373:::0;;;:::o;16911:138::-;16964:7;17025:15;17035:4;;;;;;;;;;;17025:9;:15::i;:::-;17007;17017:4;;;;;;;;;;;17007:9;:15::i;:::-;:33;;;;:::i;:::-;16991:12;;:50;;;;:::i;:::-;16984:57;;16911:138;:::o;6576:71::-;6619:5;3732:1;6628:16;;6576:71;:::o;9512:127::-;5612:11;;;;;;;;;;;5596:27;;:12;:10;:12::i;:::-;:27;;;5588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9591:4:::1;9570:18;;:25;;;;;;;;;;;;;;;;;;9626:5;9606:17;;:25;;;;;;;;;;;;;;;;;;9512:127::o:0;4793:45::-;;;;;;;;;;;;;;;;;:::o;14841:184::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14936:4:::1;;;;;;;;;;;14930:10;;:2;:10;;::::0;14922:57:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15011:6;14990:14;:18;15005:2;14990:18;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14841:184:::0;;:::o;15452:339::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15587:1:::1;15572:12;:16;:37;;;;;15608:1;15592:13;:17;15572:37;:52;;;;;15623:1;15613:7;:11;15572:52;:72;;;;;15639:5;15628:7;:16;;15572:72;15564:81;;;::::0;::::1;;15706:7;15690:12;15675;;:27;;;;:::i;:::-;15674:39;;;;:::i;:::-;15656:15;:57;;;;15776:7;15759:13;15744:12;;:28;;;;:::i;:::-;15743:40;;;;:::i;:::-;15724:16;:59;;;;15452:339:::0;;;:::o;7699:122::-;7754:4;7778:35;7786:7;7795:17;7778:7;:35::i;:::-;7771:42;;7699:122;;;:::o;5078:27::-;;;;:::o;5239:28::-;;;;:::o;7112:105::-;7162:7;3732:1;7198:2;:15;;;;:::i;:::-;7180:14;;:34;;;;:::i;:::-;7173:41;;7112:105;:::o;16030:119::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16135:6:::1;16113:11;:19;16125:6;16113:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;16030:119:::0;;:::o;8037:468::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8169:1:::1;8150:9;;:16;;:20;:58;;;;;8192:9;;:16;;8174:7;;:14;;:34;8150:58;8142:67;;;::::0;::::1;;8220:12;8235:10;8220:25;;8263:6;8258:240;8279:9;;:16;;8275:1;:20;8258:240;;;8321:14;:28;8336:9;;8346:1;8336:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8321:28;;;;;;;;;;;;;;;;;;;;;;;;;8320:29;:64;;;;;8354:16;:30;8371:9;;8381:1;8371:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8354:30;;;;;;;;;;;;;;;;;;;;;;;;;8353:31;8320:64;8317:170;;;8405:66;8420:4;8426:9;;8436:1;8426:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;3732:1;8454:2;:15;;;;:::i;:::-;8440:7;;8448:1;8440:10;;;;;;;:::i;:::-;;;;;;;;:30;;;;:::i;:::-;8405:14;:66::i;:::-;;8317:170;8297:3;;;;;:::i;:::-;;;;8258:240;;;;8131:374;8037:468:::0;;;;:::o;5276:31::-;;;;;;;;;;;;;:::o;4092:44::-;;;;;;;;;;;;;;;;;:::o;7223:105::-;7289:7;7307:9;:18;7317:7;7307:18;;;;;;;;;;;;;;;;7300:25;;7223:105;;;:::o;3037:148::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3144:1:::1;3107:40;;3128:6;::::0;::::1;;;;;;;;3107:40;;;;;;;;;;;;3175:1;3158:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3037:148::o:0;6811:71::-;6854:7;6872;:5;:7::i;:::-;6865:14;;6811:71;:::o;2827:79::-;2865:7;2892:6;;;;;;;;;;;2885:13;;2827:79;:::o;6653:75::-;6694:13;6718:7;;;;;;;;;;;;;;;;;6711:14;;6653:75;:::o;4949:30::-;;;;:::o;15033:177::-;15097:4;5612:11;;;;;;;;;;;5596:27;;:12;:10;:12::i;:::-;:27;;;5588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15118:7:::1;15114:59;;;15142:4;15128:11;;:18;;;;;;;;;;;;;;;;;;15114:59;;;15168:5;15154:11;;:19;;;;;;;;;;;;;;;;;;15114:59;15191:11;;;;;;;;;;;15184:18;;15033:177:::0;;;:::o;16292:242::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16440:21:::1;16409:20;;:53;;;;;;;;;;;;;;;;;;16504:21;16473:20;;:53;;;;;;;;;;;;;;;;;;16292:242:::0;;:::o;7833:192::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7918:8:::1;7914:104;;;7958:5;7944:11;;:19;;;;;;;;;;;;;;;;;;8001:5;7978:20;;:28;;;;;;;;;;;;;;;;;;7914:104;7833:192:::0;;:::o;5018:19::-;;;;;;;;;;;;;:::o;9651:156::-;9731:4;9755:44;9769:10;9781:9;9792:6;9755:13;:44::i;:::-;9748:51;;9651:156;;;;:::o;15803:219::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15913:1:::1;15901:9;:13;:28;;;;;15928:1;15918:7;:11;15901:28;:48;;;;;15944:5;15933:7;:16;;15901:48;15893:57;;;::::0;::::1;;16007:7;15994:9;15979:12;;:24;;;;:::i;:::-;15978:36;;;;:::i;:::-;15961:14;:53;;;;15803:219:::0;;:::o;16542:361::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16706:1:::1;16691:12;:16;16683:25;;;::::0;::::1;;16733:8;16719:11;;:22;;;;;;;;;;;;;;;;;;16769:15;16752:14;;:32;;;;;;;;;;;;;;;;;;16826:12;16811;;:27;;;;:::i;:::-;16795:13;:43;;;;3732:1;16879:2;:15;;;;:::i;:::-;16863:12;:32;;;;:::i;:::-;16849:11;:46;;;;16542:361:::0;;;;:::o;6888:105::-;6937:7;3732:1;6974:2;:15;;;;:::i;:::-;6955;;:35;;;;:::i;:::-;6948:42;;6888:105;:::o;5046:25::-;;;;:::o;4523:68::-;;;;;;;;;;;;;:::o;4143:43::-;;;;;;;;;;;;;;;;;:::o;15316:128::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15398:10:::1;15390:4;:18;;15382:27;;;::::0;::::1;;15432:4;15420:9;:16;;;;15316:128:::0;:::o;8770:102::-;8816:7;8843:21;8836:28;;8770:102;:::o;9265:235::-;5612:11;;;;;;;;;;;5596:27;;:12;:10;:12::i;:::-;:27;;;5588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9359:18:::1;;;;;;;;;;;9358:19;9350:28;;;::::0;::::1;;9409:8;9389:17;;:28;;;;;;;;;;;;;;;;;;9447:6;9436:8;:17;9428:26;;;::::0;::::1;;9484:8;9465:15;;:27;;;;;;;:::i;:::-;;;;;;;;9265:235:::0;;:::o;7334:133::-;7418:7;7436:11;:19;7448:6;7436:19;;;;;;;;;;;;;;;:28;7456:7;7436:28;;;;;;;;;;;;;;;;7429:35;;7334:133;;;;:::o;8517:245::-;5612:11;;;;;;;;;;;5596:27;;:12;:10;:12::i;:::-;:27;;;5588:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8603:9:::1;8598:157;;8630:17;8650:21;8630:41;;8694:11;;;;;;;;;;;8686:29;;:57;8739:3;8729:6;8717:9;:18;;;;:::i;:::-;8716:26;;;;:::i;:::-;8686:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8614:141;8598:157;8517:245:::0;;:::o;4598:35::-;;;;;;;;;;;;;:::o;13425:239::-;13481:7;13531:12;13517:10;;13504;;:23;;;;:::i;:::-;:39;13501:69;;13553:14;;13546:21;;;;13501:69;13584:7;13580:39;;;13611:8;;13600;;:19;;;;:::i;:::-;13593:26;;;;13580:39;13648:8;;13637;;:19;;;;:::i;:::-;13630:26;;13425:239;;;;:::o;3191:244::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3300:1:::1;3280:22;;:8;:22;;::::0;3272:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3390:8;3361:38;;3382:6;::::0;::::1;;;;;;;;3361:38;;;;;;;;;;;;3419:8;3410:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3191:244:::0;:::o;16157:127::-;2962:12;:10;:12::i;:::-;2952:22;;:6;;;;;;;;;;:22;;;2944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16270:6:::1;16244:15;:23;16260:6;16244:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;16157:127:::0;;:::o;5404:49::-;;;;:::o;4642:24::-;;;;;;;;;;;;;:::o;5112:25::-;;;;:::o;15222:86::-;15265:4;15289:11;;;;;;;;;;;15282:18;;15222:86;:::o;10164:1097::-;10256:4;10299:1;10281:20;;:6;:20;;;10273:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:1;10349:23;;:9;:23;;;10341:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;10427:1;10418:6;:10;10410:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10494:6;10473:9;:17;10483:6;10473:17;;;;;;;;;;;;;;;;:27;;10465:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10540:10;:8;:10::i;:::-;10539:11;:40;;;;;10554:14;:25;10569:9;10554:25;;;;;;;;;;;;;;;;;;;;;;;;;10539:40;10536:120;;;10590:16;:24;10607:6;10590:24;;;;;;;;;;;;;;;;;;;;;;;;;10582:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;10645:8;:6;:8::i;:::-;10536:120;10670:12;;;;;;;;;;;10666:111;;10693:16;:24;10710:6;10693:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;10721:16;:27;10738:9;10721:27;;;;;;;;;;;;;;;;;;;;;;;;;10693:55;10685:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10666:111;10794:6;;;;;;;;;;;10791:63;;;10810:41;10825:6;10833:9;10844:6;10810:14;:41::i;:::-;10803:48;;;;10791:63;10906:6;10886:9;:17;10896:6;10886:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10866:9;:17;10876:6;10866:17;;;;;;;;;;;;;;;:46;;;;10925:22;10950:21;10964:6;10950:13;:21::i;:::-;:59;;11003:6;10950:59;;;10974:26;10982:9;10993:6;10974:7;:26::i;:::-;10950:59;10925:84;;11033:25;11048:9;11033:14;:25::i;:::-;11030:60;;;11074:1;11065:6;:10;11061:26;;;11077:10;:8;:10::i;:::-;11061:26;11030:60;11156:14;11133:9;:20;11143:9;11133:20;;;;;;;;;;;;;;;;:37;;;;:::i;:::-;11110:9;:20;11120:9;11110:20;;;;;;;;;;;;;;;:60;;;;11205:9;11188:43;;11197:6;11188:43;;;11216:14;11188:43;;;;;;:::i;:::-;;;;;;;;11249:4;11242:11;;;10164:1097;;;;;;:::o;856:107::-;901:15;944:10;929:26;;856:107;:::o;11520:300::-;11613:4;11670:6;11650:9;:17;11660:6;11650:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;11630:9;:17;11640:6;11630:17;;;;;;;;;;;;;;;:46;;;;11733:6;11710:9;:20;11720:9;11710:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;11687:9;:20;11697:9;11687:20;;;;;;;;;;;;;;;:52;;;;11772:9;11755:35;;11764:6;11755:35;;;11783:6;11755:35;;;;;;:::i;:::-;;;;;;;;11808:4;11801:11;;11520:300;;;;;:::o;11273:90::-;11316:4;11354:1;11340:10;;:15;;11333:22;;11273:90;:::o;11371:141::-;11422:12;11409:10;:25;;;;11460:15;11445:12;:30;;;;11500:4;11486:11;;:18;;;;;;;;;;;;;;;;;;11371:141::o;13303:114::-;13365:4;13390:11;:19;13402:6;13390:19;;;;;;;;;;;;;;;;;;;;;;;;;13389:20;13382:27;;13303:114;;;:::o;13672:317::-;13742:7;13762:12;13777:14;:25;13792:9;13777:25;;;;;;;;;;;;;;;;;;;;;;;;;13762:40;;13813:17;13867:14;;13843:20;13855:7;13843:11;:20::i;:::-;13834:6;:29;;;;:::i;:::-;13833:48;;;;:::i;:::-;13813:68;;13930:9;13902;:24;13920:4;13902:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;13972:9;13963:6;:18;;;;:::i;:::-;13956:25;;;;13672:317;;;;:::o;13997:231::-;14063:4;14088:14;:26;14103:10;14088:26;;;;;;;;;;;;;;;;;;;;;;;;;14087:27;:47;;;;;14128:6;;;;;;;;;;;14127:7;14087:47;:71;;;;;14147:11;;;;;;;;;;;14087:71;:109;;;;;14171:14;:25;14186:9;14171:25;;;;;;;;;;;;;;;;;;;;;;;;;14087:109;:133;;;;;14209:11;;;;;;;;;;;14087:133;14080:140;;13997:231;;;:::o;14236:593::-;5509:4;5500:6;;:13;;;;;;;;;;;;;;;;;;14316:1:::1;14289:9;:24;14307:4;14289:24;;;;;;;;;;;;;;;;:28;14285:537;;;14333:20;14356:9;:24;14374:4;14356:24;;;;;;;;;;;;;;;;14333:47;;14405:21;14443:1;14429:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14405:40;;14478:4;14460;14465:1;14460:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14508:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14498:4;14503:1;14498:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14546:6;;;;;;;;;;;:57;;;14622:12;14653:1;14673:4;14704;14728:15;14546:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14780:30;14797:12;14780:30;;;;;;:::i;:::-;;;;;;;;14318:504;;14285:537;5527:5:::0;5518:6;;:14;;;;;;;;;;;;;;;;;;14236:593::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:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:86::-;5083:7;5123:4;5116:5;5112:16;5101:27;;5048:86;;;:::o;5140:112::-;5223:22;5239:5;5223:22;:::i;:::-;5218:3;5211:35;5140:112;;:::o;5258:214::-;5347:4;5385:2;5374:9;5370:18;5362:26;;5398:67;5462:1;5451:9;5447:17;5438:6;5398:67;:::i;:::-;5258:214;;;;:::o;5478:329::-;5537:6;5586:2;5574:9;5565:7;5561:23;5557:32;5554:119;;;5592:79;;:::i;:::-;5554:119;5712:1;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5683:117;5478:329;;;;:::o;5813:116::-;5883:21;5898:5;5883:21;:::i;:::-;5876:5;5873:32;5863:60;;5919:1;5916;5909:12;5863:60;5813:116;:::o;5935:133::-;5978:5;6016:6;6003:20;5994:29;;6032:30;6056:5;6032:30;:::i;:::-;5935:133;;;;:::o;6074:468::-;6139:6;6147;6196:2;6184:9;6175:7;6171:23;6167:32;6164:119;;;6202:79;;:::i;:::-;6164:119;6322:1;6347:53;6392:7;6383:6;6372:9;6368:22;6347:53;:::i;:::-;6337:63;;6293:117;6449:2;6475:50;6517:7;6508:6;6497:9;6493:22;6475:50;:::i;:::-;6465:60;;6420:115;6074:468;;;;;:::o;6548:117::-;6657:1;6654;6647:12;6671:117;6780:1;6777;6770:12;6794:117;6903:1;6900;6893:12;6934:568;7007:8;7017:6;7067:3;7060:4;7052:6;7048:17;7044:27;7034:122;;7075:79;;:::i;:::-;7034:122;7188:6;7175:20;7165:30;;7218:18;7210:6;7207:30;7204:117;;;7240:79;;:::i;:::-;7204:117;7354:4;7346:6;7342:17;7330:29;;7408:3;7400:4;7392:6;7388:17;7378:8;7374:32;7371:41;7368:128;;;7415:79;;:::i;:::-;7368:128;6934:568;;;;;:::o;7525:::-;7598:8;7608:6;7658:3;7651:4;7643:6;7639:17;7635:27;7625:122;;7666:79;;:::i;:::-;7625:122;7779:6;7766:20;7756:30;;7809:18;7801:6;7798:30;7795:117;;;7831:79;;:::i;:::-;7795:117;7945:4;7937:6;7933:17;7921:29;;7999:3;7991:4;7983:6;7979:17;7969:8;7965:32;7962:41;7959:128;;;8006:79;;:::i;:::-;7959:128;7525:568;;;;;:::o;8099:934::-;8221:6;8229;8237;8245;8294:2;8282:9;8273:7;8269:23;8265:32;8262:119;;;8300:79;;:::i;:::-;8262:119;8448:1;8437:9;8433:17;8420:31;8478:18;8470:6;8467:30;8464:117;;;8500:79;;:::i;:::-;8464:117;8613:80;8685:7;8676:6;8665:9;8661:22;8613:80;:::i;:::-;8595:98;;;;8391:312;8770:2;8759:9;8755:18;8742:32;8801:18;8793:6;8790:30;8787:117;;;8823:79;;:::i;:::-;8787:117;8936:80;9008:7;8999:6;8988:9;8984:22;8936:80;:::i;:::-;8918:98;;;;8713:313;8099:934;;;;;;;:::o;9039:118::-;9126:24;9144:5;9126:24;:::i;:::-;9121:3;9114:37;9039:118;;:::o;9163:222::-;9256:4;9294:2;9283:9;9279:18;9271:26;;9307:71;9375:1;9364:9;9360:17;9351:6;9307:71;:::i;:::-;9163:222;;;;:::o;9391:323::-;9447:6;9496:2;9484:9;9475:7;9471:23;9467:32;9464:119;;;9502:79;;:::i;:::-;9464:119;9622:1;9647:50;9689:7;9680:6;9669:9;9665:22;9647:50;:::i;:::-;9637:60;;9593:114;9391:323;;;;:::o;9720:474::-;9788:6;9796;9845:2;9833:9;9824:7;9820:23;9816:32;9813:119;;;9851:79;;:::i;:::-;9813:119;9971:1;9996:53;10041:7;10032:6;10021:9;10017:22;9996:53;:::i;:::-;9986:63;;9942:117;10098:2;10124:53;10169:7;10160:6;10149:9;10145:22;10124:53;:::i;:::-;10114:63;;10069:118;9720:474;;;;;:::o;10200:::-;10268:6;10276;10325:2;10313:9;10304:7;10300:23;10296:32;10293:119;;;10331:79;;:::i;:::-;10293:119;10451:1;10476:53;10521:7;10512:6;10501:9;10497:22;10476:53;:::i;:::-;10466:63;;10422:117;10578:2;10604:53;10649:7;10640:6;10629:9;10625:22;10604:53;:::i;:::-;10594:63;;10549:118;10200:474;;;;;:::o;10680:753::-;10760:6;10768;10776;10784;10833:3;10821:9;10812:7;10808:23;10804:33;10801:120;;;10840:79;;:::i;:::-;10801:120;10960:1;10985:50;11027:7;11018:6;11007:9;11003:22;10985:50;:::i;:::-;10975:60;;10931:114;11084:2;11110:50;11152:7;11143:6;11132:9;11128:22;11110:50;:::i;:::-;11100:60;;11055:115;11209:2;11235:53;11280:7;11271:6;11260:9;11256:22;11235:53;:::i;:::-;11225:63;;11180:118;11337:2;11363:53;11408:7;11399:6;11388:9;11384:22;11363:53;:::i;:::-;11353:63;;11308:118;10680:753;;;;;;;:::o;11439:104::-;11484:7;11513:24;11531:5;11513:24;:::i;:::-;11502:35;;11439:104;;;:::o;11549:142::-;11652:32;11678:5;11652:32;:::i;:::-;11647:3;11640:45;11549:142;;:::o;11697:254::-;11806:4;11844:2;11833:9;11829:18;11821:26;;11857:87;11941:1;11930:9;11926:17;11917:6;11857:87;:::i;:::-;11697:254;;;;:::o;11957:329::-;12016:6;12065:2;12053:9;12044:7;12040:23;12036:32;12033:119;;;12071:79;;:::i;:::-;12033:119;12191:1;12216:53;12261:7;12252:6;12241:9;12237:22;12216:53;:::i;:::-;12206:63;;12162:117;11957:329;;;;:::o;12292:468::-;12357:6;12365;12414:2;12402:9;12393:7;12389:23;12385:32;12382:119;;;12420:79;;:::i;:::-;12382:119;12540:1;12565:50;12607:7;12598:6;12587:9;12583:22;12565:50;:::i;:::-;12555:60;;12511:114;12664:2;12690:53;12735:7;12726:6;12715:9;12711:22;12690:53;:::i;:::-;12680:63;;12635:118;12292:468;;;;;:::o;12766:::-;12831:6;12839;12888:2;12876:9;12867:7;12863:23;12859:32;12856:119;;;12894:79;;:::i;:::-;12856:119;13014:1;13039:53;13084:7;13075:6;13064:9;13060:22;13039:53;:::i;:::-;13029:63;;12985:117;13141:2;13167:50;13209:7;13200:6;13189:9;13185:22;13167:50;:::i;:::-;13157:60;;13112:115;12766:468;;;;;:::o;13240:60::-;13268:3;13289:5;13282:12;;13240:60;;;:::o;13306:142::-;13356:9;13389:53;13407:34;13416:24;13434:5;13416:24;:::i;:::-;13407:34;:::i;:::-;13389:53;:::i;:::-;13376:66;;13306:142;;;:::o;13454:126::-;13504:9;13537:37;13568:5;13537:37;:::i;:::-;13524:50;;13454:126;;;:::o;13586:144::-;13654:9;13687:37;13718:5;13687:37;:::i;:::-;13674:50;;13586:144;;;:::o;13736:167::-;13841:55;13890:5;13841:55;:::i;:::-;13836:3;13829:68;13736:167;;:::o;13909:258::-;14020:4;14058:2;14047:9;14043:18;14035:26;;14071:89;14157:1;14146:9;14142:17;14133:6;14071:89;:::i;:::-;13909:258;;;;:::o;14173:180::-;14221:77;14218:1;14211:88;14318:4;14315:1;14308:15;14342:4;14339:1;14332:15;14359:102;14401:8;14448:5;14445:1;14441:13;14420:34;;14359:102;;;:::o;14467:848::-;14528:5;14535:4;14559:6;14550:15;;14583:5;14574:14;;14597:712;14618:1;14608:8;14605:15;14597:712;;;14713:4;14708:3;14704:14;14698:4;14695:24;14692:50;;;14722:18;;:::i;:::-;14692:50;14772:1;14762:8;14758:16;14755:451;;;15187:4;15180:5;15176:16;15167:25;;14755:451;15237:4;15231;15227:15;15219:23;;15267:32;15290:8;15267:32;:::i;:::-;15255:44;;14597:712;;;14467:848;;;;;;;:::o;15321:1073::-;15375:5;15566:8;15556:40;;15587:1;15578:10;;15589:5;;15556:40;15615:4;15605:36;;15632:1;15623:10;;15634:5;;15605:36;15701:4;15749:1;15744:27;;;;15785:1;15780:191;;;;15694:277;;15744:27;15762:1;15753:10;;15764:5;;;15780:191;15825:3;15815:8;15812:17;15809:43;;;15832:18;;:::i;:::-;15809:43;15881:8;15878:1;15874:16;15865:25;;15916:3;15909:5;15906:14;15903:40;;;15923:18;;:::i;:::-;15903:40;15956:5;;;15694:277;;16080:2;16070:8;16067:16;16061:3;16055:4;16052:13;16048:36;16030:2;16020:8;16017:16;16012:2;16006:4;16003:12;15999:35;15983:111;15980:246;;;16136:8;16130:4;16126:19;16117:28;;16171:3;16164:5;16161:14;16158:40;;;16178:18;;:::i;:::-;16158:40;16211:5;;15980:246;16251:42;16289:3;16279:8;16273:4;16270:1;16251:42;:::i;:::-;16236:57;;;;16325:4;16320:3;16316:14;16309:5;16306:25;16303:51;;;16334:18;;:::i;:::-;16303:51;16383:4;16376:5;16372:16;16363:25;;15321:1073;;;;;;:::o;16400:281::-;16458:5;16482:23;16500:4;16482:23;:::i;:::-;16474:31;;16526:25;16542:8;16526:25;:::i;:::-;16514:37;;16570:104;16607:66;16597:8;16591:4;16570:104;:::i;:::-;16561:113;;16400:281;;;;:::o;16687:180::-;16735:77;16732:1;16725:88;16832:4;16829:1;16822:15;16856:4;16853:1;16846:15;16873:185;16913:1;16930:20;16948:1;16930:20;:::i;:::-;16925:25;;16964:20;16982:1;16964:20;:::i;:::-;16959:25;;17003:1;16993:35;;17008:18;;:::i;:::-;16993:35;17050:1;17047;17043:9;17038:14;;16873:185;;;;:::o;17064:194::-;17104:4;17124:20;17142:1;17124:20;:::i;:::-;17119:25;;17158:20;17176:1;17158:20;:::i;:::-;17153:25;;17202:1;17199;17195:9;17187:17;;17226:1;17220:4;17217:11;17214:37;;;17231:18;;:::i;:::-;17214:37;17064:194;;;;:::o;17264:182::-;17404:34;17400:1;17392:6;17388:14;17381:58;17264:182;:::o;17452:366::-;17594:3;17615:67;17679:2;17674:3;17615:67;:::i;:::-;17608:74;;17691:93;17780:3;17691:93;:::i;:::-;17809:2;17804:3;17800:12;17793:19;;17452:366;;;:::o;17824:419::-;17990:4;18028:2;18017:9;18013:18;18005:26;;18077:9;18071:4;18067:20;18063:1;18052:9;18048:17;18041:47;18105:131;18231:4;18105:131;:::i;:::-;18097:139;;17824:419;;;:::o;18249:191::-;18289:3;18308:20;18326:1;18308:20;:::i;:::-;18303:25;;18342:20;18360:1;18342:20;:::i;:::-;18337:25;;18385:1;18382;18378:9;18371:16;;18406:3;18403:1;18400:10;18397:36;;;18413:18;;:::i;:::-;18397:36;18249:191;;;;:::o;18446:410::-;18486:7;18509:20;18527:1;18509:20;:::i;:::-;18504:25;;18543:20;18561:1;18543:20;:::i;:::-;18538:25;;18598:1;18595;18591:9;18620:30;18638:11;18620:30;:::i;:::-;18609:41;;18799:1;18790:7;18786:15;18783:1;18780:22;18760:1;18753:9;18733:83;18710:139;;18829:18;;:::i;:::-;18710:139;18494:362;18446:410;;;;:::o;18862:177::-;19002:29;18998:1;18990:6;18986:14;18979:53;18862:177;:::o;19045:366::-;19187:3;19208:67;19272:2;19267:3;19208:67;:::i;:::-;19201:74;;19284:93;19373:3;19284:93;:::i;:::-;19402:2;19397:3;19393:12;19386:19;;19045:366;;;:::o;19417:419::-;19583:4;19621:2;19610:9;19606:18;19598:26;;19670:9;19664:4;19660:20;19656:1;19645:9;19641:17;19634:47;19698:131;19824:4;19698:131;:::i;:::-;19690:139;;19417:419;;;:::o;19842:221::-;19982:34;19978:1;19970:6;19966:14;19959:58;20051:4;20046:2;20038:6;20034:15;20027:29;19842:221;:::o;20069:366::-;20211:3;20232:67;20296:2;20291:3;20232:67;:::i;:::-;20225:74;;20308:93;20397:3;20308:93;:::i;:::-;20426:2;20421:3;20417:12;20410:19;;20069:366;;;:::o;20441:419::-;20607:4;20645:2;20634:9;20630:18;20622:26;;20694:9;20688:4;20684:20;20680:1;20669:9;20665:17;20658:47;20722:131;20848:4;20722:131;:::i;:::-;20714:139;;20441:419;;;:::o;20866:180::-;20914:77;20911:1;20904:88;21011:4;21008:1;21001:15;21035:4;21032:1;21025:15;21052:233;21091:3;21114:24;21132:5;21114:24;:::i;:::-;21105:33;;21160:66;21153:5;21150:77;21147:103;;21230:18;;:::i;:::-;21147:103;21277:1;21270:5;21266:13;21259:20;;21052:233;;;:::o;21291:225::-;21431:34;21427:1;21419:6;21415:14;21408:58;21500:8;21495:2;21487:6;21483:15;21476:33;21291:225;:::o;21522:366::-;21664:3;21685:67;21749:2;21744:3;21685:67;:::i;:::-;21678:74;;21761:93;21850:3;21761:93;:::i;:::-;21879:2;21874:3;21870:12;21863:19;;21522:366;;;:::o;21894:419::-;22060:4;22098:2;22087:9;22083:18;22075:26;;22147:9;22141:4;22137:20;22133:1;22122:9;22118:17;22111:47;22175:131;22301:4;22175:131;:::i;:::-;22167:139;;21894:419;;;:::o;22319:174::-;22459:26;22455:1;22447:6;22443:14;22436:50;22319:174;:::o;22499:366::-;22641:3;22662:67;22726:2;22721:3;22662:67;:::i;:::-;22655:74;;22738:93;22827:3;22738:93;:::i;:::-;22856:2;22851:3;22847:12;22840:19;;22499:366;;;:::o;22871:419::-;23037:4;23075:2;23064:9;23060:18;23052:26;;23124:9;23118:4;23114:20;23110:1;23099:9;23095:17;23088:47;23152:131;23278:4;23152:131;:::i;:::-;23144:139;;22871:419;;;:::o;23296:172::-;23436:24;23432:1;23424:6;23420:14;23413:48;23296:172;:::o;23474:366::-;23616:3;23637:67;23701:2;23696:3;23637:67;:::i;:::-;23630:74;;23713:93;23802:3;23713:93;:::i;:::-;23831:2;23826:3;23822:12;23815:19;;23474:366;;;:::o;23846:419::-;24012:4;24050:2;24039:9;24035:18;24027:26;;24099:9;24093:4;24089:20;24085:1;24074:9;24070:17;24063:47;24127:131;24253:4;24127:131;:::i;:::-;24119:139;;23846:419;;;:::o;24271:171::-;24411:23;24407:1;24399:6;24395:14;24388:47;24271:171;:::o;24448:366::-;24590:3;24611:67;24675:2;24670:3;24611:67;:::i;:::-;24604:74;;24687:93;24776:3;24687:93;:::i;:::-;24805:2;24800:3;24796:12;24789:19;;24448:366;;;:::o;24820:419::-;24986:4;25024:2;25013:9;25009:18;25001:26;;25073:9;25067:4;25063:20;25059:1;25048:9;25044:17;25037:47;25101:131;25227:4;25101:131;:::i;:::-;25093:139;;24820:419;;;:::o;25245:170::-;25385:22;25381:1;25373:6;25369:14;25362:46;25245:170;:::o;25421:366::-;25563:3;25584:67;25648:2;25643:3;25584:67;:::i;:::-;25577:74;;25660:93;25749:3;25660:93;:::i;:::-;25778:2;25773:3;25769:12;25762:19;;25421:366;;;:::o;25793:419::-;25959:4;25997:2;25986:9;25982:18;25974:26;;26046:9;26040:4;26036:20;26032:1;26021:9;26017:17;26010:47;26074:131;26200:4;26074:131;:::i;:::-;26066:139;;25793:419;;;:::o;26218:174::-;26358:26;26354:1;26346:6;26342:14;26335:50;26218:174;:::o;26398:366::-;26540:3;26561:67;26625:2;26620:3;26561:67;:::i;:::-;26554:74;;26637:93;26726:3;26637:93;:::i;:::-;26755:2;26750:3;26746:12;26739:19;;26398:366;;;:::o;26770:419::-;26936:4;26974:2;26963:9;26959:18;26951:26;;27023:9;27017:4;27013:20;27009:1;26998:9;26994:17;26987:47;27051:131;27177:4;27051:131;:::i;:::-;27043:139;;26770:419;;;:::o;27195:171::-;27335:23;27331:1;27323:6;27319:14;27312:47;27195:171;:::o;27372:366::-;27514:3;27535:67;27599:2;27594:3;27535:67;:::i;:::-;27528:74;;27611:93;27700:3;27611:93;:::i;:::-;27729:2;27724:3;27720:12;27713:19;;27372:366;;;:::o;27744:419::-;27910:4;27948:2;27937:9;27933:18;27925:26;;27997:9;27991:4;27987:20;27983:1;27972:9;27968:17;27961:47;28025:131;28151:4;28025:131;:::i;:::-;28017:139;;27744:419;;;:::o;28169:180::-;28217:77;28214:1;28207:88;28314:4;28311:1;28304:15;28338:4;28335:1;28328:15;28355:143;28412:5;28443:6;28437:13;28428:22;;28459:33;28486:5;28459:33;:::i;:::-;28355:143;;;;:::o;28504:351::-;28574:6;28623:2;28611:9;28602:7;28598:23;28594:32;28591:119;;;28629:79;;:::i;:::-;28591:119;28749:1;28774:64;28830:7;28821:6;28810:9;28806:22;28774:64;:::i;:::-;28764:74;;28720:128;28504:351;;;;:::o;28861:85::-;28906:7;28935:5;28924:16;;28861:85;;;:::o;28952:158::-;29010:9;29043:61;29061:42;29070:32;29096:5;29070:32;:::i;:::-;29061:42;:::i;:::-;29043:61;:::i;:::-;29030:74;;28952:158;;;:::o;29116:147::-;29211:45;29250:5;29211:45;:::i;:::-;29206:3;29199:58;29116:147;;:::o;29269:114::-;29336:6;29370:5;29364:12;29354:22;;29269:114;;;:::o;29389:184::-;29488:11;29522:6;29517:3;29510:19;29562:4;29557:3;29553:14;29538:29;;29389:184;;;;:::o;29579:132::-;29646:4;29669:3;29661:11;;29699:4;29694:3;29690:14;29682:22;;29579:132;;;:::o;29717:108::-;29794:24;29812:5;29794:24;:::i;:::-;29789:3;29782:37;29717:108;;:::o;29831:179::-;29900:10;29921:46;29963:3;29955:6;29921:46;:::i;:::-;29999:4;29994:3;29990:14;29976:28;;29831:179;;;;:::o;30016:113::-;30086:4;30118;30113:3;30109:14;30101:22;;30016:113;;;:::o;30165:732::-;30284:3;30313:54;30361:5;30313:54;:::i;:::-;30383:86;30462:6;30457:3;30383:86;:::i;:::-;30376:93;;30493:56;30543:5;30493:56;:::i;:::-;30572:7;30603:1;30588:284;30613:6;30610:1;30607:13;30588:284;;;30689:6;30683:13;30716:63;30775:3;30760:13;30716:63;:::i;:::-;30709:70;;30802:60;30855:6;30802:60;:::i;:::-;30792:70;;30648:224;30635:1;30632;30628:9;30623:14;;30588:284;;;30592:14;30888:3;30881:10;;30289:608;;;30165:732;;;;:::o;30903:831::-;31166:4;31204:3;31193:9;31189:19;31181:27;;31218:71;31286:1;31275:9;31271:17;31262:6;31218:71;:::i;:::-;31299:80;31375:2;31364:9;31360:18;31351:6;31299:80;:::i;:::-;31426:9;31420:4;31416:20;31411:2;31400:9;31396:18;31389:48;31454:108;31557:4;31548:6;31454:108;:::i;:::-;31446:116;;31572:72;31640:2;31629:9;31625:18;31616:6;31572:72;:::i;:::-;31654:73;31722:3;31711:9;31707:19;31698:6;31654:73;:::i;:::-;30903:831;;;;;;;;:::o

Swarm Source

ipfs://6f9dd8f496a7123b5743496cb58dd461c323f85e21521aa8e5ee085b126ec280

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.