ETH Price: $3,388.69 (+1.22%)

Contract

0x6bfeC842c6d0b46386557c62552943DE2A63794A
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer189081182023-12-31 21:24:35363 days ago1704057875IN
Ledge Protocol: LEDGE Token
0 ETH0.0028631213.36991154
Approve189060542023-12-31 14:27:47363 days ago1704032867IN
Ledge Protocol: LEDGE Token
0 ETH0.0012122726
Approve184935402023-11-03 19:12:23421 days ago1699038743IN
Ledge Protocol: LEDGE Token
0 ETH0.0013034527.95563157
Approve184744352023-11-01 2:59:47424 days ago1698807587IN
Ledge Protocol: LEDGE Token
0 ETH0.0006060813.09999395
Approve184020402023-10-21 23:43:47434 days ago1697931827IN
Ledge Protocol: LEDGE Token
0 ETH0.000182327.50850775
Approve183380212023-10-13 0:51:23443 days ago1697158283IN
Ledge Protocol: LEDGE Token
0 ETH0.000289496.21689885
Approve182645972023-10-02 18:19:59453 days ago1696270799IN
Ledge Protocol: LEDGE Token
0 ETH0.0006540226.86808544
Approve182218832023-09-26 18:58:11459 days ago1695754691IN
Ledge Protocol: LEDGE Token
0 ETH0.0005710423.4590754
Approve182061032023-09-24 13:58:23461 days ago1695563903IN
Ledge Protocol: LEDGE Token
0 ETH0.000180847.44757971
Approve181690992023-09-19 9:34:59467 days ago1695116099IN
Ledge Protocol: LEDGE Token
0 ETH0.0005255211.34400465
Approve181685782023-09-19 7:49:59467 days ago1695109799IN
Ledge Protocol: LEDGE Token
0 ETH0.0005834212.52908551
Transfer181685342023-09-19 7:40:59467 days ago1695109259IN
Ledge Protocol: LEDGE Token
0 ETH0.002098459.21115342
Approve181681492023-09-19 6:23:11467 days ago1695104591IN
Ledge Protocol: LEDGE Token
0 ETH0.000351887.5566634
Approve181681022023-09-19 6:13:47467 days ago1695104027IN
Ledge Protocol: LEDGE Token
0 ETH0.000357277.67241938
Approve181680622023-09-19 6:05:47467 days ago1695103547IN
Ledge Protocol: LEDGE Token
0 ETH0.000359567.77175606
Approve181680422023-09-19 6:01:47467 days ago1695103307IN
Ledge Protocol: LEDGE Token
0 ETH0.000398738.61836458
Approve181679502023-09-19 5:43:11467 days ago1695102191IN
Ledge Protocol: LEDGE Token
0 ETH0.00035837.69463704
Approve181679292023-09-19 5:38:59467 days ago1695101939IN
Ledge Protocol: LEDGE Token
0 ETH0.000348527.48451579
Approve181677942023-09-19 5:11:59467 days ago1695100319IN
Ledge Protocol: LEDGE Token
0 ETH0.000346657.44440255
Approve181674522023-09-19 4:02:23467 days ago1695096143IN
Ledge Protocol: LEDGE Token
0 ETH0.000445029.55695704
Approve181674332023-09-19 3:58:35467 days ago1695095915IN
Ledge Protocol: LEDGE Token
0 ETH0.000434929.39327698
Approve181674212023-09-19 3:56:11467 days ago1695095771IN
Ledge Protocol: LEDGE Token
0 ETH0.0007412116
Approve181674062023-09-19 3:53:11467 days ago1695095591IN
Ledge Protocol: LEDGE Token
0 ETH0.000437889.4034664
Approve181673902023-09-19 3:49:59467 days ago1695095399IN
Ledge Protocol: LEDGE Token
0 ETH0.0005095110.92777621
Approve181673802023-09-19 3:47:59467 days ago1695095279IN
Ledge Protocol: LEDGE Token
0 ETH0.000350777.52319803
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
189081182023-12-31 21:24:35363 days ago1704057875
Ledge Protocol: LEDGE Token
0 ETH
189081182023-12-31 21:24:35363 days ago1704057875
Ledge Protocol: LEDGE Token
0 ETH
184935412023-11-03 19:12:35421 days ago1699038755
Ledge Protocol: LEDGE Token
0.00040734 ETH
184935412023-11-03 19:12:35421 days ago1699038755
Ledge Protocol: LEDGE Token
0.00040734 ETH
184744382023-11-01 3:00:23424 days ago1698807623
Ledge Protocol: LEDGE Token
0.00012604 ETH
184744382023-11-01 3:00:23424 days ago1698807623
Ledge Protocol: LEDGE Token
0.00012604 ETH
183380232023-10-13 0:51:47443 days ago1697158307
Ledge Protocol: LEDGE Token
0.00292501 ETH
183380232023-10-13 0:51:47443 days ago1697158307
Ledge Protocol: LEDGE Token
0.00292501 ETH
181776682023-09-20 14:22:23465 days ago1695219743
Ledge Protocol: LEDGE Token
0.00046229 ETH
181776682023-09-20 14:22:23465 days ago1695219743
Ledge Protocol: LEDGE Token
0.00046229 ETH
181708002023-09-19 15:18:11466 days ago1695136691
Ledge Protocol: LEDGE Token
0.00139451 ETH
181708002023-09-19 15:18:11466 days ago1695136691
Ledge Protocol: LEDGE Token
0.00139451 ETH
181691292023-09-19 9:40:59467 days ago1695116459
Ledge Protocol: LEDGE Token
0.00037891 ETH
181691292023-09-19 9:40:59467 days ago1695116459
Ledge Protocol: LEDGE Token
0.00037891 ETH
181691012023-09-19 9:35:23467 days ago1695116123
Ledge Protocol: LEDGE Token
0.00051187 ETH
181691012023-09-19 9:35:23467 days ago1695116123
Ledge Protocol: LEDGE Token
0.00051187 ETH
181689512023-09-19 9:05:11467 days ago1695114311
Ledge Protocol: LEDGE Token
0.00014307 ETH
181689512023-09-19 9:05:11467 days ago1695114311
Ledge Protocol: LEDGE Token
0.00014307 ETH
181685342023-09-19 7:40:59467 days ago1695109259
Ledge Protocol: LEDGE Token
0.00137849 ETH
181685342023-09-19 7:40:59467 days ago1695109259
Ledge Protocol: LEDGE Token
0.00137849 ETH
181683882023-09-19 7:11:47467 days ago1695107507
Ledge Protocol: LEDGE Token
0.00016049 ETH
181683882023-09-19 7:11:47467 days ago1695107507
Ledge Protocol: LEDGE Token
0.00016049 ETH
181683172023-09-19 6:57:11467 days ago1695106631
Ledge Protocol: LEDGE Token
0.00343684 ETH
181683172023-09-19 6:57:11467 days ago1695106631
Ledge Protocol: LEDGE Token
0.00343684 ETH
181681992023-09-19 6:33:23467 days ago1695105203
Ledge Protocol: LEDGE Token
0.00017387 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LedgeProtocol

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-06
*/

