ETH Price: $3,442.73 (-1.09%)
Gas: 9 Gwei

Contract

0xe9a1a90A299766D9D3751D08173B6dD370ba1090
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve197152032024-04-23 2:46:4786 days ago1713840407IN
0xe9a1a90A...370ba1090
0 ETH0.000286776.45563245
Approve196714982024-04-17 0:05:3592 days ago1713312335IN
0xe9a1a90A...370ba1090
0 ETH0.000365148.2087043
Approve195044722024-03-24 12:42:23115 days ago1711284143IN
0xe9a1a90A...370ba1090
0 ETH0.0008292718.66771524
Approve190478102024-01-20 11:34:35179 days ago1705750475IN
0xe9a1a90A...370ba1090
0 ETH0.0005996513.4988108
Approve189977482024-01-13 11:43:47186 days ago1705146227IN
0xe9a1a90A...370ba1090
0 ETH0.0006669814.91775878
Approve182542492023-10-01 7:38:35291 days ago1696145915IN
0xe9a1a90A...370ba1090
0 ETH0.000283726.34575597
Approve182077242023-09-24 19:25:11297 days ago1695583511IN
0xe9a1a90A...370ba1090
0 ETH0.0004665710.48594248
Approve180724632023-09-05 19:49:47316 days ago1693943387IN
0xe9a1a90A...370ba1090
0 ETH0.0007167416.00910197
Approve180541412023-09-03 6:19:59319 days ago1693721999IN
0xe9a1a90A...370ba1090
0 ETH0.0004700910.5
Approve180365712023-08-31 19:13:23321 days ago1693509203IN
0xe9a1a90A...370ba1090
0 ETH0.0017267238.61974963
Approve180308672023-08-31 0:05:11322 days ago1693440311IN
0xe9a1a90A...370ba1090
0 ETH0.0007120915.92665522
Approve180297242023-08-30 20:14:35322 days ago1693426475IN
0xe9a1a90A...370ba1090
0 ETH0.0011788726.36666371
Approve180042832023-08-27 6:41:59326 days ago1693118519IN
0xe9a1a90A...370ba1090
0 ETH0.000480910.75002371
Approve179968122023-08-26 5:37:59327 days ago1693028279IN
0xe9a1a90A...370ba1090
0 ETH0.0004107415
Approve179915832023-08-25 12:03:11327 days ago1692964991IN
0xe9a1a90A...370ba1090
0 ETH0.0008524819.1695149
Approve179830792023-08-24 7:29:35329 days ago1692862175IN
0xe9a1a90A...370ba1090
0 ETH0.0007077615.91101408
Approve179830032023-08-24 7:13:59329 days ago1692861239IN
0xe9a1a90A...370ba1090
0 ETH0.0006752215.19988091
Approve179423142023-08-18 14:37:23334 days ago1692369443IN
0xe9a1a90A...370ba1090
0 ETH0.0023676852.88444872
Approve179388962023-08-18 3:07:11335 days ago1692328031IN
0xe9a1a90A...370ba1090
0 ETH0.0010328223.1
Approve179385992023-08-18 2:07:11335 days ago1692324431IN
0xe9a1a90A...370ba1090
0 ETH0.0012800528.77616513
Approve179382352023-08-18 0:54:11335 days ago1692320051IN
0xe9a1a90A...370ba1090
0 ETH0.0017219438.46113612
Approve179369942023-08-17 20:43:59335 days ago1692305039IN
0xe9a1a90A...370ba1090
0 ETH0.0014910133.30309307
Approve179369822023-08-17 20:41:35335 days ago1692304895IN
0xe9a1a90A...370ba1090
0 ETH0.001777639.9507658
Transfer179369122023-08-17 20:27:35335 days ago1692304055IN
0xe9a1a90A...370ba1090
0 ETH0.0026622635.7562169
Transfer179367772023-08-17 19:59:59335 days ago1692302399IN
0xe9a1a90A...370ba1090
0 ETH0.0016711829.13701505
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
196871262024-04-19 4:31:5990 days ago1713501119
0xe9a1a90A...370ba1090
0.00091795 ETH
196871262024-04-19 4:31:5990 days ago1713501119
0xe9a1a90A...370ba1090
0.00091795 ETH
196871262024-04-19 4:31:5990 days ago1713501119
0xe9a1a90A...370ba1090
0.0018359 ETH
189977502024-01-13 11:44:11186 days ago1705146251
0xe9a1a90A...370ba1090
0.00197145 ETH
189977502024-01-13 11:44:11186 days ago1705146251
0xe9a1a90A...370ba1090
0.00197145 ETH
189977502024-01-13 11:44:11186 days ago1705146251
0xe9a1a90A...370ba1090
0.0039429 ETH
183685472023-10-17 7:17:23275 days ago1697527043
0xe9a1a90A...370ba1090
0.0037549 ETH
183685472023-10-17 7:17:23275 days ago1697527043
0xe9a1a90A...370ba1090
0.0037549 ETH
183685472023-10-17 7:17:23275 days ago1697527043
0xe9a1a90A...370ba1090
0.00750981 ETH
182542522023-10-01 7:39:11291 days ago1696145951
0xe9a1a90A...370ba1090
0.00175069 ETH
182542522023-10-01 7:39:11291 days ago1696145951
0xe9a1a90A...370ba1090
0.00175069 ETH
182542522023-10-01 7:39:11291 days ago1696145951
0xe9a1a90A...370ba1090
0.00350139 ETH
180959862023-09-09 2:53:47313 days ago1694228027
0xe9a1a90A...370ba1090
0.00081521 ETH
180959862023-09-09 2:53:47313 days ago1694228027
0xe9a1a90A...370ba1090
0.00081521 ETH
180959862023-09-09 2:53:47313 days ago1694228027
0xe9a1a90A...370ba1090
0.00163043 ETH
180365732023-08-31 19:13:47321 days ago1693509227
0xe9a1a90A...370ba1090
0.0029939 ETH
180365732023-08-31 19:13:47321 days ago1693509227
0xe9a1a90A...370ba1090
0.0029939 ETH
180365732023-08-31 19:13:47321 days ago1693509227
0xe9a1a90A...370ba1090
0.0059878 ETH
180308672023-08-31 0:05:11322 days ago1693440311
0xe9a1a90A...370ba1090
0.0029939 ETH
180308672023-08-31 0:05:11322 days ago1693440311
0xe9a1a90A...370ba1090
0.0029939 ETH
180308672023-08-31 0:05:11322 days ago1693440311
0xe9a1a90A...370ba1090
0.0059878 ETH
180297262023-08-30 20:14:59322 days ago1693426499
0xe9a1a90A...370ba1090
0.0016118 ETH
180297262023-08-30 20:14:59322 days ago1693426499
0xe9a1a90A...370ba1090
0.0016118 ETH
180297262023-08-30 20:14:59322 days ago1693426499
0xe9a1a90A...370ba1090
0.0032236 ETH
180297002023-08-30 20:09:47322 days ago1693426187
0xe9a1a90A...370ba1090
0.0020604 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BladesOfGlory

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-02
*/

// SPDX-License-Identifier: No

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

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

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

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//--- Contract v3 ---//
contract BladesOfGlory is Context, Ownable, IERC20 {

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => uint256) private balance;


    uint256 constant public _totalSupply = 1_000_000_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 2_500;
    uint256 constant public buyfee = 20;
    uint256 constant public sellfee = 20;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    uint256 private maxTx = _totalSupply / 100;
    uint256 private maxWallet = _totalSupply / 100;
    bool private canSwapFees = false;
    uint256 constant public botFee = 890;
    uint256 private _deadline;
    address payable private marketingAddress = payable(address(0x1439cd62F3bbD4B200aDce8e7331BC20c8B7c0bD)); // build: ?
    address payable private devAddress = payable(address(0x22fC0FB24D170904c6389c329bC8C8FaEd372519)); // build: ?