/**
LEDGE PROTOCOL
Building a Layer 2 Blockchain on Ethereum Network to overcome the problem of network scalability, safety and security. Driving an innovation in technology and finance through a decentralized Social Finance ecosystem.

Telegram    : https://t.me/ledgeprotocol
Website     : https://ledgeprotocol.tech/
Twitter     : https://twitter.com/ledgeprotocol
Whitepaper  : https://ledgeprotocol.tech/Ledge_Protocol_Whitepaper.pdf
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

}

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

contract LedgeProtocol is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Ledge Protocol";
    string private constant _symbol = "LEDGE";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 25;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0x76a84E653266aAa423D69Ab60C50313eCE463433);
    address payable private _marketingAddress = payable(0x7e9baE57a4855b20326cC0F3AB015489bb2013C2);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 20000000 * 10**9;
    uint256 public _maxWalletSize = 20000000 * 10**9;
    uint256 public _swapTokensAtAmount = 50000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        	if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 delete preTrader[accounts[i]];
        }
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a670de0b6b3a764000060001962000372565b620000289060001962000395565b6006556000600881905560146009819055600a8290556019600b819055600c839055600d819055600e92909255600f829055601380546001600160a01b03199081167376a84e653266aaa423d69ab60c50313ece46343317909155815416737e9bae57a4855b20326cc0f3ab015489bb2013c21790556016805461ffff60a81b1916600160b01b17905566470de4df8200006017819055601855652d79883d20009055348015620000d857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000196573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001bc9190620003bb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002309190620003bb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a49190620003bb565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200036391815260200190565b60405180910390a350620003ed565b6000826200039057634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003b657634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003ce57600080fd5b81516001600160a01b0381168114620003e657600080fd5b9392505050565b61207d80620003fd6000396000f3fe6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146105d6578063c492f046146105eb578063dd62ed3e1461060b578063ea1644d514610651578063f2fde38b1461067157600080fd5b8063a9059cbb14610536578063b5a6522314610556578063bdd795ef14610576578063bfd79284146105a657600080fd5b80638f9a55c0116100dc5780638f9a55c0146104b257806395d89b41146104c857806398a5c315146104f6578063a2a957bb1461051657600080fd5b80637d1db4a5146104315780637f2feddc146104475780638da5cb5b146104745780638f70ccf71461049257600080fd5b806349bd5a5e116101855780636fc3eaec116101545780636fc3eaec146103c757806370a08231146103dc578063715018a6146103fc57806374010ece1461041157600080fd5b806349bd5a5e1461034757806367aadb7e146103675780636b999053146103875780636d8aa8f8146103a757600080fd5b806318160ddd116101c157806318160ddd146102d057806323b872dd146102f55780632fd689e314610315578063313ce5671461032b57600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102685780631694505e1461029857600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611b72565b610691565b005b34801561022b57600080fd5b5060408051808201909152600e81526d13195919d948141c9bdd1bd8dbdb60921b60208201525b60405161025f9190611c37565b60405180910390f35b34801561027457600080fd5b50610288610283366004611c8c565b610730565b604051901515815260200161025f565b3480156102a457600080fd5b506015546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b3480156102dc57600080fd5b50670de0b6b3a76400005b60405190815260200161025f565b34801561030157600080fd5b50610288610310366004611cb8565b610747565b34801561032157600080fd5b506102e760195481565b34801561033757600080fd5b506040516009815260200161025f565b34801561035357600080fd5b506016546102b8906001600160a01b031681565b34801561037357600080fd5b5061021d610382366004611d45565b6107b0565b34801561039357600080fd5b5061021d6103a2366004611d87565b610848565b3480156103b357600080fd5b5061021d6103c2366004611db4565b610893565b3480156103d357600080fd5b5061021d6108db565b3480156103e857600080fd5b506102e76103f7366004611d87565b610926565b34801561040857600080fd5b5061021d610948565b34801561041d57600080fd5b5061021d61042c366004611dcf565b6109bc565b34801561043d57600080fd5b506102e760175481565b34801561045357600080fd5b506102e7610462366004611d87565b60116020526000908152604090205481565b34801561048057600080fd5b506000546001600160a01b03166102b8565b34801561049e57600080fd5b5061021d6104ad366004611db4565b6109eb565b3480156104be57600080fd5b506102e760185481565b3480156104d457600080fd5b506040805180820190915260058152644c4544474560d81b6020820152610252565b34801561050257600080fd5b5061021d610511366004611dcf565b610a33565b34801561052257600080fd5b5061021d610531366004611de8565b610a62565b34801561054257600080fd5b50610288610551366004611c8c565b610aa0565b34801561056257600080fd5b5061021d610571366004611d45565b610aad565b34801561058257600080fd5b50610288610591366004611d87565b60126020526000908152604090205460ff1681565b3480156105b257600080fd5b506102886105c1366004611d87565b60106020526000908152604090205460ff1681565b3480156105e257600080fd5b5061021d610b49565b3480156105f757600080fd5b5061021d610606366004611e1a565b610b9d565b34801561061757600080fd5b506102e7610626366004611e6e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561065d57600080fd5b5061021d61066c366004611dcf565b610c3e565b34801561067d57600080fd5b5061021d61068c366004611d87565b610c6d565b6000546001600160a01b031633146106c45760405162461bcd60e51b81526004016106bb90611ea7565b60405180910390fd5b60005b815181101561072c576001601060008484815181106106e8576106e8611edc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061072481611f08565b9150506106c7565b5050565b600061073d338484610d57565b5060015b92915050565b6000610754848484610e7b565b6107a684336107a185604051806060016040528060288152602001612020602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061140c565b610d57565b5060019392505050565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016106bb90611ea7565b60005b8181101561084357601260008484848181106107fb576107fb611edc565b90506020020160208101906108109190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191690558061083b81611f08565b9150506107dd565b505050565b6000546001600160a01b031633146108725760405162461bcd60e51b81526004016106bb90611ea7565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108bd5760405162461bcd60e51b81526004016106bb90611ea7565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061091057506014546001600160a01b0316336001600160a01b0316145b61091957600080fd5b4761092381611446565b50565b6001600160a01b03811660009081526002602052604081205461074190611480565b6000546001600160a01b031633146109725760405162461bcd60e51b81526004016106bb90611ea7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016106bb90611ea7565b601755565b6000546001600160a01b03163314610a155760405162461bcd60e51b81526004016106bb90611ea7565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a5d5760405162461bcd60e51b81526004016106bb90611ea7565b601955565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016106bb90611ea7565b600893909355600a91909155600955600b55565b600061073d338484610e7b565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016106bb90611ea7565b60005b8181101561084357600160126000858585818110610afa57610afa611edc565b9050602002016020810190610b0f9190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b4181611f08565b915050610ada565b6013546001600160a01b0316336001600160a01b03161480610b7e57506014546001600160a01b0316336001600160a01b0316145b610b8757600080fd5b6000610b9230610926565b905061092381611504565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016106bb90611ea7565b60005b82811015610c38578160056000868685818110610be957610be9611edc565b9050602002016020810190610bfe9190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c3081611f08565b915050610bca565b50505050565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016106bb90611ea7565b601855565b6000546001600160a01b03163314610c975760405162461bcd60e51b81526004016106bb90611ea7565b6001600160a01b038116610cfc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bb565b6001600160a01b038216610e1a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610edf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bb565b6001600160a01b038216610f415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bb565b60008111610fa35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106bb565b6000546001600160a01b03848116911614801590610fcf57506000546001600160a01b03838116911614155b8015610ff457506001600160a01b03831660009081526012602052604090205460ff16155b801561101957506001600160a01b03821660009081526012602052604090205460ff16155b1561130557601654600160a01b900460ff166110bd576001600160a01b03831660009081526012602052604090205460ff166110bd5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106bb565b60175481111561110f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106bb565b6001600160a01b03831660009081526010602052604090205460ff1615801561115157506001600160a01b03821660009081526010602052604090205460ff16155b6111a95760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106bb565b6016546001600160a01b0383811691161461122e57601854816111cb84610926565b6111d59190611f21565b1061122e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106bb565b600061123930610926565b6019546017549192508210159082106112525760175491505b8080156112695750601654600160a81b900460ff16155b801561128357506016546001600160a01b03868116911614155b80156112985750601654600160b01b900460ff165b80156112bd57506001600160a01b03851660009081526005602052604090205460ff16155b80156112e257506001600160a01b03841660009081526005602052604090205460ff16155b15611302576112f082611504565b4780156113005761130047611446565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061134757506001600160a01b03831660009081526005602052604090205460ff165b8061137957506016546001600160a01b0385811691161480159061137957506016546001600160a01b03848116911614155b1561138657506000611400565b6016546001600160a01b0385811691161480156113b157506015546001600160a01b03848116911614155b156113c357600854600c55600954600d555b6016546001600160a01b0384811691161480156113ee57506015546001600160a01b03858116911614155b1561140057600a54600c55600b54600d555b610c388484848461167e565b600081848411156114305760405162461bcd60e51b81526004016106bb9190611c37565b50600061143d8486611f39565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561072c573d6000803e3d6000fd5b60006006548211156114e75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106bb565b60006114f16116ac565b90506114fd83826116cf565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154c5761154c611edc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c99190611f50565b816001815181106115dc576115dc611edc565b6001600160a01b0392831660209182029290920101526015546116029130911684610d57565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061163b908590600090869030904290600401611f6d565b600060405180830381600087803b15801561165557600080fd5b505af1158015611669573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168b5761168b611711565b61169684848461173f565b80610c3857610c38600e54600c55600f54600d55565b60008060006116b9611836565b90925090506116c882826116cf565b9250505090565b60006114fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611876565b600c541580156117215750600d54155b1561172857565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611751876118a4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117839087611901565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117b29086611943565b6001600160a01b0389166000908152600260205260409020556117d4816119a2565b6117de84836119ec565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182391815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a764000061185182826116cf565b82101561186d57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836118975760405162461bcd60e51b81526004016106bb9190611c37565b50600061143d8486611fde565b60008060008060008060008060006118c18a600c54600d54611a10565b92509250925060006118d16116ac565b905060008060006118e48e878787611a65565b919e509c509a509598509396509194505050505091939550919395565b60006114fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140c565b6000806119508385611f21565b9050838110156114fd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bb565b60006119ac6116ac565b905060006119ba8383611ab5565b306000908152600260205260409020549091506119d79082611943565b30600090815260026020526040902055505050565b6006546119f99083611901565b600655600754611a099082611943565b6007555050565b6000808080611a2a6064611a248989611ab5565b906116cf565b90506000611a3d6064611a248a89611ab5565b90506000611a5582611a4f8b86611901565b90611901565b9992985090965090945050505050565b6000808080611a748886611ab5565b90506000611a828887611ab5565b90506000611a908888611ab5565b90506000611aa282611a4f8686611901565b939b939a50919850919650505050505050565b600082600003611ac757506000610741565b6000611ad38385612000565b905082611ae08583611fde565b146114fd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bb565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092357600080fd5b8035611b6d81611b4d565b919050565b60006020808385031215611b8557600080fd5b823567ffffffffffffffff80821115611b9d57600080fd5b818501915085601f830112611bb157600080fd5b813581811115611bc357611bc3611b37565b8060051b604051601f19603f83011681018181108582111715611be857611be8611b37565b604052918252848201925083810185019188831115611c0657600080fd5b938501935b82851015611c2b57611c1c85611b62565b84529385019392850192611c0b565b98975050505050505050565b600060208083528351808285015260005b81811015611c6457858101830151858201604001528201611c48565b81811115611c76576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9f57600080fd5b8235611caa81611b4d565b946020939093013593505050565b600080600060608486031215611ccd57600080fd5b8335611cd881611b4d565b92506020840135611ce881611b4d565b929592945050506040919091013590565b60008083601f840112611d0b57600080fd5b50813567ffffffffffffffff811115611d2357600080fd5b6020830191508360208260051b8501011115611d3e57600080fd5b9250929050565b60008060208385031215611d5857600080fd5b823567ffffffffffffffff811115611d6f57600080fd5b611d7b85828601611cf9565b90969095509350505050565b600060208284031215611d9957600080fd5b81356114fd81611b4d565b80358015158114611b6d57600080fd5b600060208284031215611dc657600080fd5b6114fd82611da4565b600060208284031215611de157600080fd5b5035919050565b60008060008060808587031215611dfe57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2f57600080fd5b833567ffffffffffffffff811115611e4657600080fd5b611e5286828701611cf9565b9094509250611e65905060208501611da4565b90509250925092565b60008060408385031215611e8157600080fd5b8235611e8c81611b4d565b91506020830135611e9c81611b4d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f1a57611f1a611ef2565b5060010190565b60008219821115611f3457611f34611ef2565b500190565b600082821015611f4b57611f4b611ef2565b500390565b600060208284031215611f6257600080fd5b81516114fd81611b4d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fbd5784516001600160a01b031683529383019391830191600101611f98565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ffb57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561201a5761201a611ef2565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a0d89e693945f6f0257ec0105b49cc26e2e741e2beafb2bbce9480ae7bf1827364736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146105d6578063c492f046146105eb578063dd62ed3e1461060b578063ea1644d514610651578063f2fde38b1461067157600080fd5b8063a9059cbb14610536578063b5a6522314610556578063bdd795ef14610576578063bfd79284146105a657600080fd5b80638f9a55c0116100dc5780638f9a55c0146104b257806395d89b41146104c857806398a5c315146104f6578063a2a957bb1461051657600080fd5b80637d1db4a5146104315780637f2feddc146104475780638da5cb5b146104745780638f70ccf71461049257600080fd5b806349bd5a5e116101855780636fc3eaec116101545780636fc3eaec146103c757806370a08231146103dc578063715018a6146103fc57806374010ece1461041157600080fd5b806349bd5a5e1461034757806367aadb7e146103675780636b999053146103875780636d8aa8f8146103a757600080fd5b806318160ddd116101c157806318160ddd146102d057806323b872dd146102f55780632fd689e314610315578063313ce5671461032b57600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b3146102685780631694505e1461029857600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611b72565b610691565b005b34801561022b57600080fd5b5060408051808201909152600e81526d13195919d948141c9bdd1bd8dbdb60921b60208201525b60405161025f9190611c37565b60405180910390f35b34801561027457600080fd5b50610288610283366004611c8c565b610730565b604051901515815260200161025f565b3480156102a457600080fd5b506015546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b3480156102dc57600080fd5b50670de0b6b3a76400005b60405190815260200161025f565b34801561030157600080fd5b50610288610310366004611cb8565b610747565b34801561032157600080fd5b506102e760195481565b34801561033757600080fd5b506040516009815260200161025f565b34801561035357600080fd5b506016546102b8906001600160a01b031681565b34801561037357600080fd5b5061021d610382366004611d45565b6107b0565b34801561039357600080fd5b5061021d6103a2366004611d87565b610848565b3480156103b357600080fd5b5061021d6103c2366004611db4565b610893565b3480156103d357600080fd5b5061021d6108db565b3480156103e857600080fd5b506102e76103f7366004611d87565b610926565b34801561040857600080fd5b5061021d610948565b34801561041d57600080fd5b5061021d61042c366004611dcf565b6109bc565b34801561043d57600080fd5b506102e760175481565b34801561045357600080fd5b506102e7610462366004611d87565b60116020526000908152604090205481565b34801561048057600080fd5b506000546001600160a01b03166102b8565b34801561049e57600080fd5b5061021d6104ad366004611db4565b6109eb565b3480156104be57600080fd5b506102e760185481565b3480156104d457600080fd5b506040805180820190915260058152644c4544474560d81b6020820152610252565b34801561050257600080fd5b5061021d610511366004611dcf565b610a33565b34801561052257600080fd5b5061021d610531366004611de8565b610a62565b34801561054257600080fd5b50610288610551366004611c8c565b610aa0565b34801561056257600080fd5b5061021d610571366004611d45565b610aad565b34801561058257600080fd5b50610288610591366004611d87565b60126020526000908152604090205460ff1681565b3480156105b257600080fd5b506102886105c1366004611d87565b60106020526000908152604090205460ff1681565b3480156105e257600080fd5b5061021d610b49565b3480156105f757600080fd5b5061021d610606366004611e1a565b610b9d565b34801561061757600080fd5b506102e7610626366004611e6e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561065d57600080fd5b5061021d61066c366004611dcf565b610c3e565b34801561067d57600080fd5b5061021d61068c366004611d87565b610c6d565b6000546001600160a01b031633146106c45760405162461bcd60e51b81526004016106bb90611ea7565b60405180910390fd5b60005b815181101561072c576001601060008484815181106106e8576106e8611edc565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061072481611f08565b9150506106c7565b5050565b600061073d338484610d57565b5060015b92915050565b6000610754848484610e7b565b6107a684336107a185604051806060016040528060288152602001612020602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061140c565b610d57565b5060019392505050565b6000546001600160a01b031633146107da5760405162461bcd60e51b81526004016106bb90611ea7565b60005b8181101561084357601260008484848181106107fb576107fb611edc565b90506020020160208101906108109190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191690558061083b81611f08565b9150506107dd565b505050565b6000546001600160a01b031633146108725760405162461bcd60e51b81526004016106bb90611ea7565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108bd5760405162461bcd60e51b81526004016106bb90611ea7565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061091057506014546001600160a01b0316336001600160a01b0316145b61091957600080fd5b4761092381611446565b50565b6001600160a01b03811660009081526002602052604081205461074190611480565b6000546001600160a01b031633146109725760405162461bcd60e51b81526004016106bb90611ea7565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016106bb90611ea7565b601755565b6000546001600160a01b03163314610a155760405162461bcd60e51b81526004016106bb90611ea7565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a5d5760405162461bcd60e51b81526004016106bb90611ea7565b601955565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016106bb90611ea7565b600893909355600a91909155600955600b55565b600061073d338484610e7b565b6000546001600160a01b03163314610ad75760405162461bcd60e51b81526004016106bb90611ea7565b60005b8181101561084357600160126000858585818110610afa57610afa611edc565b9050602002016020810190610b0f9190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b4181611f08565b915050610ada565b6013546001600160a01b0316336001600160a01b03161480610b7e57506014546001600160a01b0316336001600160a01b0316145b610b8757600080fd5b6000610b9230610926565b905061092381611504565b6000546001600160a01b03163314610bc75760405162461bcd60e51b81526004016106bb90611ea7565b60005b82811015610c38578160056000868685818110610be957610be9611edc565b9050602002016020810190610bfe9190611d87565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c3081611f08565b915050610bca565b50505050565b6000546001600160a01b03163314610c685760405162461bcd60e51b81526004016106bb90611ea7565b601855565b6000546001600160a01b03163314610c975760405162461bcd60e51b81526004016106bb90611ea7565b6001600160a01b038116610cfc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106bb565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106bb565b6001600160a01b038216610e1a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106bb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610edf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106bb565b6001600160a01b038216610f415760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106bb565b60008111610fa35760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106bb565b6000546001600160a01b03848116911614801590610fcf57506000546001600160a01b03838116911614155b8015610ff457506001600160a01b03831660009081526012602052604090205460ff16155b801561101957506001600160a01b03821660009081526012602052604090205460ff16155b1561130557601654600160a01b900460ff166110bd576001600160a01b03831660009081526012602052604090205460ff166110bd5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106bb565b60175481111561110f5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106bb565b6001600160a01b03831660009081526010602052604090205460ff1615801561115157506001600160a01b03821660009081526010602052604090205460ff16155b6111a95760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106bb565b6016546001600160a01b0383811691161461122e57601854816111cb84610926565b6111d59190611f21565b1061122e5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106bb565b600061123930610926565b6019546017549192508210159082106112525760175491505b8080156112695750601654600160a81b900460ff16155b801561128357506016546001600160a01b03868116911614155b80156112985750601654600160b01b900460ff165b80156112bd57506001600160a01b03851660009081526005602052604090205460ff16155b80156112e257506001600160a01b03841660009081526005602052604090205460ff16155b15611302576112f082611504565b4780156113005761130047611446565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061134757506001600160a01b03831660009081526005602052604090205460ff165b8061137957506016546001600160a01b0385811691161480159061137957506016546001600160a01b03848116911614155b1561138657506000611400565b6016546001600160a01b0385811691161480156113b157506015546001600160a01b03848116911614155b156113c357600854600c55600954600d555b6016546001600160a01b0384811691161480156113ee57506015546001600160a01b03858116911614155b1561140057600a54600c55600b54600d555b610c388484848461167e565b600081848411156114305760405162461bcd60e51b81526004016106bb9190611c37565b50600061143d8486611f39565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561072c573d6000803e3d6000fd5b60006006548211156114e75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106bb565b60006114f16116ac565b90506114fd83826116cf565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154c5761154c611edc565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c99190611f50565b816001815181106115dc576115dc611edc565b6001600160a01b0392831660209182029290920101526015546116029130911684610d57565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061163b908590600090869030904290600401611f6d565b600060405180830381600087803b15801561165557600080fd5b505af1158015611669573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168b5761168b611711565b61169684848461173f565b80610c3857610c38600e54600c55600f54600d55565b60008060006116b9611836565b90925090506116c882826116cf565b9250505090565b60006114fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611876565b600c541580156117215750600d54155b1561172857565b600c8054600e55600d8054600f5560009182905555565b600080600080600080611751876118a4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117839087611901565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117b29086611943565b6001600160a01b0389166000908152600260205260409020556117d4816119a2565b6117de84836119ec565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161182391815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a764000061185182826116cf565b82101561186d57505060065492670de0b6b3a764000092509050565b90939092509050565b600081836118975760405162461bcd60e51b81526004016106bb9190611c37565b50600061143d8486611fde565b60008060008060008060008060006118c18a600c54600d54611a10565b92509250925060006118d16116ac565b905060008060006118e48e878787611a65565b919e509c509a509598509396509194505050505091939550919395565b60006114fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061140c565b6000806119508385611f21565b9050838110156114fd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106bb565b60006119ac6116ac565b905060006119ba8383611ab5565b306000908152600260205260409020549091506119d79082611943565b30600090815260026020526040902055505050565b6006546119f99083611901565b600655600754611a099082611943565b6007555050565b6000808080611a2a6064611a248989611ab5565b906116cf565b90506000611a3d6064611a248a89611ab5565b90506000611a5582611a4f8b86611901565b90611901565b9992985090965090945050505050565b6000808080611a748886611ab5565b90506000611a828887611ab5565b90506000611a908888611ab5565b90506000611aa282611a4f8686611901565b939b939a50919850919650505050505050565b600082600003611ac757506000610741565b6000611ad38385612000565b905082611ae08583611fde565b146114fd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106bb565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092357600080fd5b8035611b6d81611b4d565b919050565b60006020808385031215611b8557600080fd5b823567ffffffffffffffff80821115611b9d57600080fd5b818501915085601f830112611bb157600080fd5b813581811115611bc357611bc3611b37565b8060051b604051601f19603f83011681018181108582111715611be857611be8611b37565b604052918252848201925083810185019188831115611c0657600080fd5b938501935b82851015611c2b57611c1c85611b62565b84529385019392850192611c0b565b98975050505050505050565b600060208083528351808285015260005b81811015611c6457858101830151858201604001528201611c48565b81811115611c76576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9f57600080fd5b8235611caa81611b4d565b946020939093013593505050565b600080600060608486031215611ccd57600080fd5b8335611cd881611b4d565b92506020840135611ce881611b4d565b929592945050506040919091013590565b60008083601f840112611d0b57600080fd5b50813567ffffffffffffffff811115611d2357600080fd5b6020830191508360208260051b8501011115611d3e57600080fd5b9250929050565b60008060208385031215611d5857600080fd5b823567ffffffffffffffff811115611d6f57600080fd5b611d7b85828601611cf9565b90969095509350505050565b600060208284031215611d9957600080fd5b81356114fd81611b4d565b80358015158114611b6d57600080fd5b600060208284031215611dc657600080fd5b6114fd82611da4565b600060208284031215611de157600080fd5b5035919050565b60008060008060808587031215611dfe57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2f57600080fd5b833567ffffffffffffffff811115611e4657600080fd5b611e5286828701611cf9565b9094509250611e65905060208501611da4565b90509250925092565b60008060408385031215611e8157600080fd5b8235611e8c81611b4d565b91506020830135611e9c81611b4d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f1a57611f1a611ef2565b5060010190565b60008219821115611f3457611f34611ef2565b500190565b600082821015611f4b57611f4b611ef2565b500390565b600060208284031215611f6257600080fd5b81516114fd81611b4d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fbd5784516001600160a01b031683529383019391830191600101611f98565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ffb57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561201a5761201a611ef2565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a0d89e693945f6f0257ec0105b49cc26e2e741e2beafb2bbce9480ae7bf1827364736f6c634300080e0033

Deployed Bytecode Sourcemap

4520:13997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13285:169;;;;;;;;;;-1:-1:-1;13285:169:0;;;;;:::i;:::-;;:::i;:::-;;7074:83;;;;;;;;;;-1:-1:-1;7144:5:0;;;;;;;;;;;;-1:-1:-1;;;7144:5:0;;;;7074:83;;;;;;;:::i;:::-;;;;;;;;7999:193;;;;;;;;;;-1:-1:-1;7999:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7999:193:0;2469:187:1;5924:41:0;;;;;;;;;;-1:-1:-1;5924:41:0;;;;-1:-1:-1;;;;;5924:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5924:41:0;2661:229:1;7351:95:0;;;;;;;;;;-1:-1:-1;5079:18:0;7351:95;;;3041:25:1;;;3029:2;3014:18;7351:95:0;2895:177:1;8200:446:0;;;;;;;;;;-1:-1:-1;8200:446:0;;;;;:::i;:::-;;:::i;6222:50::-;;;;;;;;;;;;;;;;7260:83;;;;;;;;;;-1:-1:-1;7260:83:0;;4753:1;3680:36:1;;3668:2;3653:18;7260:83:0;3538:184:1;5972:28:0;;;;;;;;;;-1:-1:-1;5972:28:0;;;;-1:-1:-1;;;;;5972:28:0;;;18318:196;;;;;;;;;;-1:-1:-1;18318:196:0;;;;;:::i;:::-;;:::i;13462:92::-;;;;;;;;;;-1:-1:-1;13462:92:0;;;;;:::i;:::-;;:::i;17494:101::-;;;;;;;;;;-1:-1:-1;17494:101:0;;;;;:::i;:::-;;:::i;13042:235::-;;;;;;;;;;;;;:::i;7454:138::-;;;;;;;;;;-1:-1:-1;7454:138:0;;;;;:::i;:::-;;:::i;2007:148::-;;;;;;;;;;;;;:::i;17634:108::-;;;;;;;;;;-1:-1:-1;17634:108:0;;;;;:::i;:::-;;:::i;6114:46::-;;;;;;;;;;;;;;;;5617:43;;;;;;;;;;-1:-1:-1;5617:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1793:79;;;;;;;;;;-1:-1:-1;1831:7:0;1858:6;-1:-1:-1;;;;;1858:6:0;1793:79;;12689:101;;;;;;;;;;-1:-1:-1;12689:101:0;;;;;:::i;:::-;;:::i;6167:48::-;;;;;;;;;;;;;;;;7165:87;;;;;;;;;;-1:-1:-1;7237:7:0;;;;;;;;;;;;-1:-1:-1;;;7237:7:0;;;;7165:87;;17303:139;;;;;;;;;;-1:-1:-1;17303:139:0;;;;;:::i;:::-;;:::i;16960:291::-;;;;;;;;;;-1:-1:-1;16960:291:0;;;;;:::i;:::-;;:::i;7600:199::-;;;;;;;;;;-1:-1:-1;7600:199:0;;;;;:::i;:::-;;:::i;18115:195::-;;;;;;;;;;-1:-1:-1;18115:195:0;;;;;:::i;:::-;;:::i;5667:42::-;;;;;;;;;;-1:-1:-1;5667:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5579:36;;;;;;;;;;-1:-1:-1;5579:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12798:236;;;;;;;;;;;;;:::i;17873:234::-;;;;;;;;;;-1:-1:-1;17873:234:0;;;;;:::i;:::-;;:::i;7807:184::-;;;;;;;;;;-1:-1:-1;7807:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7956:18:0;;;7924:7;7956:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7807:184;17750:115;;;;;;;;;;-1:-1:-1;17750:115:0;;;;;:::i;:::-;;:::i;2163:244::-;;;;;;;;;;-1:-1:-1;2163:244:0;;;;;:::i;:::-;;:::i;13285:169::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;;;;;;;;;13361:9:::1;13356:91;13380:5;:12;13376:1;:16;13356:91;;;13431:4;13414;:14;13419:5;13425:1;13419:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13414:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13414:14:0;:21;;-1:-1:-1;;13414:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13394:3;::::1;::::0;::::1;:::i;:::-;;;;13356:91;;;;13285:169:::0;:::o;7999:193::-;8101:4;8123:39;632:10;8146:7;8155:6;8123:8;:39::i;:::-;-1:-1:-1;8180:4:0;7999:193;;;;;:::o;8200:446::-;8332:4;8349:36;8359:6;8367:9;8378:6;8349:9;:36::i;:::-;8396:220;8419:6;632:10;8467:138;8523:6;8467:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8467:19:0;;;;;;:11;:19;;;;;;;;632:10;8467:33;;;;;;;;;;:37;:138::i;:::-;8396:8;:220::i;:::-;-1:-1:-1;8634:4:0;8200:446;;;;;:::o;18318:196::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;18405:9:::1;18401:106;18420:19:::0;;::::1;18401:106;;;18473:9;:22;18483:8;;18492:1;18483:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18473:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18473:22:0;18466:29;;-1:-1:-1;;18466:29:0::1;::::0;;18441:3;::::1;::::0;::::1;:::i;:::-;;;;18401:106;;;;18318:196:::0;;:::o;13462:92::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13526:12:0::1;13541:5;13526:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13526:20:0::1;::::0;;13462:92::o;17494:101::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17561:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17561:26:0::1;-1:-1:-1::0;;;;17561:26:0;;::::1;::::0;;;::::1;::::0;;17494:101::o;13042:235::-;13108:19;;-1:-1:-1;;;;;13108:19:0;632:10;-1:-1:-1;;;;;13092:35:0;;:72;;;-1:-1:-1;13147:17:0;;-1:-1:-1;;;;;13147:17:0;632:10;-1:-1:-1;;;;;13131:33:0;;13092:72;13084:81;;;;;;13205:21;13237:32;13205:21;13237:12;:32::i;:::-;13073:204;13042:235::o;7454:138::-;-1:-1:-1;;;;;7567:16:0;;7520:7;7567:16;;;:7;:16;;;;;;7547:37;;:19;:37::i;2007:148::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;2114:1:::1;2098:6:::0;;2077:40:::1;::::0;-1:-1:-1;;;;;2098:6:0;;::::1;::::0;2077:40:::1;::::0;2114:1;;2077:40:::1;2145:1;2128:19:::0;;-1:-1:-1;;;;;;2128:19:0::1;::::0;;2007:148::o;17634:108::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17708:12:::1;:26:::0;17634:108::o;12689:101::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;12756:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12756:26:0::1;-1:-1:-1::0;;;;12756:26:0;;::::1;::::0;;;::::1;::::0;;12689:101::o;17303:139::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17394:19:::1;:40:::0;17303:139::o;16960:291::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17094:14:::1;:30:::0;;;;17135:15:::1;:32:::0;;;;17178:12:::1;:26:::0;17215:13:::1;:28:::0;16960:291::o;7600:199::-;7705:4;7727:42;632:10;7751:9;7762:6;7727:9;:42::i;18115:195::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;18201:9:::1;18197:106;18216:19:::0;;::::1;18197:106;;;18287:4;18262:9;:22;18272:8;;18281:1;18272:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18262:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18262:22:0;:29;;-1:-1:-1;;18262:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18237:3;::::1;::::0;::::1;:::i;:::-;;;;18197:106;;12798:236:::0;12864:19;;-1:-1:-1;;;;;12864:19:0;632:10;-1:-1:-1;;;;;12848:35:0;;:72;;;-1:-1:-1;12903:17:0;;-1:-1:-1;;;;;12903:17:0;632:10;-1:-1:-1;;;;;12887:33:0;;12848:72;12840:81;;;;;;12932:23;12958:24;12976:4;12958:9;:24::i;:::-;12932:50;;12993:33;13010:15;12993:16;:33::i;17873:234::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17990:9:::1;17986:114;18005:19:::0;;::::1;17986:114;;;18080:8;18046:18;:31;18065:8;;18074:1;18065:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18046:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18046:31:0;:42;;-1:-1:-1;;18046:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18026:3;::::1;::::0;::::1;:::i;:::-;;;;17986:114;;;;17873:234:::0;;;:::o;17750:115::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;17827:14:::1;:30:::0;17750:115::o;2163:244::-;1920:6;;-1:-1:-1;;;;;1920:6:0;632:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2252:22:0;::::1;2244:73;;;::::0;-1:-1:-1;;;2244:73:0;;7796:2:1;2244:73:0::1;::::0;::::1;7778:21:1::0;7835:2;7815:18;;;7808:30;7874:34;7854:18;;;7847:62;-1:-1:-1;;;7925:18:1;;;7918:36;7971:19;;2244:73:0::1;7594:402:1::0;2244:73:0::1;2354:6;::::0;;2333:38:::1;::::0;-1:-1:-1;;;;;2333:38:0;;::::1;::::0;2354:6;::::1;::::0;2333:38:::1;::::0;::::1;2382:6;:17:::0;;-1:-1:-1;;;;;;2382:17:0::1;-1:-1:-1::0;;;;;2382:17:0;;;::::1;::::0;;;::::1;::::0;;2163:244::o;9337:369::-;-1:-1:-1;;;;;9464:19:0;;9456:68;;;;-1:-1:-1;;;9456:68:0;;8203:2:1;9456:68:0;;;8185:21:1;8242:2;8222:18;;;8215:30;8281:34;8261:18;;;8254:62;-1:-1:-1;;;8332:18:1;;;8325:34;8376:19;;9456:68:0;8001:400:1;9456:68:0;-1:-1:-1;;;;;9543:21:0;;9535:68;;;;-1:-1:-1;;;9535:68:0;;8608:2:1;9535:68:0;;;8590:21:1;8647:2;8627:18;;;8620:30;8686:34;8666:18;;;8659:62;-1:-1:-1;;;8737:18:1;;;8730:32;8779:19;;9535:68:0;8406:398:1;9535:68:0;-1:-1:-1;;;;;9614:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9666:32;;3041:25:1;;;9666:32:0;;3014:18:1;9666:32:0;;;;;;;9337:369;;;:::o;9714:2369::-;-1:-1:-1;;;;;9836:18:0;;9828:68;;;;-1:-1:-1;;;9828:68:0;;9011:2:1;9828:68:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;-1:-1:-1;;;9140:18:1;;;9133:35;9185:19;;9828:68:0;8809:401:1;9828:68:0;-1:-1:-1;;;;;9915:16:0;;9907:64;;;;-1:-1:-1;;;9907:64:0;;9417:2:1;9907:64:0;;;9399:21:1;9456:2;9436:18;;;9429:30;9495:34;9475:18;;;9468:62;-1:-1:-1;;;9546:18:1;;;9539:33;9589:19;;9907:64:0;9215:399:1;9907:64:0;9999:1;9990:6;:10;9982:64;;;;-1:-1:-1;;;9982:64:0;;9821:2:1;9982:64:0;;;9803:21:1;9860:2;9840:18;;;9833:30;9899:34;9879:18;;;9872:62;-1:-1:-1;;;9950:18:1;;;9943:39;9999:19;;9982:64:0;9619:405:1;9982:64:0;1831:7;1858:6;-1:-1:-1;;;;;10064:15:0;;;1858:6;;10064:15;;;;:32;;-1:-1:-1;1831:7:0;1858:6;-1:-1:-1;;;;;10083:13:0;;;1858:6;;10083:13;;10064:32;:52;;;;-1:-1:-1;;;;;;10101:15:0;;;;;;:9;:15;;;;;;;;10100:16;10064:52;:70;;;;-1:-1:-1;;;;;;10121:13:0;;;;;;:9;:13;;;;;;;;10120:14;10064:70;10060:1297;;;10191:11;;-1:-1:-1;;;10191:11:0;;;;10186:144;;-1:-1:-1;;;;;10231:15:0;;;;;;:9;:15;;;;;;;;10223:91;;;;-1:-1:-1;;;10223:91:0;;10231:2:1;10223:91:0;;;10213:21:1;10270:2;10250:18;;;10243:30;10309:34;10289:18;;;10282:62;10380:33;10360:18;;;10353:61;10431:19;;10223:91:0;10029:427:1;10223:91:0;10364:12;;10354:6;:22;;10346:63;;;;-1:-1:-1;;;10346:63:0;;10663:2:1;10346:63:0;;;10645:21:1;10702:2;10682:18;;;10675:30;10741;10721:18;;;10714:58;10789:18;;10346:63:0;10461:352:1;10346:63:0;-1:-1:-1;;;;;10433:10:0;;;;;;:4;:10;;;;;;;;10432:11;:24;;;;-1:-1:-1;;;;;;10448:8:0;;;;;;:4;:8;;;;;;;;10447:9;10432:24;10424:72;;;;-1:-1:-1;;;10424:72:0;;11020:2:1;10424:72:0;;;11002:21:1;11059:2;11039:18;;;11032:30;11098:34;11078:18;;;11071:62;-1:-1:-1;;;11149:18:1;;;11142:33;11192:19;;10424:72:0;10818:399:1;10424:72:0;10522:13;;-1:-1:-1;;;;;10516:19:0;;;10522:13;;10516:19;10513:146;;10589:14;;10580:6;10564:13;10574:2;10564:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10556:87;;;;-1:-1:-1;;;10556:87:0;;11557:2:1;10556:87:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:33;11729:19;;10556:87:0;11355:399:1;10556:87:0;10675:28;10706:24;10724:4;10706:9;:24::i;:::-;10784:19;;10847:12;;10675:55;;-1:-1:-1;10760:43:0;;;;10823:36;;10820:124;;10916:12;;10893:35;;10820:124;10964:7;:18;;;;-1:-1:-1;10976:6:0;;-1:-1:-1;;;10976:6:0;;;;10975:7;10964:18;:43;;;;-1:-1:-1;10994:13:0;;-1:-1:-1;;;;;10986:21:0;;;10994:13;;10986:21;;10964:43;:58;;;;-1:-1:-1;11011:11:0;;-1:-1:-1;;;11011:11:0;;;;10964:58;:87;;;;-1:-1:-1;;;;;;11027:24:0;;;;;;:18;:24;;;;;;;;11026:25;10964:87;:114;;;;-1:-1:-1;;;;;;11056:22:0;;;;;;:18;:22;;;;;;;;11055:23;10964:114;10960:386;;;11099:38;11116:20;11099:16;:38::i;:::-;11185:21;11229:22;;11225:106;;11276:35;11289:21;11276:12;:35::i;:::-;11080:266;10960:386;10136:1221;;10060:1297;-1:-1:-1;;;;;11433:24:0;;11369:12;11433:24;;;:18;:24;;;;;;11384:4;;11433:24;;;:50;;-1:-1:-1;;;;;;11461:22:0;;;;;;:18;:22;;;;;;;;11433:50;11432:102;;;-1:-1:-1;11497:13:0;;-1:-1:-1;;;;;11489:21:0;;;11497:13;;11489:21;;;;:44;;-1:-1:-1;11520:13:0;;-1:-1:-1;;;;;11514:19:0;;;11520:13;;11514:19;;11489:44;11428:594;;;-1:-1:-1;11561:5:0;11428:594;;;11644:13;;-1:-1:-1;;;;;11636:21:0;;;11644:13;;11636:21;:55;;;;-1:-1:-1;11675:15:0;;-1:-1:-1;;;;;11661:30:0;;;11675:15;;11661:30;;11636:55;11633:162;;;11724:14;;11712:9;:26;11767:12;;11757:7;:22;11633:162;11854:13;;-1:-1:-1;;;;;11848:19:0;;;11854:13;;11848:19;:55;;;;-1:-1:-1;11887:15:0;;-1:-1:-1;;;;;11871:32:0;;;11887:15;;11871:32;;11848:55;11844:165;;;11936:15;;11924:9;:27;11980:13;;11970:7;:23;11844:165;12034:41;12049:4;12055:2;12059:6;12067:7;12034:14;:41::i;2771:224::-;2891:7;2927:12;2919:6;;;;2911:29;;;;-1:-1:-1;;;2911:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2951:9:0;2963:5;2967:1;2963;:5;:::i;:::-;2951:17;2771:224;-1:-1:-1;;;;;2771:224:0:o;12582:99::-;12639:17;;:34;;-1:-1:-1;;;;;12639:17:0;;;;:34;;;;;12666:6;;12639:17;:34;:17;:34;12666:6;12639:17;:34;;;;;;;;;;;;;;;;;;;8654:323;8749:7;8807;;8796;:18;;8774:110;;;;-1:-1:-1;;;8774:110:0;;12091:2:1;8774:110:0;;;12073:21:1;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;-1:-1:-1;;;12220:18:1;;;12213:40;12270:19;;8774:110:0;11889:406:1;8774:110:0;8895:19;8917:10;:8;:10::i;:::-;8895:32;-1:-1:-1;8945:24:0;:7;8895:32;8945:11;:24::i;:::-;8938:31;8654:323;-1:-1:-1;;;8654:323:0:o;12091:483::-;6366:6;:13;;-1:-1:-1;;;;6366:13:0;-1:-1:-1;;;6366:13:0;;;12193:16:::1;::::0;;12207:1:::1;12193:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12193:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12193:16:0::1;12169:40;;12238:4;12220;12225:1;12220:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12220:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12264:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12264:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12220:7;;12264:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12254:4;12259:1;12254:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12254:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12329:15:::1;::::0;12297:62:::1;::::0;12314:4:::1;::::0;12329:15:::1;12347:11:::0;12297:8:::1;:62::i;:::-;12370:15;::::0;:196:::1;::::0;-1:-1:-1;;;12370:196:0;;-1:-1:-1;;;;;12370:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12451:11;;12370:15:::1;::::0;12493:4;;12520::::1;::::0;12540:15:::1;::::0;12370:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6402:6:0;:14;;-1:-1:-1;;;;6402:14:0;;;-1:-1:-1;;;;12091:483:0:o;13562:282::-;13718:7;13713:28;;13727:14;:12;:14::i;:::-;13752:44;13770:6;13778:9;13789:6;13752:17;:44::i;:::-;13812:7;13807:29;;13821:15;9268:17;;9256:9;:29;9306:15;;9296:7;:25;9212:117;16523:164;16565:7;16586:15;16603;16622:19;:17;:19::i;:::-;16585:56;;-1:-1:-1;16585:56:0;-1:-1:-1;16659:20:0;16585:56;;16659:11;:20::i;:::-;16652:27;;;;16523:164;:::o;3257:132::-;3315:7;3342:39;3346:1;3349;3342:39;;;;;;;;;;;;;;;;;:3;:39::i;8985:219::-;9032:9;;:14;:30;;;;-1:-1:-1;9050:7:0;;:12;9032:30;9028:43;;;8985:219::o;9028:43::-;9103:9;;;9083:17;:29;9141:7;;;9123:15;:25;-1:-1:-1;9161:13:0;;;;9185:11;8985:219::o;13852:610::-;13999:15;14029:23;14067:12;14094:23;14132:12;14159:13;14186:19;14197:7;14186:10;:19::i;:::-;-1:-1:-1;;;;;14234:15:0;;;;;;:7;:15;;;;;;13984:221;;-1:-1:-1;13984:221:0;;-1:-1:-1;13984:221:0;;-1:-1:-1;13984:221:0;-1:-1:-1;13984:221:0;-1:-1:-1;13984:221:0;-1:-1:-1;14234:28:0;;13984:221;14234:19;:28::i;:::-;-1:-1:-1;;;;;14216:15:0;;;;;;;:7;:15;;;;;;:46;;;;14294:18;;;;;;;:39;;14317:15;14294:22;:39::i;:::-;-1:-1:-1;;;;;14273:18:0;;;;;;:7;:18;;;;;:60;14344:16;14354:5;14344:9;:16::i;:::-;14371:23;14383:4;14389;14371:11;:23::i;:::-;14427:9;-1:-1:-1;;;;;14410:44:0;14419:6;-1:-1:-1;;;;;14410:44:0;;14438:15;14410:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14410:44:0;;;;;;;;13973:489;;;;;;13852:610;;;:::o;16695:257::-;16793:7;;16746;;;;5079:18;16861:20;16793:7;5079:18;16861:11;:20::i;:::-;16851:7;:30;16847:61;;;-1:-1:-1;;16891:7:0;;;5079:18;;-1:-1:-1;16695:257:0;-1:-1:-1;16695:257:0:o;16847:61::-;16927:7;;16936;;-1:-1:-1;16695:257:0;-1:-1:-1;16695:257:0:o;3397:223::-;3517:7;3552:12;3545:5;3537:28;;;;-1:-1:-1;;;3537:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3576:9:0;3588:5;3592:1;3588;:5;:::i;14881:615::-;14981:7;15003;15025;15047;15069;15091;15127:23;15152:12;15166:13;15196:40;15208:7;15217:9;;15228:7;;15196:11;:40::i;:::-;15126:110;;;;;;15247:19;15269:10;:8;:10::i;:::-;15247:32;;15291:15;15308:23;15333:12;15362:46;15374:7;15383:4;15389:5;15396:11;15362;:46::i;:::-;15290:118;;-1:-1:-1;15290:118:0;-1:-1:-1;15290:118:0;-1:-1:-1;15459:15:0;;-1:-1:-1;15476:4:0;;-1:-1:-1;15482:5:0;;-1:-1:-1;;;;;14881:615:0;;;;;;;:::o;2627:136::-;2685:7;2712:43;2716:1;2719;2712:43;;;;;;;;;;;;;;;;;:3;:43::i;2440:179::-;2498:7;;2530:5;2534:1;2530;:5;:::i;:::-;2518:17;;2559:1;2554;:6;;2546:46;;;;-1:-1:-1;;;2546:46:0;;13965:2:1;2546:46:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:29;14023:18;;;14016:57;14090:18;;2546:46:0;13763:351:1;14470:211:0;14523:19;14545:10;:8;:10::i;:::-;14523:32;-1:-1:-1;14566:13:0;14582:22;:5;14523:32;14582:9;:22::i;:::-;14656:4;14640:22;;;;:7;:22;;;;;;14566:38;;-1:-1:-1;14640:33:0;;14566:38;14640:26;:33::i;:::-;14631:4;14615:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14470:211:0:o;14689:147::-;14767:7;;:17;;14779:4;14767:11;:17::i;:::-;14757:7;:27;14808:10;;:20;;14823:4;14808:14;:20::i;:::-;14795:10;:33;-1:-1:-1;;14689:147:0:o;15504:469::-;15673:7;;;;15767:30;15793:3;15767:21;:7;15779:8;15767:11;:21::i;:::-;:25;;:30::i;:::-;15752:45;-1:-1:-1;15808:13:0;15824:28;15848:3;15824:19;:7;15836:6;15824:11;:19::i;:28::-;15808:44;-1:-1:-1;15863:23:0;15889:28;15808:44;15889:17;:7;15901:4;15889:11;:17::i;:::-;:21;;:28::i;:::-;15863:54;15953:4;;-1:-1:-1;15959:5:0;;-1:-1:-1;15504:469:0;;-1:-1:-1;;;;;15504:469:0:o;15981:534::-;16175:7;;;;16272:24;:7;16284:11;16272;:24::i;:::-;16254:42;-1:-1:-1;16307:12:0;16322:21;:4;16331:11;16322:8;:21::i;:::-;16307:36;-1:-1:-1;16354:13:0;16370:22;:5;16380:11;16370:9;:22::i;:::-;16354:38;-1:-1:-1;16403:23:0;16429:28;16354:38;16429:17;:7;16441:4;16429:11;:17::i;:28::-;16476:7;;;;-1:-1:-1;16502:4:0;;-1:-1:-1;15981:534:0;;-1:-1:-1;;;;;;;15981:534:0:o;3003:246::-;3061:7;3085:1;3090;3085:6;3081:47;;-1:-1:-1;3115:1:0;3108:8;;3081:47;3138:9;3150:5;3154:1;3150;:5;:::i;:::-;3138:17;-1:-1:-1;3183:1:0;3174:5;3178:1;3138:17;3174:5;:::i;:::-;:10;3166:56;;;;-1:-1:-1;;;3166:56:0;;14494:2:1;3166:56:0;;;14476:21:1;14533:2;14513:18;;;14506:30;14572:34;14552:18;;;14545:62;-1:-1:-1;;;14623:18:1;;;14616:31;14664:19;;3166:56:0;14292:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:367::-;3998:8;4008:6;4062:3;4055:4;4047:6;4043:17;4039:27;4029:55;;4080:1;4077;4070:12;4029:55;-1:-1:-1;4103:20:1;;4146:18;4135:30;;4132:50;;;4178:1;4175;4168:12;4132:50;4215:4;4207:6;4203:17;4191:29;;4275:3;4268:4;4258:6;4255:1;4251:14;4243:6;4239:27;4235:38;4232:47;4229:67;;;4292:1;4289;4282:12;4229:67;3935:367;;;;;:::o;4307:437::-;4393:6;4401;4454:2;4442:9;4433:7;4429:23;4425:32;4422:52;;;4470:1;4467;4460:12;4422:52;4510:9;4497:23;4543:18;4535:6;4532:30;4529:50;;;4575:1;4572;4565:12;4529:50;4614:70;4676:7;4667:6;4656:9;4652:22;4614:70;:::i;:::-;4703:8;;4588:96;;-1:-1:-1;4307:437:1;-1:-1:-1;;;;4307:437:1:o;4749:247::-;4808:6;4861:2;4849:9;4840:7;4836:23;4832:32;4829:52;;;4877:1;4874;4867:12;4829:52;4916:9;4903:23;4935:31;4960:5;4935:31;:::i;5001:160::-;5066:20;;5122:13;;5115:21;5105:32;;5095:60;;5151:1;5148;5141:12;5166:180;5222:6;5275:2;5263:9;5254:7;5250:23;5246:32;5243:52;;;5291:1;5288;5281:12;5243:52;5314:26;5330:9;5314:26;:::i;5351:180::-;5410:6;5463:2;5451:9;5442:7;5438:23;5434:32;5431:52;;;5479:1;5476;5469:12;5431:52;-1:-1:-1;5502:23:1;;5351:180;-1:-1:-1;5351:180:1:o;5536:385::-;5622:6;5630;5638;5646;5699:3;5687:9;5678:7;5674:23;5670:33;5667:53;;;5716:1;5713;5706:12;5667:53;-1:-1:-1;;5739:23:1;;;5809:2;5794:18;;5781:32;;-1:-1:-1;5860:2:1;5845:18;;5832:32;;5911:2;5896:18;5883:32;;-1:-1:-1;5536:385:1;-1:-1:-1;5536:385:1:o;5926:505::-;6018:6;6026;6034;6087:2;6075:9;6066:7;6062:23;6058:32;6055:52;;;6103:1;6100;6093:12;6055:52;6143:9;6130:23;6176:18;6168:6;6165:30;6162:50;;;6208:1;6205;6198:12;6162:50;6247:70;6309:7;6300:6;6289:9;6285:22;6247:70;:::i;:::-;6336:8;;-1:-1:-1;6221:96:1;-1:-1:-1;6390:35:1;;-1:-1:-1;6421:2:1;6406:18;;6390:35;:::i;:::-;6380:45;;5926:505;;;;;:::o;6436:388::-;6504:6;6512;6565:2;6553:9;6544:7;6540:23;6536:32;6533:52;;;6581:1;6578;6571:12;6533:52;6620:9;6607:23;6639:31;6664:5;6639:31;:::i;:::-;6689:5;-1:-1:-1;6746:2:1;6731:18;;6718:32;6759:33;6718:32;6759:33;:::i;:::-;6811:7;6801:17;;;6436:388;;;;;:::o;6829:356::-;7031:2;7013:21;;;7050:18;;;7043:30;7109:34;7104:2;7089:18;;7082:62;7176:2;7161:18;;6829:356::o;7190:127::-;7251:10;7246:3;7242:20;7239:1;7232:31;7282:4;7279:1;7272:15;7306:4;7303:1;7296:15;7322:127;7383:10;7378:3;7374:20;7371:1;7364:31;7414:4;7411:1;7404:15;7438:4;7435:1;7428:15;7454:135;7493:3;7514:17;;;7511:43;;7534:18;;:::i;:::-;-1:-1:-1;7581:1:1;7570:13;;7454:135::o;11222:128::-;11262:3;11293:1;11289:6;11286:1;11283:13;11280:39;;;11299:18;;:::i;:::-;-1:-1:-1;11335:9:1;;11222:128::o;11759:125::-;11799:4;11827:1;11824;11821:8;11818:34;;;11832:18;;:::i;:::-;-1:-1:-1;11869:9:1;;11759:125::o;12300:251::-;12370:6;12423:2;12411:9;12402:7;12398:23;12394:32;12391:52;;;12439:1;12436;12429:12;12391:52;12471:9;12465:16;12490:31;12515:5;12490:31;:::i;12556:980::-;12818:4;12866:3;12855:9;12851:19;12897:6;12886:9;12879:25;12923:2;12961:6;12956:2;12945:9;12941:18;12934:34;13004:3;12999:2;12988:9;12984:18;12977:31;13028:6;13063;13057:13;13094:6;13086;13079:22;13132:3;13121:9;13117:19;13110:26;;13171:2;13163:6;13159:15;13145:29;;13192:1;13202:195;13216:6;13213:1;13210:13;13202:195;;;13281:13;;-1:-1:-1;;;;;13277:39:1;13265:52;;13372:15;;;;13337:12;;;;13313:1;13231:9;13202:195;;;-1:-1:-1;;;;;;;13453:32:1;;;;13448:2;13433:18;;13426:60;-1:-1:-1;;;13517:3:1;13502:19;13495:35;13414:3;12556:980;-1:-1:-1;;;12556:980:1:o;13541:217::-;13581:1;13607;13597:132;;13651:10;13646:3;13642:20;13639:1;13632:31;13686:4;13683:1;13676:15;13714:4;13711:1;13704:15;13597:132;-1:-1:-1;13743:9:1;;13541:217::o;14119:168::-;14159:7;14225:1;14221;14217:6;14213:14;14210:1;14207:21;14202:1;14195:9;14188:17;14184:45;14181:71;;;14232:18;;:::i;:::-;-1:-1:-1;14272:9:1;;14119:168::o

Swarm Source

ipfs://a0d89e693945f6f0257ec0105b49cc26e2e741e2beafb2bbce9480ae7bf18273

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Ledge Protocol is a layer 2 blockchain that is built on the Ethereum network to overcome the problems of network scalability, safety, and security. Provide an alternative network with special use cases such as social-Fi and unruggable liquidity pools.

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.