//--- v3 Allocations by Freddy analytixaudit.com ---//
    uint256 private buyAllocation = 50;
    uint256 private sellAllocation = 50;
    uint256 private liquidityAllocation = 0;


    IRouter02 public swapRouter;
    string constant private _name = "Blades Of Glory";
    string constant private _symbol = "BladesOfGlory";
    string constant public copyright = "analytixaudit.com";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;
    bool private avoidMaxTxLimits = false;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeThreshold(uint256 newThreshold);
    event _changeWallets(address newBuy, address newDev);
    event _changeFees(uint256 buy, uint256 sell);
    event SwapAndLiquify();


    constructor () {
        _noFee[msg.sender] = true;

        if (block.chainid == 56) {
            swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 42161) {
            swapRouter = IRouter02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        } else if (block.chainid == 5) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            revert("Chain not valid");
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        require(buyAllocation + sellAllocation + liquidityAllocation == 100,"Freddy: Must equals to 100%");

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);


    }

    receive() external payable {}

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

        function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = 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] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    function isNoFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        require(account != address(0),"Whoops");
        _noFee[account] = enabled;
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner() && tx.origin != owner() // any transaction with no direct interaction from owner will be accepted
            && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != DEAD && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out];

        return canswap;
    }

    function changeLpPair(address newPair) external onlyOwner {
        require(newPair != address(0),"Whoops");
        isLpPair[newPair] = true;
        emit _changePair(newPair);
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno,"Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
            if(!avoidMaxTxLimits) {require(amount <= maxTx,"maxTx is 1%");
            if(!isLpPair[to] && from != address(this) && to != address(this))  {require(balanceOf(to) + amount <= maxWallet,"maxWallet is 1%");}}
        }

        bool launchtax = isLimitedAddress(from,to) && isTradingEnabled && block.number <= _deadline;

        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) { 
                if(buyAllocation > 0 || sellAllocation > 0) internalSwap((contractTokenBalance * (buyAllocation + sellAllocation)) / 100);
                if(liquidityAllocation > 0) {swapAndLiquify(contractTokenBalance * liquidityAllocation / 100);}
             }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }
        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount, launchtax) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function changeWallets(address newDev, address newBuy) external onlyOwner {
        require(newBuy != address(0),"Freddy: Address Zero");
        marketingAddress = payable(newBuy);
        devAddress = payable(newDev);
        emit _changeWallets(newBuy, newDev);
    }

    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount, bool _launchtax) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 
        if(_launchtax) fee =  botFee;
        if (fee == 0)  return amount;
        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function swapAndLiquify(uint256 contractTokenBalance) internal inSwapFlag {
        uint256 firstmath = contractTokenBalance / 2;
        uint256 secondMath = contractTokenBalance - firstmath;

        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            firstmath,
            0, 
            path,
            address(this),
            block.timestamp) {} catch {return;}
        
        uint256 newBalance = address(this).balance - initialBalance;

        try swapRouter.addLiquidityETH{value: newBalance}(
            address(this),
            secondMath,
            0,
            0,
            DEAD,
            block.timestamp
        ){} catch {return;}

        emit SwapAndLiquify();
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

        uint256 half = address(this).balance / 2;
        if(half > 0) (success,) = marketingAddress.call{value: half, gas: 35000}("");
        if(address(this).balance > 0) (success,) = devAddress.call{value: address(this).balance, gas: 35000}("");
        

    } 

        function setPresaleAddress(address presale, bool yesno) external onlyOwner {
            require(isPresaleAddress[presale] != yesno,"Same bool");
            isPresaleAddress[presale] = yesno;
            _noFee[presale] = yesno;
            liquidityAdd[presale] = yesno;
            emit _setPresaleAddress(presale, yesno);
        }

        function enableTrading(uint256 deadline) external onlyOwner {
            require(deadline < 25,"Deadline too high");
            require(!isTradingEnabled, "Trading already enabled");
            isTradingEnabled = true;
            _deadline = block.number + deadline;
            emit _enableTrading();
        }

        function zeroLimits() external onlyOwner {
            require(!avoidMaxTxLimits,"Already initalized");
            maxTx = _totalSupply;
            maxWallet = _totalSupply;
            avoidMaxTxLimits = true;
        }

        function bulkPresaleAddresses(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            isPresaleAddress[accounts[i]] = state;
            _noFee[accounts[i]] = state;
            liquidityAdd[accounts[i]] = state;
        }
    }

        function returnLimits() external view returns(uint256 _maxTx, uint256 _maxWallet) {
            return(maxTx, maxWallet);
        }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sell","type":"uint256"}],"name":"_changeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBuy","type":"address"},{"indexed":false,"internalType":"address","name":"newDev","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkPresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDev","type":"address"},{"internalType":"address","name":"newBuy","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"copyright","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","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":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"returnLimits","outputs":[{"internalType":"uint256","name":"_maxTx","type":"uint256"},{"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"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":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a6064683635c9adc5dea000006200060a565b600755620000336064683635c9adc5dea000006200060a565b6008556009805460ff19169055600b80546001600160a01b0319908116731439cd62f3bbd4b200adce8e7331bc20c8b7c0bd17909155600c80549091167322fc0fb24d170904c6389c329bc8c8faed3725191790556032600d819055600e556000600f556011805462ff00ff60a01b19169055348015620000b357600080fd5b50620000bf33620004f2565b336000908152600260205260409020805460ff19166001179055466038036200010e57601080546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e1790556200023b565b466061036200014357601080546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d11790556200023b565b4660011480620001535750466004145b806200015f5750466003145b156200019157601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200023b565b4661a4b103620001c757601080546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b479975061790556200023b565b46600503620001fc57601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200023b565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b336000818152600360209081526040808320805460ff1916600117905560068252808320683635c9adc5dea000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600f54600e54600d54620002b291906200062d565b620002be91906200062d565b6064146200030f5760405162461bcd60e51b815260206004820152601b60248201527f4672656464793a204d75737420657175616c7320746f20313030250000000000604482015260640162000232565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000363573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000389919062000655565b6001600160a01b031663c9c65396601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000655565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200045e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000484919062000655565b601180546001600160a01b0319166001600160a01b039283169081179091556000908152600460205260409020805460ff19166001179055601054620004d09133911660001962000542565b601054620004ec9030906001600160a01b031660001962000542565b62000687565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620005905760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000232565b6001600160a01b038216620005de5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640162000232565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b6000826200062857634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156200064f57634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200066857600080fd5b81516001600160a01b03811681146200068057600080fd5b9392505050565b6121b580620006976000396000f3fe6080604052600436106102085760003560e01c806354de7bee11610118578063a63ae9c7116100a0578063d5914dc01161006f578063d5914dc014610625578063dc9d75b014610645578063dd62ed3e1461065b578063e9451f5f1461035a578063f2fde38b146106a157600080fd5b8063a63ae9c714610592578063a9059cbb146105cf578063bf862391146105ef578063c31c9c071461060557600080fd5b806382aa7c68116100e757806382aa7c68146104fe578063893d20e81461051e5780638da5cb5b1461051e57806395d89b411461053c578063a61699c41461057257600080fd5b806354de7bee1461047e57806370a0823114610493578063715018a6146104c95780637ebf0966146104de57600080fd5b80631dc369451161019b5780632cd077b51161016a5780632cd077b5146103dd578063313ce567146104055780633cd17c96146104215780633eaaf86b14610441578063452ed4f11461045e57600080fd5b80631dc369451461035a5780631f91af651461036f57806323b872dd1461038457806327889862146103a457600080fd5b8063095ea7b3116101d7578063095ea7b3146102dc5780630faba554146102fc578063111a60b01461031e57806318160ddd1461033e57600080fd5b806303fd2a45146102145780630445b66714610247578063064a59d01461026a57806306fdde031461029b57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025c6106c1565b60405190815260200161023e565b34801561027657600080fd5b5060115461028b90600160a01b900460ff1681565b604051901515815260200161023e565b3480156102a757600080fd5b5060408051808201909152600f81526e426c61646573204f6620476c6f727960881b60208201525b60405161023e9190611d47565b3480156102e857600080fd5b5061028b6102f7366004611dba565b6106d9565b34801561030857600080fd5b5061031c610317366004611df6565b6106f0565b005b34801561032a57600080fd5b5061031c610339366004611e2b565b61078d565b34801561034a57600080fd5b50683635c9adc5dea0000061025c565b34801561036657600080fd5b5061025c601481565b34801561037b57600080fd5b5061031c61084c565b34801561039057600080fd5b5061028b61039f366004611e4d565b6108ec565b3480156103b057600080fd5b5061028b6103bf366004611e8e565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103e957600080fd5b506007546008546040805192835260208301919091520161023e565b34801561041157600080fd5b506040516009815260200161023e565b34801561042d57600080fd5b5061031c61043c366004611df6565b610964565b34801561044d57600080fd5b5061025c683635c9adc5dea0000081565b34801561046a57600080fd5b5060115461022a906001600160a01b031681565b34801561048a57600080fd5b5061025c600081565b34801561049f57600080fd5b5061025c6104ae366004611e8e565b6001600160a01b031660009081526006602052604090205490565b3480156104d557600080fd5b5061031c610a72565b3480156104ea57600080fd5b5061031c6104f9366004611ec1565b610aa8565b34801561050a57600080fd5b5061031c610519366004611f98565b610bea565b34801561052a57600080fd5b506000546001600160a01b031661022a565b34801561054857600080fd5b5060408051808201909152600d81526c426c616465734f66476c6f727960981b60208201526102cf565b34801561057e57600080fd5b5061031c61058d366004611fb1565b610cfe565b34801561059e57600080fd5b506102cf60405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b3480156105db57600080fd5b5061028b6105ea366004611dba565b610ddc565b3480156105fb57600080fd5b5061025c61037a81565b34801561061157600080fd5b5060105461022a906001600160a01b031681565b34801561063157600080fd5b5061031c610640366004611e8e565b610df3565b34801561065157600080fd5b5061025c6103e881565b34801561066757600080fd5b5061025c610676366004611fb1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ad57600080fd5b5061031c6106bc366004611e8e565b610eb0565b6106d66109c4683635c9adc5dea00000612000565b81565b60006106e6338484610f4b565b5060015b92915050565b6000546001600160a01b031633146107235760405162461bcd60e51b815260040161071a90612022565b60405180910390fd5b6001600160a01b0382166107625760405162461bcd60e51b815260206004820152600660248201526557686f6f707360d01b604482015260640161071a565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b75760405162461bcd60e51b815260040161071a90612022565b60095481151560ff9091161515036108045760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b604482015260640161071a565b6009805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8906020015b60405180910390a150565b6000546001600160a01b031633146108765760405162461bcd60e51b815260040161071a90612022565b601154600160b01b900460ff16156108c55760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161071a565b683635c9adc5dea0000060078190556008556011805460ff60b01b1916600160b01b179055565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610951576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061094b908490612057565b90915550505b61095c84848461100f565b949350505050565b6000546001600160a01b0316331461098e5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b03821660009081526005602052604090205481151560ff9091161515036109ea5760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b604482015260640161071a565b6001600160a01b0382166000818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b76451391015b60405180910390a15050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161071a90612022565b610aa660006114db565b565b6000546001600160a01b03163314610ad25760405162461bcd60e51b815260040161071a90612022565b60005b8251811015610be5578160056000858481518110610af557610af561206a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508160026000858481518110610b4b57610b4b61206a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508160036000858481518110610ba157610ba161206a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bdd81612080565b915050610ad5565b505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b815260040161071a90612022565b60198110610c585760405162461bcd60e51b8152602060048201526011602482015270088cac2c8d8d2dcca40e8dede40d0d2ced607b1b604482015260640161071a565b601154600160a01b900460ff1615610cb25760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161071a565b6011805460ff60a01b1916600160a01b179055610ccf8143612099565b600a556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a150565b6000546001600160a01b03163314610d285760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610d755760405162461bcd60e51b81526020600482015260146024820152734672656464793a2041646472657373205a65726f60601b604482015260640161071a565b600b80546001600160a01b038381166001600160a01b03199283168117909355600c80549186169190921681179091556040805192835260208301919091527fb7dbb12e3d7d2f1359cb61a83553096a35374fe4c0b5624717a5c59b853e77c19101610a66565b6000610de933848461100f565b5060019392505050565b6000546001600160a01b03163314610e1d5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610e5c5760405162461bcd60e51b815260206004820152600660248201526557686f6f707360d01b604482015260640161071a565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f79101610841565b6000546001600160a01b03163314610eda5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071a565b610f48816114db565b50565b6001600160a01b038316610f975760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161071a565b6001600160a01b038216610fe35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161071a565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b0384166110755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071a565b6001600160a01b0385166110d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071a565b6000831161113b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071a565b611145858561152b565b156112a657601154600160a01b900460ff1661119c5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161071a565b601154600160b01b900460ff166112a6576007548311156111ed5760405162461bcd60e51b815260206004820152600b60248201526a6d6178547820697320312560a81b604482015260640161071a565b6001600160a01b03841660009081526004602052604090205460ff1615801561121f57506001600160a01b0385163014155b801561123457506001600160a01b0384163014155b156112a6576008548361125c866001600160a01b031660009081526006602052604090205490565b6112669190612099565b11156112a65760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320312560881b604482015260640161071a565b60006112b2868661152b565b80156112c75750601154600160a01b900460ff165b80156112d55750600a544311155b90506112e1868661162e565b80156112f75750601154600160a81b900460ff16155b801561130857506113088686611675565b156113aa57306000908152600660205260409020546113326109c4683635c9adc5dea00000612000565b81106113a8576000600d54118061134b57506000600e54115b1561137e5761137e6064600e54600d546113659190612099565b61136f90846120ac565b6113799190612000565b6116cf565b600f54156113a8576113a86064600f548361139991906120ac565b6113a39190612000565b611969565b505b6001600160a01b03861660009081526002602052604090205460ff16806113e957506001600160a01b03851660009081526002602052604090205460ff165b156113f357600091505b6001600160a01b0386166000908152600660205260408120805486929061141b908490612057565b90915550600090508261142e578461144d565b61144d8761143c8989611c23565b6114468a8a61162e565b8886611c6a565b6001600160a01b03871660009081526006602052604081208054929350839290919061147a908490612099565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c691815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806115406000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561156f57506000546001600160a01b03848116911614155b801561158657506000546001600160a01b03163214155b801561159d57506000546001600160a01b03163314155b80156115c257506001600160a01b03841660009081526003602052604090205460ff16155b80156115e757506001600160a01b03831660009081526003602052604090205460ff16155b80156115fe57506001600160a01b03831661dead14155b801561161257506001600160a01b03831615155b801561095c57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561095c57505050506001600160a01b031660009081526004602052604090205460ff161590565b600954600090819060ff1680156116a557506001600160a01b03841660009081526005602052604090205460ff16155b801561095c575050506001600160a01b031660009081526005602052604090205460ff1615919050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117175761171761206a565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611770573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179491906120c3565b816001815181106117a7576117a761206a565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220601054909416825292909152205460001914611811573060009081526001602090815260408083206010546001600160a01b03168452909152902060001990555b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061184a9085906000908690309042906004016120e0565b600060405180830381600087803b15801561186457600080fd5b505af1925050508015611875575060015b61187f5750611959565b60008061188d600247612000565b905080156118f257600b546040516001600160a01b03909116906188b89083906000818181858888f193505050503d80600081146118e7576040519150601f19603f3d011682016040523d82523d6000602084013e6118ec565b606091505b50909250505b471561195557600c546040516001600160a01b03909116906188b89047906000818181858888f193505050503d806000811461194a576040519150601f19603f3d011682016040523d82523d6000602084013e61194f565b606091505b50909250505b5050505b506011805460ff60a81b19169055565b6011805460ff60a81b1916600160a81b1790556000611989600283612000565b905060006119978284612057565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106119d1576119d161206a565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4e91906120c3565b81600181518110611a6157611a6161206a565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220601054909416825292909152205460001914611acb573060009081526001602090815260408083206010546001600160a01b03168452909152902060001990555b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b049087906000908690309042906004016120e0565b600060405180830381600087803b158015611b1e57600080fd5b505af1925050508015611b2f575060015b611b3c5750505050611959565b6000611b488347612057565b60105460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af193505050508015611bd4575060408051601f3d908101601f19168201909252611bd191810190612151565b60015b611be2575050505050611959565b5050506040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a15050505050506011805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561095c57505050506001600160a01b031660009081526004602052604090205460ff1690565b6000808515611c7b57506014611c8d565b8415611c8957506014611c8d565b5060005b8215611c98575061037a5b80600003611ca95783915050611d3e565b60006103e8611cb883876120ac565b611cc29190612000565b90508015611d2f573060009081526006602052604081208054839290611ce9908490612099565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611d398186612057565b925050505b95945050505050565b600060208083528351808285015260005b81811015611d7457858101830151858201604001528201611d58565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f4857600080fd5b8035611db581611d95565b919050565b60008060408385031215611dcd57600080fd5b8235611dd881611d95565b946020939093013593505050565b80358015158114611db557600080fd5b60008060408385031215611e0957600080fd5b8235611e1481611d95565b9150611e2260208401611de6565b90509250929050565b600060208284031215611e3d57600080fd5b611e4682611de6565b9392505050565b600080600060608486031215611e6257600080fd5b8335611e6d81611d95565b92506020840135611e7d81611d95565b929592945050506040919091013590565b600060208284031215611ea057600080fd5b8135611e4681611d95565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611ed457600080fd5b823567ffffffffffffffff80821115611eec57600080fd5b818501915085601f830112611f0057600080fd5b8135602082821115611f1457611f14611eab565b8160051b604051601f19603f83011681018181108682111715611f3957611f39611eab565b604052928352818301935084810182019289841115611f5757600080fd5b948201945b83861015611f7c57611f6d86611daa565b85529482019493820193611f5c565b9650611f8b9050878201611de6565b9450505050509250929050565b600060208284031215611faa57600080fd5b5035919050565b60008060408385031215611fc457600080fd5b8235611fcf81611d95565b91506020830135611fdf81611d95565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261201d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156106ea576106ea611fea565b634e487b7160e01b600052603260045260246000fd5b60006001820161209257612092611fea565b5060010190565b808201808211156106ea576106ea611fea565b80820281158282048414176106ea576106ea611fea565b6000602082840312156120d557600080fd5b8151611e4681611d95565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121305784516001600160a01b03168352938301939183019160010161210b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561216657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122038c3d4c4040337d5758460d5bbff0b8ea751825f263cf84d56820cdbec737ff264736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102085760003560e01c806354de7bee11610118578063a63ae9c7116100a0578063d5914dc01161006f578063d5914dc014610625578063dc9d75b014610645578063dd62ed3e1461065b578063e9451f5f1461035a578063f2fde38b146106a157600080fd5b8063a63ae9c714610592578063a9059cbb146105cf578063bf862391146105ef578063c31c9c071461060557600080fd5b806382aa7c68116100e757806382aa7c68146104fe578063893d20e81461051e5780638da5cb5b1461051e57806395d89b411461053c578063a61699c41461057257600080fd5b806354de7bee1461047e57806370a0823114610493578063715018a6146104c95780637ebf0966146104de57600080fd5b80631dc369451161019b5780632cd077b51161016a5780632cd077b5146103dd578063313ce567146104055780633cd17c96146104215780633eaaf86b14610441578063452ed4f11461045e57600080fd5b80631dc369451461035a5780631f91af651461036f57806323b872dd1461038457806327889862146103a457600080fd5b8063095ea7b3116101d7578063095ea7b3146102dc5780630faba554146102fc578063111a60b01461031e57806318160ddd1461033e57600080fd5b806303fd2a45146102145780630445b66714610247578063064a59d01461026a57806306fdde031461029b57600080fd5b3661020f57005b600080fd5b34801561022057600080fd5b5061022a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561025357600080fd5b5061025c6106c1565b60405190815260200161023e565b34801561027657600080fd5b5060115461028b90600160a01b900460ff1681565b604051901515815260200161023e565b3480156102a757600080fd5b5060408051808201909152600f81526e426c61646573204f6620476c6f727960881b60208201525b60405161023e9190611d47565b3480156102e857600080fd5b5061028b6102f7366004611dba565b6106d9565b34801561030857600080fd5b5061031c610317366004611df6565b6106f0565b005b34801561032a57600080fd5b5061031c610339366004611e2b565b61078d565b34801561034a57600080fd5b50683635c9adc5dea0000061025c565b34801561036657600080fd5b5061025c601481565b34801561037b57600080fd5b5061031c61084c565b34801561039057600080fd5b5061028b61039f366004611e4d565b6108ec565b3480156103b057600080fd5b5061028b6103bf366004611e8e565b6001600160a01b031660009081526002602052604090205460ff1690565b3480156103e957600080fd5b506007546008546040805192835260208301919091520161023e565b34801561041157600080fd5b506040516009815260200161023e565b34801561042d57600080fd5b5061031c61043c366004611df6565b610964565b34801561044d57600080fd5b5061025c683635c9adc5dea0000081565b34801561046a57600080fd5b5060115461022a906001600160a01b031681565b34801561048a57600080fd5b5061025c600081565b34801561049f57600080fd5b5061025c6104ae366004611e8e565b6001600160a01b031660009081526006602052604090205490565b3480156104d557600080fd5b5061031c610a72565b3480156104ea57600080fd5b5061031c6104f9366004611ec1565b610aa8565b34801561050a57600080fd5b5061031c610519366004611f98565b610bea565b34801561052a57600080fd5b506000546001600160a01b031661022a565b34801561054857600080fd5b5060408051808201909152600d81526c426c616465734f66476c6f727960981b60208201526102cf565b34801561057e57600080fd5b5061031c61058d366004611fb1565b610cfe565b34801561059e57600080fd5b506102cf60405180604001604052806011815260200170616e616c7974697861756469742e636f6d60781b81525081565b3480156105db57600080fd5b5061028b6105ea366004611dba565b610ddc565b3480156105fb57600080fd5b5061025c61037a81565b34801561061157600080fd5b5060105461022a906001600160a01b031681565b34801561063157600080fd5b5061031c610640366004611e8e565b610df3565b34801561065157600080fd5b5061025c6103e881565b34801561066757600080fd5b5061025c610676366004611fb1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156106ad57600080fd5b5061031c6106bc366004611e8e565b610eb0565b6106d66109c4683635c9adc5dea00000612000565b81565b60006106e6338484610f4b565b5060015b92915050565b6000546001600160a01b031633146107235760405162461bcd60e51b815260040161071a90612022565b60405180910390fd5b6001600160a01b0382166107625760405162461bcd60e51b815260206004820152600660248201526557686f6f707360d01b604482015260640161071a565b6001600160a01b03919091166000908152600260205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107b75760405162461bcd60e51b815260040161071a90612022565b60095481151560ff9091161515036108045760405162461bcd60e51b815260206004820152601060248201526f426f6f6c206973207468652073616d6560801b604482015260640161071a565b6009805460ff19168215159081179091556040519081527f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8906020015b60405180910390a150565b6000546001600160a01b031633146108765760405162461bcd60e51b815260040161071a90612022565b601154600160b01b900460ff16156108c55760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b604482015260640161071a565b683635c9adc5dea0000060078190556008556011805460ff60b01b1916600160b01b179055565b6001600160a01b038316600090815260016020908152604080832033845290915281205460001914610951576001600160a01b03841660009081526001602090815260408083203384529091528120805484929061094b908490612057565b90915550505b61095c84848461100f565b949350505050565b6000546001600160a01b0316331461098e5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b03821660009081526005602052604090205481151560ff9091161515036109ea5760405162461bcd60e51b815260206004820152600960248201526814d85b5948189bdbdb60ba1b604482015260640161071a565b6001600160a01b0382166000818152600560209081526040808320805486151560ff1991821681179092556002845282852080548216831790556003845293829020805490941681179093558051938452908301919091527f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b76451391015b60405180910390a15050565b6000546001600160a01b03163314610a9c5760405162461bcd60e51b815260040161071a90612022565b610aa660006114db565b565b6000546001600160a01b03163314610ad25760405162461bcd60e51b815260040161071a90612022565b60005b8251811015610be5578160056000858481518110610af557610af561206a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508160026000858481518110610b4b57610b4b61206a565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055508160036000858481518110610ba157610ba161206a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bdd81612080565b915050610ad5565b505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b815260040161071a90612022565b60198110610c585760405162461bcd60e51b8152602060048201526011602482015270088cac2c8d8d2dcca40e8dede40d0d2ced607b1b604482015260640161071a565b601154600160a01b900460ff1615610cb25760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c6564000000000000000000604482015260640161071a565b6011805460ff60a01b1916600160a01b179055610ccf8143612099565b600a556040517fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686890600090a150565b6000546001600160a01b03163314610d285760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610d755760405162461bcd60e51b81526020600482015260146024820152734672656464793a2041646472657373205a65726f60601b604482015260640161071a565b600b80546001600160a01b038381166001600160a01b03199283168117909355600c80549186169190921681179091556040805192835260208301919091527fb7dbb12e3d7d2f1359cb61a83553096a35374fe4c0b5624717a5c59b853e77c19101610a66565b6000610de933848461100f565b5060019392505050565b6000546001600160a01b03163314610e1d5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610e5c5760405162461bcd60e51b815260206004820152600660248201526557686f6f707360d01b604482015260640161071a565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f79101610841565b6000546001600160a01b03163314610eda5760405162461bcd60e51b815260040161071a90612022565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071a565b610f48816114db565b50565b6001600160a01b038316610f975760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161071a565b6001600160a01b038216610fe35760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b604482015260640161071a565b6001600160a01b0392831660009081526001602090815260408083209490951682529290925291902055565b600060016001600160a01b0384166110755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071a565b6001600160a01b0385166110d95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071a565b6000831161113b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071a565b611145858561152b565b156112a657601154600160a01b900460ff1661119c5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b604482015260640161071a565b601154600160b01b900460ff166112a6576007548311156111ed5760405162461bcd60e51b815260206004820152600b60248201526a6d6178547820697320312560a81b604482015260640161071a565b6001600160a01b03841660009081526004602052604090205460ff1615801561121f57506001600160a01b0385163014155b801561123457506001600160a01b0384163014155b156112a6576008548361125c866001600160a01b031660009081526006602052604090205490565b6112669190612099565b11156112a65760405162461bcd60e51b815260206004820152600f60248201526e6d617857616c6c657420697320312560881b604482015260640161071a565b60006112b2868661152b565b80156112c75750601154600160a01b900460ff165b80156112d55750600a544311155b90506112e1868661162e565b80156112f75750601154600160a81b900460ff16155b801561130857506113088686611675565b156113aa57306000908152600660205260409020546113326109c4683635c9adc5dea00000612000565b81106113a8576000600d54118061134b57506000600e54115b1561137e5761137e6064600e54600d546113659190612099565b61136f90846120ac565b6113799190612000565b6116cf565b600f54156113a8576113a86064600f548361139991906120ac565b6113a39190612000565b611969565b505b6001600160a01b03861660009081526002602052604090205460ff16806113e957506001600160a01b03851660009081526002602052604090205460ff165b156113f357600091505b6001600160a01b0386166000908152600660205260408120805486929061141b908490612057565b90915550600090508261142e578461144d565b61144d8761143c8989611c23565b6114468a8a61162e565b8886611c6a565b6001600160a01b03871660009081526006602052604081208054929350839290919061147a908490612099565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114c691815260200190565b60405180910390a35060019695505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806115406000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561156f57506000546001600160a01b03848116911614155b801561158657506000546001600160a01b03163214155b801561159d57506000546001600160a01b03163314155b80156115c257506001600160a01b03841660009081526003602052604090205460ff16155b80156115e757506001600160a01b03831660009081526003602052604090205460ff16155b80156115fe57506001600160a01b03831661dead14155b801561161257506001600160a01b03831615155b801561095c57506001600160a01b038316301415949350505050565b6001600160a01b038116600090815260046020526040812054819060ff16801561095c57505050506001600160a01b031660009081526004602052604090205460ff161590565b600954600090819060ff1680156116a557506001600160a01b03841660009081526005602052604090205460ff16155b801561095c575050506001600160a01b031660009081526005602052604090205460ff1615919050565b6011805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106117175761171761206a565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611770573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179491906120c3565b816001815181106117a7576117a761206a565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220601054909416825292909152205460001914611811573060009081526001602090815260408083206010546001600160a01b03168452909152902060001990555b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061184a9085906000908690309042906004016120e0565b600060405180830381600087803b15801561186457600080fd5b505af1925050508015611875575060015b61187f5750611959565b60008061188d600247612000565b905080156118f257600b546040516001600160a01b03909116906188b89083906000818181858888f193505050503d80600081146118e7576040519150601f19603f3d011682016040523d82523d6000602084013e6118ec565b606091505b50909250505b471561195557600c546040516001600160a01b03909116906188b89047906000818181858888f193505050503d806000811461194a576040519150601f19603f3d011682016040523d82523d6000602084013e61194f565b606091505b50909250505b5050505b506011805460ff60a81b19169055565b6011805460ff60a81b1916600160a81b1790556000611989600283612000565b905060006119978284612057565b604080516002808252606082018352929350479260009260208301908036833701905050905030816000815181106119d1576119d161206a565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4e91906120c3565b81600181518110611a6157611a6161206a565b6001600160a01b03928316602091820292909201810191909152306000908152600182526040808220601054909416825292909152205460001914611acb573060009081526001602090815260408083206010546001600160a01b03168452909152902060001990555b60105460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b049087906000908690309042906004016120e0565b600060405180830381600087803b158015611b1e57600080fd5b505af1925050508015611b2f575060015b611b3c5750505050611959565b6000611b488347612057565b60105460405163f305d71960e01b815230600482015260248101879052600060448201819052606482015261dead60848201524260a48201529192506001600160a01b03169063f305d71990839060c40160606040518083038185885af193505050508015611bd4575060408051601f3d908101601f19168201909252611bd191810190612151565b60015b611be2575050505050611959565b5050506040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a15050505050506011805460ff60a81b19169055565b6001600160a01b038116600090815260046020526040812054819060ff1615801561095c57505050506001600160a01b031660009081526004602052604090205460ff1690565b6000808515611c7b57506014611c8d565b8415611c8957506014611c8d565b5060005b8215611c98575061037a5b80600003611ca95783915050611d3e565b60006103e8611cb883876120ac565b611cc29190612000565b90508015611d2f573060009081526006602052604081208054839290611ce9908490612099565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611d398186612057565b925050505b95945050505050565b600060208083528351808285015260005b81811015611d7457858101830151858201604001528201611d58565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f4857600080fd5b8035611db581611d95565b919050565b60008060408385031215611dcd57600080fd5b8235611dd881611d95565b946020939093013593505050565b80358015158114611db557600080fd5b60008060408385031215611e0957600080fd5b8235611e1481611d95565b9150611e2260208401611de6565b90509250929050565b600060208284031215611e3d57600080fd5b611e4682611de6565b9392505050565b600080600060608486031215611e6257600080fd5b8335611e6d81611d95565b92506020840135611e7d81611d95565b929592945050506040919091013590565b600060208284031215611ea057600080fd5b8135611e4681611d95565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215611ed457600080fd5b823567ffffffffffffffff80821115611eec57600080fd5b818501915085601f830112611f0057600080fd5b8135602082821115611f1457611f14611eab565b8160051b604051601f19603f83011681018181108682111715611f3957611f39611eab565b604052928352818301935084810182019289841115611f5757600080fd5b948201945b83861015611f7c57611f6d86611daa565b85529482019493820193611f5c565b9650611f8b9050878201611de6565b9450505050509250929050565b600060208284031215611faa57600080fd5b5035919050565b60008060408385031215611fc457600080fd5b8235611fcf81611d95565b91506020830135611fdf81611d95565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60008261201d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156106ea576106ea611fea565b634e487b7160e01b600052603260045260246000fd5b60006001820161209257612092611fea565b5060010190565b808201808211156106ea576106ea611fea565b80820281158282048414176106ea576106ea611fea565b6000602082840312156120d557600080fd5b8151611e4681611d95565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121305784516001600160a01b03168352938301939183019160010161210b565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561216657600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122038c3d4c4040337d5758460d5bbff0b8ea751825f263cf84d56820cdbec737ff264736f6c63430008130033

Deployed Bytecode Sourcemap

4873:13069:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7270:73;;;;;;;;;;;;7301:42;7270:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;7270:73:0;;;;;;;;6123:60;;;;;;;;;;;;;:::i;:::-;;;368:25:1;;;356:2;341:18;6123:60:0;222:177:1;7378:36:0;;;;;;;;;;-1:-1:-1;7378:36:0;;;;-1:-1:-1;;;7378:36:0;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;7378:36:0;404:187:1;5277:80:0;;;;;;;;;;-1:-1:-1;5349:5:0;;;;;;;;;;;;-1:-1:-1;;;5349:5:0;;;;5277:80;;;;;;;:::i;9525:161::-;;;;;;;;;;-1:-1:-1;9525:161:0;;;;;:::i;:::-;;:::i;10400:166::-;;;;;;;;;;-1:-1:-1;10400:166:0;;;;;:::i;:::-;;:::i;:::-;;11772:196;;;;;;;;;;-1:-1:-1;11772:196:0;;;;;:::i;:::-;;:::i;4933:125::-;;;;;;;;;;-1:-1:-1;6091:25:0;4933:125;;6190:35;;;;;;;;;;;;6223:2;6190:35;;17249:227;;;;;;;;;;;;;:::i;9971:306::-;;;;;;;;;;-1:-1:-1;9971:306:0;;;;;:::i;:::-;;:::i;10283:109::-;;;;;;;;;;-1:-1:-1;10283:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;10369:15:0;10345:4;10369:15;;;:6;:15;;;;;;;;;10283:109;17806:133;;;;;;;;;;-1:-1:-1;17910:5:0;;17917:9;;17806:133;;;3301:25:1;;;3357:2;3342:18;;3335:34;;;;3274:18;17806:133:0;3127:248:1;5064:117:0;;;;;;;;;;-1:-1:-1;5064:117:0;;7262:1;3522:36:1;;3510:2;3495:18;5064:117:0;3380:184:1;16563:341:0;;;;;;;;;;-1:-1:-1;16563:341:0;;;;;:::i;:::-;;:::i;6052:64::-;;;;;;;;;;;;6091:25;6052:64;;7350:21;;;;;;;;;;-1:-1:-1;7350:21:0;;;;-1:-1:-1;;;;;7350:21:0;;;6275:39;;;;;;;;;;;;6313:1;6275:39;;5588:117;;;;;;;;;;-1:-1:-1;5588:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;5681:16:0;5654:7;5681:16;;;:7;:16;;;;;;;5588:117;850:94;;;;;;;;;;;;;:::i;17488:306::-;;;;;;;;;;-1:-1:-1;17488:306:0;;;;;:::i;:::-;;:::i;16916:321::-;;;;;;;;;;-1:-1:-1;16916:321:0;;;;;:::i;:::-;;:::i;5363:80::-;;;;;;;;;;-1:-1:-1;5415:7:0;700:6;-1:-1:-1;;;;;700:6:0;5363:80;;5187:84;;;;;;;;;;-1:-1:-1;5261:7:0;;;;;;;;;;;;-1:-1:-1;;;5261:7:0;;;;5187:84;;13605:275;;;;;;;;;;-1:-1:-1;13605:275:0;;;;;:::i;:::-;;:::i;7166:54::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7166:54:0;;;;;9348:165;;;;;;;;;;-1:-1:-1;9348:165:0;;;;;:::i;:::-;;:::i;6516:36::-;;;;;;;;;;;;6549:3;6516:36;;7020:27;;;;;;;;;;-1:-1:-1;7020:27:0;;;;-1:-1:-1;;;;;7020:27:0;;;11577:187;;;;;;;;;;-1:-1:-1;11577:187:0;;;;;:::i;:::-;;:::i;6321:47::-;;;;;;;;;;;;6363:5;6321:47;;5449:133;;;;;;;;;;-1:-1:-1;5449:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5551:19:0;;;5533:7;5551:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5449:133;952:192;;;;;;;;;;-1:-1:-1;952:192:0;;;;;:::i;:::-;;:::i;6123:60::-;6163:20;6178:5;6091:25;6163:20;:::i;:::-;6123:60;:::o;9525:161::-;9602:4;9619:37;9628:10;9640:7;9649:6;9619:8;:37::i;:::-;-1:-1:-1;9674:4:0;9525:161;;;;;:::o;10400:166::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10491:21:0;::::1;10483:39;;;::::0;-1:-1:-1;;;10483:39:0;;6617:2:1;10483:39:0::1;::::0;::::1;6599:21:1::0;6656:1;6636:18;;;6629:29;-1:-1:-1;;;6674:18:1;;;6667:36;6720:18;;10483:39:0::1;6415:329:1::0;10483:39:0::1;-1:-1:-1::0;;;;;10533:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:25;;-1:-1:-1;;10533:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10400:166::o;11772:196::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;11849:11:::1;::::0;:20;::::1;;:11;::::0;;::::1;:20;;::::0;11841:48:::1;;;::::0;-1:-1:-1;;;11841:48:0;;6951:2:1;11841:48:0::1;::::0;::::1;6933:21:1::0;6990:2;6970:18;;;6963:30;-1:-1:-1;;;7009:18:1;;;7002:46;7065:18;;11841:48:0::1;6749:340:1::0;11841:48:0::1;11900:11;:19:::0;;-1:-1:-1;;11900:19:0::1;::::0;::::1;;::::0;;::::1;::::0;;;11935:25:::1;::::0;544:41:1;;;11935:25:0::1;::::0;532:2:1;517:18;11935:25:0::1;;;;;;;;11772:196:::0;:::o;17249:227::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;17314:16:::1;::::0;-1:-1:-1;;;17314:16:0;::::1;;;17313:17;17305:47;;;::::0;-1:-1:-1;;;17305:47:0;;7296:2:1;17305:47:0::1;::::0;::::1;7278:21:1::0;7335:2;7315:18;;;7308:30;-1:-1:-1;;;7354:18:1;;;7347:48;7412:18;;17305:47:0::1;7094:342:1::0;17305:47:0::1;6091:25;17367:5;:20:::0;;;17402:9:::1;:24:::0;17441:16:::1;:23:::0;;-1:-1:-1;;;;17441:23:0::1;-1:-1:-1::0;;;17441:23:0::1;::::0;;17249:227::o;9971:306::-;-1:-1:-1;;;;;10092:19:0;;10071:4;10092:19;;;:11;:19;;;;;;;;10112:10;10092:31;;;;;;;;-1:-1:-1;;10092:52:0;10088:126;;-1:-1:-1;;;;;10161:19:0;;;;;;:11;:19;;;;;;;;10181:10;10161:31;;;;;;;:41;;10196:6;;10161:19;:41;;10196:6;;10161:41;:::i;:::-;;;;-1:-1:-1;;10088:126:0;10233:36;10243:6;10251:9;10262:6;10233:9;:36::i;:::-;10226:43;9971:306;-1:-1:-1;;;;9971:306:0:o;16563:341::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16661:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;:34;::::1;;:25;::::0;;::::1;:34;;::::0;16653:55:::1;;;::::0;-1:-1:-1;;;16653:55:0;;7776:2:1;16653:55:0::1;::::0;::::1;7758:21:1::0;7815:1;7795:18;;;7788:29;-1:-1:-1;;;7833:18:1;;;7826:39;7882:18;;16653:55:0::1;7574:332:1::0;16653:55:0::1;-1:-1:-1::0;;;;;16723:25:0;::::1;;::::0;;;:16:::1;:25;::::0;;;;;;;:33;;;::::1;;-1:-1:-1::0;;16723:33:0;;::::1;::::0;::::1;::::0;;;16771:6:::1;:15:::0;;;;;:23;;;::::1;::::0;::::1;::::0;;16809:12:::1;:21:::0;;;;;;:29;;;;::::1;::::0;::::1;::::0;;;16858:34;;8079:51:1;;;8146:18;;;8139:50;;;;16858:34:0::1;::::0;8052:18:1;16858:34:0::1;;;;;;;;16563:341:::0;;:::o;850:94::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;915:21:::1;933:1;915:9;:21::i;:::-;850:94::o:0;17488:306::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;17592:9:::1;17587:200;17611:8;:15;17607:1;:19;17587:200;;;17680:5;17648:16;:29;17665:8;17674:1;17665:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17648:29:0::1;-1:-1:-1::0;;;;;17648:29:0::1;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17722:5;17700:6;:19;17707:8;17716:1;17707:11;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;17700:19:0::1;-1:-1:-1::0;;;;;17700:19:0::1;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17770:5;17742:12;:25;17755:8;17764:1;17755:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17742:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17742:25:0;:33;;-1:-1:-1;;17742:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17628:3;::::1;::::0;::::1;:::i;:::-;;;;17587:200;;;;17488:306:::0;;:::o;16916:321::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;17010:2:::1;16999:8;:13;16991:42;;;::::0;-1:-1:-1;;;16991:42:0;;8674:2:1;16991:42:0::1;::::0;::::1;8656:21:1::0;8713:2;8693:18;;;8686:30;-1:-1:-1;;;8732:18:1;;;8725:47;8789:18;;16991:42:0::1;8472:341:1::0;16991:42:0::1;17057:16;::::0;-1:-1:-1;;;17057:16:0;::::1;;;17056:17;17048:53;;;::::0;-1:-1:-1;;;17048:53:0;;9020:2:1;17048:53:0::1;::::0;::::1;9002:21:1::0;9059:2;9039:18;;;9032:30;9098:25;9078:18;;;9071:53;9141:18;;17048:53:0::1;8818:347:1::0;17048:53:0::1;17116:16;:23:::0;;-1:-1:-1;;;;17116:23:0::1;-1:-1:-1::0;;;17116:23:0::1;::::0;;17166::::1;17181:8:::0;17166:12:::1;:23;:::i;:::-;17154:9;:35:::0;17209:16:::1;::::0;::::1;::::0;;;::::1;16916:321:::0;:::o;13605:275::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13698:20:0;::::1;13690:52;;;::::0;-1:-1:-1;;;13690:52:0;;9502:2:1;13690:52:0::1;::::0;::::1;9484:21:1::0;9541:2;9521:18;;;9514:30;-1:-1:-1;;;9560:18:1;;;9553:50;9620:18;;13690:52:0::1;9300:344:1::0;13690:52:0::1;13753:16;:34:::0;;-1:-1:-1;;;;;13753:34:0;;::::1;-1:-1:-1::0;;;;;;13753:34:0;;::::1;::::0;::::1;::::0;;;13798:10:::1;:28:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;13842:30:::1;::::0;;9861:34:1;;;9926:2;9911:18;;9904:43;;;;13842:30:0::1;::::0;9796:18:1;13842:30:0::1;9649:304:1::0;9348:165:0;9426:4;9443:40;9453:10;9465:9;9476:6;9443:9;:40::i;:::-;-1:-1:-1;9501:4:0;;9348:165;-1:-1:-1;;;9348:165:0:o;11577:187::-;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11654:21:0;::::1;11646:39;;;::::0;-1:-1:-1;;;11646:39:0;;6617:2:1;11646:39:0::1;::::0;::::1;6599:21:1::0;6656:1;6636:18;;;6629:29;-1:-1:-1;;;6674:18:1;;;6667:36;6720:18;;11646:39:0::1;6415:329:1::0;11646:39:0::1;-1:-1:-1::0;;;;;11696:17:0;::::1;;::::0;;;:8:::1;:17;::::0;;;;;;;;:24;;-1:-1:-1;;11696:24:0::1;11716:4;11696:24;::::0;;11736:20;;160:51:1;;;11736:20:0::1;::::0;133:18:1;11736:20:0::1;14:203:1::0;952:192:0;673:7;700:6;-1:-1:-1;;;;;700:6:0;235:10;762:23;754:68;;;;-1:-1:-1;;;754:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1041:22:0;::::1;1033:73;;;::::0;-1:-1:-1;;;1033:73:0;;10160:2:1;1033:73:0::1;::::0;::::1;10142:21:1::0;10199:2;10179:18;;;10172:30;10238:34;10218:18;;;10211:62;-1:-1:-1;;;10289:18:1;;;10282:36;10335:19;;1033:73:0::1;9958:402:1::0;1033:73:0::1;1117:19;1127:8;1117:9;:19::i;:::-;952:192:::0;:::o;9698:261::-;-1:-1:-1;;;;;9793:20:0;;9785:52;;;;-1:-1:-1;;;9785:52:0;;10567:2:1;9785:52:0;;;10549:21:1;10606:2;10586:18;;;10579:30;-1:-1:-1;;;10625:18:1;;;10618:49;10684:18;;9785:52:0;10365:343:1;9785:52:0;-1:-1:-1;;;;;9856:21:0;;9848:53;;;;-1:-1:-1;;;9848:53:0;;10567:2:1;9848:53:0;;;10549:21:1;10606:2;10586:18;;;10579:30;-1:-1:-1;;;10625:18:1;;;10618:49;10684:18;;9848:53:0;10365:343:1;9848:53:0;-1:-1:-1;;;;;9914:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;9698:261::o;11976:1621::-;12056:4;12088;-1:-1:-1;;;;;12111:16:0;;12103:64;;;;-1:-1:-1;;;12103:64:0;;10915:2:1;12103:64:0;;;10897:21:1;10954:2;10934:18;;;10927:30;10993:34;10973:18;;;10966:62;-1:-1:-1;;;11044:18:1;;;11037:33;11087:19;;12103:64:0;10713:399:1;12103:64:0;-1:-1:-1;;;;;12186:18:0;;12178:68;;;;-1:-1:-1;;;12178:68:0;;11319:2:1;12178:68:0;;;11301:21:1;11358:2;11338:18;;;11331:30;11397:34;11377:18;;;11370:62;-1:-1:-1;;;11448:18:1;;;11441:35;11493:19;;12178:68:0;11117:401:1;12178:68:0;12274:1;12265:6;:10;12257:64;;;;-1:-1:-1;;;12257:64:0;;11725:2:1;12257:64:0;;;11707:21:1;11764:2;11744:18;;;11737:30;11803:34;11783:18;;;11776:62;-1:-1:-1;;;11854:18:1;;;11847:39;11903:19;;12257:64:0;11523:405:1;12257:64:0;12338:25;12355:4;12360:2;12338:16;:25::i;:::-;12334:331;;;12388:16;;-1:-1:-1;;;12388:16:0;;;;12380:50;;;;-1:-1:-1;;;12380:50:0;;12135:2:1;12380:50:0;;;12117:21:1;12174:2;12154:18;;;12147:30;-1:-1:-1;;;12193:18:1;;;12186:52;12255:18;;12380:50:0;11933:346:1;12380:50:0;12449:16;;-1:-1:-1;;;12449:16:0;;;;12445:209;;12486:5;;12476:6;:15;;12468:38;;;;-1:-1:-1;;;12468:38:0;;12486:2:1;12468:38:0;;;:21:1;12525:2;12505:18;;;12498:30;-1:-1:-1;;;12544:18:1;;;12537:41;12595:18;;12468:38:0;12284:335:1;12468:38:0;-1:-1:-1;;;;;12525:12:0;;;;;;:8;:12;;;;;;;;12524:13;:38;;;;-1:-1:-1;;;;;;12541:21:0;;12557:4;12541:21;;12524:38;:61;;;;-1:-1:-1;;;;;;12566:19:0;;12580:4;12566:19;;12524:61;12521:132;;;12623:9;;12613:6;12597:13;12607:2;-1:-1:-1;;;;;5681:16:0;5654:7;5681:16;;;:7;:16;;;;;;;5588:117;12597:13;:22;;;;:::i;:::-;:35;;12589:62;;;;-1:-1:-1;;;12589:62:0;;12826:2:1;12589:62:0;;;12808:21:1;12865:2;12845:18;;;12838:30;-1:-1:-1;;;12884:18:1;;;12877:45;12939:18;;12589:62:0;12624:339:1;12589:62:0;12677:14;12694:25;12711:4;12716:2;12694:16;:25::i;:::-;:45;;;;-1:-1:-1;12723:16:0;;-1:-1:-1;;;12723:16:0;;;;12694:45;:74;;;;;12759:9;;12743:12;:25;;12694:74;12677:91;;12784:17;12792:4;12798:2;12784:7;:17::i;:::-;:29;;;;-1:-1:-1;12807:6:0;;-1:-1:-1;;;12807:6:0;;;;12806:7;12784:29;:50;;;;;12817:17;12825:4;12831:2;12817:7;:17::i;:::-;12781:464;;;12900:4;12851:28;5681:16;;;:7;:16;;;;;;6163:20;6178:5;6091:25;6163:20;:::i;:::-;12924;:37;12921:313;;13002:1;12986:13;;:17;:39;;;;13024:1;13007:14;;:18;12986:39;12983:121;;;13027:77;13100:3;13081:14;;13065:13;;:30;;;;:::i;:::-;13041:55;;:20;:55;:::i;:::-;13040:63;;;;:::i;:::-;13027:12;:77::i;:::-;13126:19;;:23;13123:95;;13152:64;13212:3;13190:19;;13167:20;:42;;;;:::i;:::-;:48;;;;:::i;:::-;13152:14;:64::i;:::-;12836:409;12781:464;-1:-1:-1;;;;;13261:12:0;;;;;;:6;:12;;;;;;;;;:26;;-1:-1:-1;;;;;;13277:10:0;;;;;;:6;:10;;;;;;;;13261:26;13257:73;;;13313:5;13303:15;;13257:73;-1:-1:-1;;;;;13340:13:0;;;;;;:7;:13;;;;;:23;;13357:6;;13340:13;:23;;13357:6;;13340:23;:::i;:::-;;;;-1:-1:-1;13365:22:0;;-1:-1:-1;13391:7:0;13390:92;;13476:6;13390:92;;;13402:71;13412:4;13418:16;13425:4;13431:2;13418:6;:16::i;:::-;13436:17;13444:4;13450:2;13436:7;:17::i;:::-;13455:6;13463:9;13402;:71::i;:::-;-1:-1:-1;;;;;13493:11:0;;;;;;:7;:11;;;;;:29;;13365:117;;-1:-1:-1;13365:117:0;;13493:11;;;:29;;13365:117;;13493:29;:::i;:::-;;;;;;;;13544:2;-1:-1:-1;;;;;13529:34:0;13538:4;-1:-1:-1;;;;;13529:34:0;;13548:14;13529:34;;;;368:25:1;;356:2;341:18;;222:177;13529:34:0;;;;;;;;-1:-1:-1;13583:4:0;;11976:1621;-1:-1:-1;;;;;;11976:1621:0:o;1152:173::-;1208:16;1227:6;;-1:-1:-1;;;;;1244:17:0;;;-1:-1:-1;;;;;;1244:17:0;;;;;;1277:40;;1227:6;;;;;;;1277:40;;1208:16;1277:40;1197:128;1152:173;:::o;10574:449::-;10649:4;10668:14;10692:7;673;700:6;-1:-1:-1;;;;;700:6:0;;627:87;10692:7;-1:-1:-1;;;;;10685:14:0;:3;-1:-1:-1;;;;;10685:14:0;;;:45;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;10716:14:0;;;700:6;;10716:14;;10685:45;:69;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;700:6:0;10734:9;:20;;10685:69;:181;;;;-1:-1:-1;673:7:0;700:6;-1:-1:-1;;;;;700:6:0;10845:10;:21;;10685:181;:216;;;;-1:-1:-1;;;;;;10884:17:0;;;;;;:12;:17;;;;;;;;10883:18;10685:216;:239;;;;-1:-1:-1;;;;;;10907:17:0;;;;;;:12;:17;;;;;;;;10906:18;10685:239;:254;;;;-1:-1:-1;;;;;;10928:11:0;;7301:42;10928:11;;10685:254;:275;;;;-1:-1:-1;;;;;;10943:17:0;;;;10685:275;:299;;;;-1:-1:-1;;;;;;10964:20:0;;10979:4;10964:20;;10668:316;10574:449;-1:-1:-1;;;;10574:449:0:o;11200:165::-;-1:-1:-1;;;;;11300:13:0;;11266:4;11300:13;;;:8;:13;;;;;;11266:4;;11300:13;;:31;;;;-1:-1:-1;;;;;;;;;11318:13:0;;;;;:8;:13;;;;;;;;11317:14;;11200:165::o;11373:196::-;11471:11;;11439:4;;;;11471:11;;:37;;;;-1:-1:-1;;;;;;11487:21:0;;;;;;:16;:21;;;;;;;;11486:22;11471:37;:63;;;;-1:-1:-1;;;;;;;;11513:21:0;;;;;:16;:21;;;;;;;;11512:22;;11373:196;-1:-1:-1;11373:196:0:o;15608:942::-;7528:6;:13;;-1:-1:-1;;;;7528:13:0;-1:-1:-1;;;7528:13:0;;;15725:16:::1;::::0;;15739:1:::1;15725:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15725:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15725:16:0::1;15701:40;;15770:4;15752;15757:1;15752:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15752:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15796:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;15796:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;15752:7;;15796:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15786:4;15791:1;15786:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15786:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;15850:4:::1;15830:26;::::0;;;:11:::1;:26:::0;;;;;;15865:10:::1;::::0;;;::::1;15830:47:::0;;;;;;;;-1:-1:-1;;15830:68:0::1;15826:168;;15935:4;15915:26;::::0;;;:11:::1;:26;::::0;;;;;;;15950:10:::1;::::0;-1:-1:-1;;;;;15950:10:0::1;15915:47:::0;;;;;;;-1:-1:-1;;15915:67:0;;15826:168:::1;16010:10;::::0;:200:::1;::::0;-1:-1:-1;;;16010:200:0;;-1:-1:-1;;;;;16010:10:0;;::::1;::::0;:61:::1;::::0;:200:::1;::::0;16086:20;;16010:10:::1;::::0;16137:4;;16164::::1;::::0;16184:15:::1;::::0;16010:200:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;16006:247;;16235:7;;;16006:247;16263:12;::::0;16303:25:::1;16327:1;16303:21;:25;:::i;:::-;16288:40:::0;-1:-1:-1;16342:8:0;;16339:76:::1;;16365:16;::::0;:50:::1;::::0;-1:-1:-1;;;;;16365:16:0;;::::1;::::0;16405:5:::1;::::0;16394:4;;16365:50:::1;::::0;;;16394:4;16365:16;16405:5;16365:50:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16352:63:0;;-1:-1:-1;;16339:76:0::1;16429:21;:25:::0;16426:104:::1;;16469:10;::::0;:61:::1;::::0;-1:-1:-1;;;;;16469:10:0;;::::1;::::0;16520:5:::1;::::0;16492:21:::1;::::0;16469:61:::1;::::0;;;16492:21;16469:10;16520:5;16469:61:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;16456:74:0;;-1:-1:-1;;16426:104:0::1;15680:870;;;7552:1;-1:-1:-1::0;7564:6:0;:14;;-1:-1:-1;;;;7564:14:0;;;15608:942::o;14482:1118::-;7528:6;:13;;-1:-1:-1;;;;7528:13:0;-1:-1:-1;;;7528:13:0;;;;14587:24:::1;14610:1;14587:20:::0;:24:::1;:::i;:::-;14567:44:::0;-1:-1:-1;14622:18:0::1;14643:32;14567:44:::0;14643:20;:32:::1;:::i;:::-;14771:16;::::0;;14785:1:::1;14771:16:::0;;;;;::::1;::::0;;14622:53;;-1:-1:-1;14713:21:0::1;::::0;14688:22:::1;::::0;14771:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14771:16:0::1;14747:40;;14816:4;14798;14803:1;14798:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14798:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14842:10:::1;::::0;:17:::1;::::0;;-1:-1:-1;;;14842:17:0;;;;:10;;;::::1;::::0;:15:::1;::::0;:17:::1;::::0;;::::1;::::0;14798:7;;14842:17;;;;;:10;:17:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14832:4;14837:1;14832:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14832:27:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:27;;;;14896:4:::1;14876:26;::::0;;;:11:::1;:26:::0;;;;;;14911:10:::1;::::0;;;::::1;14876:47:::0;;;;;;;;-1:-1:-1;;14876:68:0::1;14872:168;;14981:4;14961:26;::::0;;;:11:::1;:26;::::0;;;;;;;14996:10:::1;::::0;-1:-1:-1;;;;;14996:10:0::1;14961:47:::0;;;;;;;-1:-1:-1;;14961:67:0;;14872:168:::1;15056:10;::::0;:180:::1;::::0;-1:-1:-1;;;15056:180:0;;-1:-1:-1;;;;;15056:10:0;;::::1;::::0;:61:::1;::::0;:180:::1;::::0;15132:9;;15056:10:::1;::::0;15173:4;;15200::::1;::::0;15220:15:::1;::::0;15056:180:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15052:203;;15247:7;;;;;;15052:203;15275:18;15296:38;15320:14:::0;15296:21:::1;:38;:::i;:::-;15351:10;::::0;:190:::1;::::0;-1:-1:-1;;;15351:190:0;;15419:4:::1;15351:190;::::0;::::1;14933:34:1::0;14983:18;;;14976:34;;;15351:10:0::1;15026:18:1::0;;;15019:34;;;15069:18;;;15062:34;7301:42:0::1;15112:19:1::0;;;15105:44;15515:15:0::1;15165:19:1::0;;;15158:35;15275:59:0;;-1:-1:-1;;;;;;15351:10:0::1;::::0;:26:::1;::::0;15275:59;;14867:19:1;;15351:190:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15351:190:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;15351:190:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;15347:212;;15551:7;;;;;;;15347:212;;;;15576:16;::::0;::::1;::::0;;;::::1;14556:1044;;;;;-1:-1:-1::0;7564:6:0;:14;;-1:-1:-1;;;;7564:14:0;;;14482:1118::o;11031:161::-;-1:-1:-1;;;;;11129:13:0;;11096:4;11129:13;;;:8;:13;;;;;;11096:4;;11129:13;;11128:14;:31;;;;-1:-1:-1;;;;;;;;;11146:13:0;;;;;:8;:13;;;;;;;;;11031:161::o;13888:586::-;13997:7;14017:11;14043:5;14039:84;;;-1:-1:-1;6223:2:0;14039:84;;;14075:6;14071:52;;;-1:-1:-1;6266:2:0;14071:52;;;-1:-1:-1;6313:1:0;14071:52;14138:10;14135:28;;;-1:-1:-1;6549:3:0;14135:28;14178:3;14185:1;14178:8;14174:28;;14196:6;14189:13;;;;;14174:28;14213:17;6363:5;14233:12;14242:3;14233:6;:12;:::i;:::-;:30;;;;:::i;:::-;14213:50;-1:-1:-1;14278:13:0;;14274:157;;14326:4;14310:22;;;;:7;:22;;;;;:35;;14336:9;;14310:22;:35;;14336:9;;14310:35;:::i;:::-;;;;-1:-1:-1;;14365:40:0;;368:25:1;;;14388:4:0;;-1:-1:-1;;;;;14365:40:0;;;;;356:2:1;341:18;14365:40:0;;;;;;;14274:157;14448:18;14457:9;14448:6;:18;:::i;:::-;14441:25;;;;13888:586;;;;;;;;:::o;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1285:134;1353:20;;1382:31;1353:20;1382:31;:::i;:::-;1285:134;;;:::o;1424:315::-;1492:6;1500;1553:2;1541:9;1532:7;1528:23;1524:32;1521:52;;;1569:1;1566;1559:12;1521:52;1608:9;1595:23;1627:31;1652:5;1627:31;:::i;:::-;1677:5;1729:2;1714:18;;;;1701:32;;-1:-1:-1;;;1424:315:1:o;1744:160::-;1809:20;;1865:13;;1858:21;1848:32;;1838:60;;1894:1;1891;1884:12;1909:315;1974:6;1982;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2090:9;2077:23;2109:31;2134:5;2109:31;:::i;:::-;2159:5;-1:-1:-1;2183:35:1;2214:2;2199:18;;2183:35;:::i;:::-;2173:45;;1909:315;;;;;:::o;2229:180::-;2285:6;2338:2;2326:9;2317:7;2313:23;2309:32;2306:52;;;2354:1;2351;2344:12;2306:52;2377:26;2393:9;2377:26;:::i;:::-;2367:36;2229:180;-1:-1:-1;;;2229:180:1:o;2414:456::-;2491:6;2499;2507;2560:2;2548:9;2539:7;2535:23;2531:32;2528:52;;;2576:1;2573;2566:12;2528:52;2615:9;2602:23;2634:31;2659:5;2634:31;:::i;:::-;2684:5;-1:-1:-1;2741:2:1;2726:18;;2713:32;2754:33;2713:32;2754:33;:::i;:::-;2414:456;;2806:7;;-1:-1:-1;;;2860:2:1;2845:18;;;;2832:32;;2414:456::o;2875:247::-;2934:6;2987:2;2975:9;2966:7;2962:23;2958:32;2955:52;;;3003:1;3000;2993:12;2955:52;3042:9;3029:23;3061:31;3086:5;3061:31;:::i;3569:127::-;3630:10;3625:3;3621:20;3618:1;3611:31;3661:4;3658:1;3651:15;3685:4;3682:1;3675:15;3701:1191;3791:6;3799;3852:2;3840:9;3831:7;3827:23;3823:32;3820:52;;;3868:1;3865;3858:12;3820:52;3908:9;3895:23;3937:18;3978:2;3970:6;3967:14;3964:34;;;3994:1;3991;3984:12;3964:34;4032:6;4021:9;4017:22;4007:32;;4077:7;4070:4;4066:2;4062:13;4058:27;4048:55;;4099:1;4096;4089:12;4048:55;4135:2;4122:16;4157:4;4180:2;4176;4173:10;4170:36;;;4186:18;;:::i;:::-;4232:2;4229:1;4225:10;4264:2;4258:9;4327:2;4323:7;4318:2;4314;4310:11;4306:25;4298:6;4294:38;4382:6;4370:10;4367:22;4362:2;4350:10;4347:18;4344:46;4341:72;;;4393:18;;:::i;:::-;4429:2;4422:22;4479:18;;;4513:15;;;;-1:-1:-1;4555:11:1;;;4551:20;;;4583:19;;;4580:39;;;4615:1;4612;4605:12;4580:39;4639:11;;;;4659:148;4675:6;4670:3;4667:15;4659:148;;;4741:23;4760:3;4741:23;:::i;:::-;4729:36;;4692:12;;;;4785;;;;4659:148;;;4826:6;-1:-1:-1;4851:35:1;;-1:-1:-1;4867:18:1;;;4851:35;:::i;:::-;4841:45;;;;;;3701:1191;;;;;:::o;4897:180::-;4956:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:52;;;5025:1;5022;5015:12;4977:52;-1:-1:-1;5048:23:1;;4897:180;-1:-1:-1;4897:180:1:o;5082:388::-;5150:6;5158;5211:2;5199:9;5190:7;5186:23;5182:32;5179:52;;;5227:1;5224;5217:12;5179:52;5266:9;5253:23;5285:31;5310:5;5285:31;:::i;:::-;5335:5;-1:-1:-1;5392:2:1;5377:18;;5364:32;5405:33;5364:32;5405:33;:::i;:::-;5457:7;5447:17;;;5082:388;;;;;:::o;5700:127::-;5761:10;5756:3;5752:20;5749:1;5742:31;5792:4;5789:1;5782:15;5816:4;5813:1;5806:15;5832:217;5872:1;5898;5888:132;;5942:10;5937:3;5933:20;5930:1;5923:31;5977:4;5974:1;5967:15;6005:4;6002:1;5995:15;5888:132;-1:-1:-1;6034:9:1;;5832:217::o;6054:356::-;6256:2;6238:21;;;6275:18;;;6268:30;6334:34;6329:2;6314:18;;6307:62;6401:2;6386:18;;6054:356::o;7441:128::-;7508:9;;;7529:11;;;7526:37;;;7543:18;;:::i;8200:127::-;8261:10;8256:3;8252:20;8249:1;8242:31;8292:4;8289:1;8282:15;8316:4;8313:1;8306:15;8332:135;8371:3;8392:17;;;8389:43;;8412:18;;:::i;:::-;-1:-1:-1;8459:1:1;8448:13;;8332:135::o;9170:125::-;9235:9;;;9256:10;;;9253:36;;;9269:18;;:::i;12968:168::-;13041:9;;;13072;;13089:15;;;13083:22;;13069:37;13059:71;;13110:18;;:::i;13141:251::-;13211:6;13264:2;13252:9;13243:7;13239:23;13235:32;13232:52;;;13280:1;13277;13270:12;13232:52;13312:9;13306:16;13331:31;13356:5;13331:31;:::i;13397:980::-;13659:4;13707:3;13696:9;13692:19;13738:6;13727:9;13720:25;13764:2;13802:6;13797:2;13786:9;13782:18;13775:34;13845:3;13840:2;13829:9;13825:18;13818:31;13869:6;13904;13898:13;13935:6;13927;13920:22;13973:3;13962:9;13958:19;13951:26;;14012:2;14004:6;14000:15;13986:29;;14033:1;14043:195;14057:6;14054:1;14051:13;14043:195;;;14122:13;;-1:-1:-1;;;;;14118:39:1;14106:52;;14213:15;;;;14178:12;;;;14154:1;14072:9;14043:195;;;-1:-1:-1;;;;;;;14294:32:1;;;;14289:2;14274:18;;14267:60;-1:-1:-1;;;14358:3:1;14343:19;14336:35;14255:3;13397:980;-1:-1:-1;;;13397:980:1:o;15204:306::-;15292:6;15300;15308;15361:2;15349:9;15340:7;15336:23;15332:32;15329:52;;;15377:1;15374;15367:12;15329:52;15406:9;15400:16;15390:26;;15456:2;15445:9;15441:18;15435:25;15425:35;;15500:2;15489:9;15485:18;15479:25;15469:35;;15204:306;;;;;:::o

Swarm Source

ipfs://38c3d4c4040337d5758460d5bbff0b8ea751825f263cf84d56820cdbec737ff2

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.