Contract 0xebb77b3414af083e523df915f78df19b7ddd3969

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x668d49b0cd458c3131145282230f7146410a07a76bf4c61a1defdac3867c6b9764257002021-04-09 21:45:421 day 11 hrs ago0x4a7285ac841c3d2fcabee33064167c9cfe4f32b8 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.00022155
0x4edf616d9e9aedfa4ddc7ca31a4b6db72bdd5b78daf0bf201bfeadb088b8396063816472021-04-08 7:55:383 days 1 hr ago0x7c5348809b4ac46ef3a02773adcaa8280d4e0e0e IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.00022155
0x1c6e828f0102e86960aed776563ef6a7a177305c1bd13d51295a1ba595444e0963742202021-04-08 1:37:593 days 8 hrs ago0x3e702822e20ecfce367f91bad10575d9dd1f1bcc IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.00022155
0xef52fbbbcc785340e4661b8678a9d15146a82bdfe3be2126e2240954428e145363671462021-04-07 19:41:423 days 13 hrs ago0x05bf42872613354760fdc37eef4043ccc9d529d8 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.00022155
0x00a188f999d71a86a474a218ff392be368bfacea16973f760867fd81a6f23f8663592952021-04-07 12:56:103 days 20 hrs ago0xfe2560fbfc30fe6e1e6bc237e7682cc73050bc0d IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.00022155
0x801ebe912ae595cbbc2d644c7e392c73bc11f44cdcca108b2884704e56df72c563269802021-04-06 9:12:285 days 27 mins ago0x2fe0c4151695fe04acbf17fd0df3d3d879512831 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x01d034d28d48d9e3e484b04ccb4c3f93cb17c7b566e451826abe11343260758763169182021-04-06 0:46:035 days 8 hrs ago0xbdbf35460ff763b00ccba9082da00168fe3bd0ef IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x358a1cb908ee8d84e800bdcbaae23e276cc3a34dd88ca92df21cb2e56e48085763099342021-04-05 18:53:455 days 14 hrs ago0xe57d27f5c01a6217d21bb9f4106715e50110f4db IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xe5c1b14df4ce0762f2f5fb79e5521c6687919ce9fd1e2f21beaa00c0cf4a739363063892021-04-05 15:47:005 days 17 hrs ago0xd8d6d25c9d390c937f918ba0cd0a0cb84b1bee4c IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x8e886e33b5a0b0ac33e0a06c2b16c55708db4598ab5cec544a15131fb6c60b3963028982021-04-05 12:40:365 days 20 hrs ago0x808ac25575dda8bdfd8def7b72e909bc5ff87805 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x42759a2d55fdda91edb5495b034585dac6bbca3d69ad501779e42b761d5f904c63023552021-04-05 12:13:265 days 21 hrs ago0x7f4a4d96adea477ec226f3cb612962d88f4e7c2c IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0002511
0x48164237e37ba6c81b4a4fd650799ffe5b7ab0abac9a91983a7e0c981839c47763023532021-04-05 12:13:205 days 21 hrs ago0x7f4a4d96adea477ec226f3cb612962d88f4e7c2c IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xc4480cdd575e9ad598dbb59b84990869899631f50bbc4f3e184ef3325791cbf962958982021-04-05 6:47:396 days 2 hrs ago0xc482173016084db8df91e10c09014fcf3454ca9a IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x580bc0fda8492c124c89d39bae3c70b6ac247620443212da4e069542f1d2f14a62879772021-04-05 0:09:396 days 9 hrs ago0x8d6d3b2e3e97087170ea5eb21d75a2743e607e13 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xdd5ea2faebae0ee6dfe64075e5a1a52d08cd69feb373bd9679cf432a675c8c5662835482021-04-04 20:27:016 days 13 hrs ago0xa4f0940dadc9e2669d06dfd5e6569cd04646bd0a IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x8371b08bdd94cf223bd96131d103af5b950395f858c40ca25fed71faaa5306f062708882021-04-04 9:28:247 days 11 mins ago0x144b2ae44f32069a703214dfab5d4a4d91597803 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xfcf9e1edf0c0c13f0761ba47f572326270ab7544d7442070765867ef5771f99462702682021-04-04 8:57:227 days 42 mins ago0x02faeafb4955bebcc1fe03a62ddbc8b8e60a439b IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xa3683bfeafa70a66d351348fb49d06816302d396b61267fbee48c530d8de063662688462021-04-04 7:45:487 days 1 hr ago0xd7c76c4d25bb8bd4675e6173b29e140aff6a2258 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x5b3c0228e6588998d12ab21afe0d182adc2cf1b2b6364583884f1aee6da4615b62662862021-04-04 5:37:487 days 4 hrs ago0x0bfc4f74b4579caa6fa18b87659150aee16658f2 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xab3d5f578e78d5f06f64b35d4af72afc5994a6de64662ccc9d2c164a1cb0f97762598692021-04-04 0:15:147 days 9 hrs ago0x50d9a4a4dbf94cfa1ef209b3ffa7414c65b58f35 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xc49e2289bd5b0c603209e8e49a087dbbf7018358e882b1e6fa6c925a32efee6662543032021-04-03 19:32:517 days 14 hrs ago0xa35f024627e77c9586841eafac7bc9c9068d9dc7 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x123bad81817db99489f9745d3d3078f942e25d2ffd83acbc3cf5edeb0565e87362542182021-04-03 19:28:367 days 14 hrs ago0x15ed7df32ab770a75edb031184f3b2bca11a1cc1 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xcf11da5a50ca28379398cd8c1a9d6d7f256347b0e8475d74069b57a1cda9034262519632021-04-03 17:35:307 days 16 hrs ago0x1bdf338cf8a7904576b19f4663a924582177bc8e IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0xb7f30bb824792bf24a2c4e9cbca4dd4d31e5a33f206caccdced57508fafe343d62517432021-04-03 17:24:307 days 16 hrs ago0xd1b6ad19fde8e3959e6117433632cc6f96c0ce34 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
0x3777a195e1bd774aa88226209837c7291e0a8ec2989ec9332a8cde92444fb04062465572021-04-03 13:04:257 days 20 hrs ago0xaa74855655bb4c335021e5dd881097ad413c7219 IN  0xebb77b3414af083e523df915f78df19b7ddd39690 BNB0.0004431
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x99581c94c2ee5f5327bd48a0dd88737d62afc0f992d10e599a0e343b1638a84558364272021-03-20 4:40:1322 days 4 hrs ago 0x553990f2cba90272390f62c5bdb1681ffc899675  Contract Creation0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xe8221c34a775d4ffc325331407712349243a9f5f

Contract Name:
BSCswapPair

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-01-20
*/

/**
 *Submitted for verification at BscScan.com on 2020-10-04
*/

// File: contracts/bscswap/interfaces/IBSCswapFactory.sol

// SPDX-License-Identifier: GPL-3.0-or-later

pragma solidity >=0.5.0;

interface IBSCswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function migrator() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function setMigrator(address) external;
}

// File: contracts/bscswap/libraries/SafeMath.sol

pragma solidity =0.6.12;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMathBSCswap {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

// File: contracts/bscswap/BSCswapBEP20.sol

pragma solidity =0.6.12;


contract BSCswapBEP20 {
    using SafeMathBSCswap for uint;

    string public constant name = 'SwapLiquidity LP Token';
    string public constant symbol = 'SLP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint) public nonces;

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

    constructor() public {
        uint chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes(name)),
                keccak256(bytes('1')),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(address owner, address spender, uint value) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(address from, address to, uint value) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        if (allowance[from][msg.sender] != uint(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'BSCswap: EXPIRED');
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress != address(0) && recoveredAddress == owner, 'BSCswap: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

// File: contracts/bscswap/libraries/Math.sol

pragma solidity =0.6.12;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

// File: contracts/bscswap/libraries/UQ112x112.sol

pragma solidity =0.6.12;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

// File: contracts/bscswap/interfaces/IBEP20.sol

pragma solidity >=0.5.0;

interface IBEP20BSCswap {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

// File: contracts/bscswap/interfaces/IBSCswapCallee.sol

pragma solidity >=0.5.0;

interface IBSCswapCallee {
    function BSCswapCall(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

// File: contracts/bscswap/BSCswapPair.sol


pragma solidity =0.6.12;

interface IMigrator {
    // Return the desired amount of liquidity token that the migrator wants.
    function desiredLiquidity() external view returns (uint256);
}

contract BSCswapPair is BSCswapBEP20 {
    using SafeMathBSCswap  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'BSCswap: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'BSCswap: TRANSFER_FAILED');
    }

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'BSCswap: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'BSCswap: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IBSCswapFactory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast));
                    uint denominator = rootK.mul(5).add(rootKLast);
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IBEP20BSCswap(token0).balanceOf(address(this));
        uint balance1 = IBEP20BSCswap(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            address migrator = IBSCswapFactory(factory).migrator();
            if (msg.sender == migrator) {
                liquidity = IMigrator(migrator).desiredLiquidity();
                require(liquidity > 0 && liquidity != uint256(-1), "Bad desired liquidity");
            } else {
                require(migrator == address(0), "Must not have migrator");
                liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
                _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
            }
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'BSCswap: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IBEP20BSCswap(_token0).balanceOf(address(this));
        uint balance1 = IBEP20BSCswap(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'BSCswap: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IBEP20BSCswap(_token0).balanceOf(address(this));
        balance1 = IBEP20BSCswap(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'BSCswap: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'BSCswap: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
            address _token0 = token0;
            address _token1 = token1;
            require(to != _token0 && to != _token1, 'BSCswap: INVALID_TO');
            if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
            if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
            if (data.length > 0) IBSCswapCallee(to).BSCswapCall(msg.sender, amount0Out, amount1Out, data);
            balance0 = IBEP20BSCswap(_token0).balanceOf(address(this));
            balance1 = IBEP20BSCswap(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'BSCswap: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
            uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
            uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
            require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'BSCswap: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IBEP20BSCswap(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IBEP20BSCswap(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IBEP20BSCswap(token0).balanceOf(address(this)), IBEP20BSCswap(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint112","name":"reserve0","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"reserve1","type":"uint112"}],"name":"Sync","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount0Out","type":"uint256"},{"internalType":"uint256","name":"amount1Out","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b50604080518082018252601681527f537761704c6971756964697479204c5020546f6b656e000000000000000000006020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f247c0167569c5c487315348bf75c2f49b071de0c673316ee77ac1451275131d6818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b031916331790556124628061011b6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610544578063d505accf1461054c578063dd62ed3e1461059d578063fff6cae9146105cb576101b9565b8063ba9a7a561461050e578063bc25cf7714610516578063c45a01551461053c576101b9565b80637ecebe00116100d35780637ecebe001461047557806389afcb441461049b57806395d89b41146104da578063a9059cbb146104e2576101b9565b80636a6278421461042157806370a08231146104475780637464fc3d1461046d576101b9565b806323b872dd116101665780633644e515116101405780633644e515146103db578063485cc955146103e35780635909c0d5146104115780635a3d549314610419576101b9565b806323b872dd1461037f57806330adf81f146103b5578063313ce567146103bd576101b9565b8063095ea7b311610197578063095ea7b3146103015780630dfe16811461034157806318160ddd14610365576101b9565b8063022c0d9f146101be57806306fdde031461024c5780630902f1ac146102c9575b600080fd5b61024a600480360360808110156101d457600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561020b57600080fd5b82018360208201111561021d57600080fd5b8035906020019184600183028401116401000000008311171561023f57600080fd5b5090925090506105d3565b005b610254610b08565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028e578181015183820152602001610276565b50505050905090810190601f1680156102bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d1610b41565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61032d6004803603604081101561031757600080fd5b506001600160a01b038135169060200135610b6b565b604080519115158252519081900360200190f35b610349610b82565b604080516001600160a01b039092168252519081900360200190f35b61036d610b91565b60408051918252519081900360200190f35b61032d6004803603606081101561039557600080fd5b506001600160a01b03813581169160208101359091169060400135610b97565b61036d610c2b565b6103c5610c4f565b6040805160ff9092168252519081900360200190f35b61036d610c54565b61024a600480360360408110156103f957600080fd5b506001600160a01b0381358116916020013516610c5a565b61036d610cff565b61036d610d05565b61036d6004803603602081101561043757600080fd5b50356001600160a01b0316610d0b565b61036d6004803603602081101561045d57600080fd5b50356001600160a01b03166111ad565b61036d6111bf565b61036d6004803603602081101561048b57600080fd5b50356001600160a01b03166111c5565b6104c1600480360360208110156104b157600080fd5b50356001600160a01b03166111d7565b6040805192835260208301919091528051918290030190f35b610254611569565b61032d600480360360408110156104f857600080fd5b506001600160a01b0381351690602001356115a2565b61036d6115af565b61024a6004803603602081101561052c57600080fd5b50356001600160a01b03166115b5565b610349611725565b610349611734565b61024a600480360360e081101561056257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611743565b61036d600480360360408110156105b357600080fd5b506001600160a01b038135811691602001351661196b565b61024a611988565b600c5460011461061c576040805162461bcd60e51b815260206004820152600f60248201526e1094d0dcddd85c0e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c558415158061062f5750600084115b61066a5760405162461bcd60e51b815260040180806020018281038252602381526020018061240a6023913960400191505060405180910390fd5b600080610675610b41565b5091509150816001600160701b03168710801561069a5750806001600160701b031686105b6106eb576040805162461bcd60e51b815260206004820152601f60248201527f425343737761703a20494e53554646494349454e545f4c495155494449545900604482015290519081900360640190fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107295750806001600160a01b0316896001600160a01b031614155b61077a576040805162461bcd60e51b815260206004820152601360248201527f425343737761703a20494e56414c49445f544f00000000000000000000000000604482015290519081900360640190fd5b8a1561078b5761078b828a8d611ae8565b891561079c5761079c818a8c611ae8565b861561084e57886001600160a01b03166375908f7c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561083557600080fd5b505af1158015610849573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561089457600080fd5b505afa1580156108a8573d6000803e3d6000fd5b505050506040513d60208110156108be57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561090a57600080fd5b505afa15801561091e573d6000803e3d6000fd5b505050506040513d602081101561093457600080fd5b5051925060009150506001600160701b0385168a90038311610957576000610966565b89856001600160701b03160383035b9050600089856001600160701b0316038311610983576000610992565b89856001600160701b03160383035b905060008211806109a35750600081115b6109de5760405162461bcd60e51b81526004018080602001828103825260228152602001806123c26022913960400191505060405180910390fd5b6000610a006109ee846003611c9b565b6109fa876103e8611c9b565b90611d07565b90506000610a126109ee846003611c9b565b9050610a37620f4240610a316001600160701b038b8116908b16611c9b565b90611c9b565b610a418383611c9b565b1015610a94576040805162461bcd60e51b815260206004820152600a60248201527f425343737761703a204b00000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610aa284848888611d5f565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280601681526020017f537761704c6971756964697479204c5020546f6b656e0000000000000000000081525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b78338484611f36565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610c16576001600160a01b0384166000908152600260209081526040808320338452909152902054610bf19083611d07565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c21848484611f98565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610cb9576040805162461bcd60e51b815260206004820152601260248201527f425343737761703a20464f5242494444454e0000000000000000000000000000604482015290519081900360640190fd5b600680546001600160a01b039384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610d56576040805162461bcd60e51b815260206004820152600f60248201526e1094d0dcddd85c0e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580610d66610b41565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610dba57600080fd5b505afa158015610dce573d6000803e3d6000fd5b505050506040513d6020811015610de457600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e3757600080fd5b505afa158015610e4b573d6000803e3d6000fd5b505050506040513d6020811015610e6157600080fd5b505190506000610e7a836001600160701b038716611d07565b90506000610e91836001600160701b038716611d07565b90506000610e9f8787612046565b6000549091508061109e57600554604080517f7cd07e4700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691637cd07e47916004808301926020929190829003018186803b158015610f0857600080fd5b505afa158015610f1c573d6000803e3d6000fd5b505050506040513d6020811015610f3257600080fd5b50519050336001600160a01b038216141561101557806001600160a01b03166340dc0e376040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8057600080fd5b505afa158015610f94573d6000803e3d6000fd5b505050506040513d6020811015610faa57600080fd5b505199508915801590610fbf57506000198a14155b611010576040805162461bcd60e51b815260206004820152601560248201527f4261642064657369726564206c69717569646974790000000000000000000000604482015290519081900360640190fd5b611098565b6001600160a01b03811615611071576040805162461bcd60e51b815260206004820152601660248201527f4d757374206e6f742068617665206d69677261746f7200000000000000000000604482015290519081900360640190fd5b6110896103e86109fa6110848888611c9b565b612186565b995061109860006103e86121d8565b506110e1565b6110de6001600160701b0389166110b58684611c9b565b816110bc57fe5b046001600160701b0389166110d18685611c9b565b816110d857fe5b04612262565b98505b600089116111205760405162461bcd60e51b81526004018080602001828103825260268152602001806123e46026913960400191505060405180910390fd5b61112a8a8a6121d8565b61113686868a8a611d5f565b81156111605760085461115c906001600160701b0380821691600160701b900416611c9b565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c54600114611223576040805162461bcd60e51b815260206004820152600f60248201526e1094d0dcddd85c0e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c81905580611233610b41565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b15801561128f57600080fd5b505afa1580156112a3573d6000803e3d6000fd5b505050506040513d60208110156112b957600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561130757600080fd5b505afa15801561131b573d6000803e3d6000fd5b505050506040513d602081101561133157600080fd5b5051306000908152600160205260408120549192506113508888612046565b600054909150806113618487611c9b565b8161136857fe5b049a50806113768486611c9b565b8161137d57fe5b04995060008b118015611390575060008a115b6113cb5760405162461bcd60e51b815260040180806020018281038252602681526020018061239c6026913960400191505060405180910390fd5b6113d5308461227a565b6113e0878d8d611ae8565b6113eb868d8c611ae8565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561143157600080fd5b505afa158015611445573d6000803e3d6000fd5b505050506040513d602081101561145b57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156114a757600080fd5b505afa1580156114bb573d6000803e3d6000fd5b505050506040513d60208110156114d157600080fd5b505193506114e185858b8b611d5f565b811561150b57600854611507906001600160701b0380821691600160701b900416611c9b565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600381526020017f534c50000000000000000000000000000000000000000000000000000000000081525081565b6000610b78338484611f98565b6103e881565b600c546001146115fe576040805162461bcd60e51b815260206004820152600f60248201526e1094d0dcddd85c0e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926116a792859287926116a2926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561167057600080fd5b505afa158015611684573d6000803e3d6000fd5b505050506040513d602081101561169a57600080fd5b505190611d07565b611ae8565b61171b81846116a26008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561167057600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b42841015611798576040805162461bcd60e51b815260206004820152601060248201527f425343737761703a204558504952454400000000000000000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156118ce573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906119045750886001600160a01b0316816001600160a01b0316145b611955576040805162461bcd60e51b815260206004820152601a60248201527f425343737761703a20494e56414c49445f5349474e4154555245000000000000604482015290519081900360640190fd5b611960898989611f36565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c546001146119d1576040805162461bcd60e51b815260206004820152600f60248201526e1094d0dcddd85c0e881313d0d2d151608a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b81523060048201529051611ae1926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015611a2257600080fd5b505afa158015611a36573d6000803e3d6000fd5b505050506040513d6020811015611a4c57600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b50516008546001600160701b0380821691600160701b900416611d5f565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b03167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b60208310611bae5780518252601f199092019160209182019101611b8f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611c10576040519150601f19603f3d011682016040523d82523d6000602084013e611c15565b606091505b5091509150818015611c43575080511580611c435750808060200190516020811015611c4057600080fd5b50515b611c94576040805162461bcd60e51b815260206004820152601860248201527f425343737761703a205452414e534645525f4641494c45440000000000000000604482015290519081900360640190fd5b5050505050565b6000811580611cb657505080820282828281611cb357fe5b04145b610b7c576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610b7c576040805162461bcd60e51b815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6001600160701b038411801590611d7d57506001600160701b038311155b611dce576040805162461bcd60e51b815260206004820152601160248201527f425343737761703a204f564552464c4f57000000000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611dfe57506001600160701b03841615155b8015611e1257506001600160701b03831615155b15611e7d578063ffffffff16611e3a85611e2b8661230c565b6001600160e01b03169061231e565b600980546001600160e01b03929092169290920201905563ffffffff8116611e6584611e2b8761230c565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff16600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611fbb9082611d07565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611fea9082612343565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561209757600080fd5b505afa1580156120ab573d6000803e3d6000fd5b505050506040513d60208110156120c157600080fd5b5051600b546001600160a01b03821615801594509192509061217257801561216d5760006120fe6110846001600160701b03888116908816611c9b565b9050600061210b83612186565b90508082111561216a57600061212d6121248484611d07565b60005490611c9b565b9050600061214683612140866005611c9b565b90612343565b9050600081838161215357fe5b04905080156121665761216687826121d8565b5050505b50505b61217e565b801561217e576000600b555b505092915050565b600060038211156121c9575080600160028204015b818110156121c3578091506002818285816121b257fe5b0401816121bb57fe5b04905061219b565b506121d3565b81156121d3575060015b919050565b6000546121e59082612343565b60009081556001600160a01b03831681526001602052604090205461220a9082612343565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106122715781612273565b825b9392505050565b6001600160a01b03821660009081526001602052604090205461229d9082611d07565b6001600160a01b038316600090815260016020526040812091909155546122c49082611d07565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161233b57fe5b049392505050565b80820182811015610b7c576040805162461bcd60e51b815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe425343737761703a20494e53554646494349454e545f4c49515549444954595f4255524e4544425343737761703a20494e53554646494349454e545f494e5055545f414d4f554e54425343737761703a20494e53554646494349454e545f4c49515549444954595f4d494e544544425343737761703a20494e53554646494349454e545f4f55545055545f414d4f554e54a2646970667358221220bf709474d683e42fc8f2ed036ae0dedeae82d459f13ad03d840392712619c98564736f6c634300060c0033

Deployed ByteCode Sourcemap

7794:10171:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15411:1933;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15411:1933:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15411:1933:0;;-1:-1:-1;15411:1933:0;-1:-1:-1;15411:1933:0;:::i;:::-;;1747:54;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8800:231;;;:::i;:::-;;;;-1:-1:-1;;;;;8800:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3805:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3805:147:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8091:21;;;:::i;:::-;;;;-1:-1:-1;;;;;8091:21:0;;;;;;;;;;;;;;1894:24;;;:::i;:::-;;;;;;;;;;;;;;;;4107:301;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4107:301:0;;;;;;;;;;;;;;;;;:::i;2186:108::-;;;:::i;1852:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2043:31;;;:::i;9858:208::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9858:208:0;;;;;;;;;;:::i;8442:32::-;;;:::i;8481:::-;;;:::i;12046:1649::-;;;;;;;;;;;;;;;;-1:-1:-1;12046:1649:0;-1:-1:-1;;;;;12046:1649:0;;:::i;1925:41::-;;;;;;;;;;;;;;;;-1:-1:-1;1925:41:0;-1:-1:-1;;;;;1925:41:0;;:::i;8520:17::-;;;:::i;2301:38::-;;;;;;;;;;;;;;;;-1:-1:-1;2301:38:0;-1:-1:-1;;;;;2301:38:0;;:::i;13807:1492::-;;;;;;;;;;;;;;;;-1:-1:-1;13807:1492:0;-1:-1:-1;;;;;13807:1492:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1808:37;;;:::i;3960:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3960:139:0;;;;;;;;:::i;7912:46::-;;;:::i;17393:348::-;;;;;;;;;;;;;;;;-1:-1:-1;17393:348:0;-1:-1:-1;;;;;17393:348:0;;:::i;8062:22::-;;;:::i;8119:21::-;;;:::i;4416:670::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4416:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1973:61::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1973:61:0;;;;;;;;;;:::i;17790:172::-;;;:::i;15411:1933::-;8693:8;;8705:1;8693:13;8685:41;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;;;;8748:1;8737:8;:12;15525:14;;;;:32:::1;;;15556:1;15543:10;:14;15525:32;15517:80;;;;-1:-1:-1::0;;;15517:80:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15609:17;15628::::0;15650:13:::1;:11;:13::i;:::-;15608:55;;;;;15710:9;-1:-1:-1::0;;;;;15697:22:0::1;:10;:22;:48;;;;;15736:9;-1:-1:-1::0;;;;;15723:22:0::1;:10;:22;15697:48;15689:92;;;::::0;;-1:-1:-1;;;15689:92:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15930:6;::::0;15969::::1;::::0;15794:13:::1;::::0;;;-1:-1:-1;;;;;15930:6:0;;::::1;::::0;15969;;::::1;::::0;15998:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;16021:7;-1:-1:-1::0;;;;;16015:13:0::1;:2;-1:-1:-1::0;;;;;16015:13:0::1;;;15998:30;15990:62;;;::::0;;-1:-1:-1;;;15990:62:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16071:14:::0;;16067:58:::1;;16087:38;16101:7;16110:2;16114:10;16087:13;:38::i;:::-;16178:14:::0;;16174:58:::1;;16194:38;16208:7;16217:2;16221:10;16194:13;:38::i;:::-;16285:15:::0;;16281:93:::1;;16317:2;-1:-1:-1::0;;;;;16302:30:0::1;;16333:10;16345;16357;16369:4;;16302:72;;;;;;;;;;;;;-1:-1:-1::0;;;;;16302:72:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16281:93;16400:47;::::0;;-1:-1:-1;;;16400:47:0;;16441:4:::1;16400:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;16400:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16400:47:0;16473::::1;::::0;;-1:-1:-1;;;16473:47:0;;16514:4:::1;16473:47;::::0;::::1;::::0;;;16400;;-1:-1:-1;;;;;;16473:32:0;::::1;::::0;::::1;::::0;:47;;;;;16400::::1;::::0;16473;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16473:47:0;;-1:-1:-1;16542:14:0::1;::::0;-1:-1:-1;;;;;;;16570:22:0;::::1;::::0;;::::1;16559:33:::0;::::1;:75;;16633:1;16559:75;;;16619:10;16607:9;-1:-1:-1::0;;;;;16607:22:0::1;;16595:8;:35;16559:75;16542:92;;16645:14;16685:10;16673:9;-1:-1:-1::0;;;;;16673:22:0::1;;16662:8;:33;:75;;16736:1;16662:75;;;16722:10;16710:9;-1:-1:-1::0;;;;;16710:22:0::1;;16698:8;:35;16662:75;16645:92;;16768:1;16756:9;:13;:30;;;;16785:1;16773:9;:13;16756:30;16748:77;;;;-1:-1:-1::0;;;16748:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16915:21;16939:40;16962:16;:9:::0;16976:1:::1;16962:13;:16::i;:::-;16939:18;:8:::0;16952:4:::1;16939:12;:18::i;:::-;:22:::0;::::1;:40::i;:::-;16915:64:::0;-1:-1:-1;16994:21:0::1;17018:40;17041:16;:9:::0;17055:1:::1;17041:13;:16::i;17018:40::-;16994:64:::0;-1:-1:-1;17123:43:0::1;17158:7;17123:30;-1:-1:-1::0;;;;;17123:15:0;;::::1;::::0;:30;::::1;:19;:30::i;:::-;:34:::0;::::1;:43::i;:::-;17081:38;:16:::0;17102;17081:20:::1;:38::i;:::-;:85;;17073:108;;;::::0;;-1:-1:-1;;;17073:108:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8760:1;;17205:49;17213:8;17223;17233:9;17244;17205:7;:49::i;:::-;17270:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17270:66:0;::::1;::::0;17275:10:::1;::::0;17270:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;8783:1:0;8772:8;:12;-1:-1:-1;;;;;;;;;15411:1933:0:o;1747:54::-;;;;;;;;;;;;;;;;;;;:::o;8800:231::-;8933:8;;-1:-1:-1;;;;;8933:8:0;;;;-1:-1:-1;;;8964:8:0;;;;;;-1:-1:-1;;;9005:18:0;;;;;8800:231::o;3805:147::-;3869:4;3886:36;3895:10;3907:7;3916:5;3886:8;:36::i;:::-;-1:-1:-1;3940:4:0;3805:147;;;;;:::o;8091:21::-;;;-1:-1:-1;;;;;8091:21:0;;:::o;1894:24::-;;;;:::o;4107:301::-;-1:-1:-1;;;;;4206:15:0;;4185:4;4206:15;;;:9;:15;;;;;;;;4222:10;4206:27;;;;;;;;-1:-1:-1;;4206:39:0;4202:140;;-1:-1:-1;;;;;4292:15:0;;;;;;:9;:15;;;;;;;;4308:10;4292:27;;;;;;;;:38;;4324:5;4292:31;:38::i;:::-;-1:-1:-1;;;;;4262:15:0;;;;;;:9;:15;;;;;;;;4278:10;4262:27;;;;;;;:68;4202:140;4352:26;4362:4;4368:2;4372:5;4352:9;:26::i;:::-;-1:-1:-1;4396:4:0;4107:301;;;;;:::o;2186:108::-;2228:66;2186:108;:::o;1852:35::-;1885:2;1852:35;:::o;2043:31::-;;;;:::o;9858:208::-;9954:7;;-1:-1:-1;;;;;9954:7:0;9940:10;:21;9932:52;;;;;-1:-1:-1;;;9932:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10015:6;:16;;-1:-1:-1;;;;;10015:16:0;;;;;;;;;;;10042:6;:16;;;;;;;;;;;9858:208::o;8442:32::-;;;;:::o;8481:::-;;;;:::o;12046:1649::-;12095:14;8693:8;;8705:1;8693:13;8685:41;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;;;;8748:1;8737:8;:12;;;8748:1;12164:13:::1;:11;:13::i;:::-;-1:-1:-1::0;12233:6:0::1;::::0;12219:46:::1;::::0;;-1:-1:-1;;;12219:46:0;;12259:4:::1;12219:46;::::0;::::1;::::0;;;12122:55;;-1:-1:-1;12122:55:0;;-1:-1:-1;12203:13:0::1;::::0;-1:-1:-1;;;;;12233:6:0;;::::1;::::0;12219:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;12233:6;12219:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12219:46:0;12306:6:::1;::::0;12292:46:::1;::::0;;-1:-1:-1;;;12292:46:0;;12332:4:::1;12292:46;::::0;::::1;::::0;;;12219;;-1:-1:-1;12276:13:0::1;::::0;-1:-1:-1;;;;;12306:6:0;;::::1;::::0;12292:31:::1;::::0;:46;;;;;12219::::1;::::0;12292;;;;;;;;12306:6;12292:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12292:46:0;;-1:-1:-1;12349:12:0::1;12364:23;:8:::0;-1:-1:-1;;;;;12364:23:0;::::1;:12;:23::i;:::-;12349:38:::0;-1:-1:-1;12398:12:0::1;12413:23;:8:::0;-1:-1:-1;;;;;12413:23:0;::::1;:12;:23::i;:::-;12398:38;;12449:10;12462:30;12471:9;12482;12462:8;:30::i;:::-;12503:17;12523:11:::0;12449:43;;-1:-1:-1;12627:17:0;12623:749:::1;;12696:7;::::0;12680:35:::1;::::0;;;;;;;12661:16:::1;::::0;-1:-1:-1;;;;;12696:7:0::1;::::0;12680:33:::1;::::0;:35:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;12696:7;12680:35;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12680:35:0;;-1:-1:-1;12734:10:0::1;-1:-1:-1::0;;;;;12734:22:0;::::1;;12730:500;;;12799:8;-1:-1:-1::0;;;;;12789:36:0::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12789:38:0;;-1:-1:-1;12854:13:0;;;;;:41:::1;;;-1:-1:-1::0;;12871:9:0::1;:24;;12854:41;12846:75;;;::::0;;-1:-1:-1;;;12846:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;12730:500;;;-1:-1:-1::0;;;;;12970:22:0;::::1;::::0;12962:57:::1;;;::::0;;-1:-1:-1;;;12962:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13050:54;7953:5;13050:31;13060:20;:7:::0;13072;13060:11:::1;:20::i;:::-;13050:9;:31::i;:54::-;13038:66;;13123:36;13137:1;7953:5;13123;:36::i;:::-;12623:749;;;;13274:86;-1:-1:-1::0;;;;;13283:37:0;::::1;:25;:7:::0;13295:12;13283:11:::1;:25::i;:::-;:37;;;;;;-1:-1:-1::0;;;;;13322:37:0;::::1;:25;:7:::0;13334:12;13322:11:::1;:25::i;:::-;:37;;;;;;13274:8;:86::i;:::-;13262:98;;12623:749;13402:1;13390:9;:13;13382:64;;;;-1:-1:-1::0;;;13382:64:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13457:20;13463:2;13467:9;13457:5;:20::i;:::-;13490:49;13498:8;13508;13518:9;13529;13490:7;:49::i;:::-;13554:5;13550:47;;;13588:8;::::0;13569:28:::1;::::0;-1:-1:-1;;;;;13574:8:0;;::::1;::::0;-1:-1:-1;;;13588:8:0;::::1;;13569:18;:28::i;:::-;13561:5;:36:::0;13550:47:::1;13653:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;13658:10:::1;::::0;13653:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;8783:1:0;8772:8;:12;-1:-1:-1;12046:1649:0;;;-1:-1:-1;;;;;;12046:1649:0:o;1925:41::-;;;;;;;;;;;;;:::o;8520:17::-;;;;:::o;2301:38::-;;;;;;;;;;;;;:::o;13807:1492::-;13856:12;13870;8693:8;;8705:1;8693:13;8685:41;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;;;;8748:1;8737:8;:12;;;8748:1;13937:13:::1;:11;:13::i;:::-;-1:-1:-1::0;13994:6:0::1;::::0;14075::::1;::::0;14154:47:::1;::::0;;-1:-1:-1;;;14154:47:0;;14195:4:::1;14154:47;::::0;::::1;::::0;;;13895:55;;-1:-1:-1;13895:55:0;;-1:-1:-1;;;;;;13994:6:0;;::::1;::::0;14075;::::1;::::0;13976:15:::1;::::0;13994:6;;14154:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;13994:6;14154:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14154:47:0;14228::::1;::::0;;-1:-1:-1;;;14228:47:0;;14269:4:::1;14228:47;::::0;::::1;::::0;;;14154;;-1:-1:-1;14212:13:0::1;::::0;-1:-1:-1;;;;;14228:32:0;::::1;::::0;::::1;::::0;:47;;;;;14154::::1;::::0;14228;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14228:47:0;14321:4:::1;14286:14;14303:24:::0;;;:9:::1;14228:47;14303:24:::0;;;;;14228:47;;-1:-1:-1;14353:30:0::1;14362:9:::0;14373;14353:8:::1;:30::i;:::-;14394:17;14414:11:::0;14340:43;;-1:-1:-1;14414:11:0;14524:23:::1;:9:::0;14538:8;14524:13:::1;:23::i;:::-;:38;;;;;;::::0;-1:-1:-1;14657:12:0;14631:23:::1;:9:::0;14645:8;14631:13:::1;:23::i;:::-;:38;;;;;;14621:48;;14746:1;14736:7;:11;:26;;;;;14761:1;14751:7;:11;14736:26;14728:77;;;;-1:-1:-1::0;;;14728:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14816:31;14830:4;14837:9;14816:5;:31::i;:::-;14858:35;14872:7;14881:2;14885:7;14858:13;:35::i;:::-;14904;14918:7;14927:2;14931:7;14904:13;:35::i;:::-;14961:47;::::0;;-1:-1:-1;;;14961:47:0;;15002:4:::1;14961:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;14961:32:0;::::1;::::0;::::1;::::0;:47;;;;;::::1;::::0;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;14961:47:0;15030::::1;::::0;;-1:-1:-1;;;15030:47:0;;15071:4:::1;15030:47;::::0;::::1;::::0;;;14961;;-1:-1:-1;;;;;;15030:32:0;::::1;::::0;::::1;::::0;:47;;;;;14961::::1;::::0;15030;;;;;;;;:32;:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15030:47:0;;-1:-1:-1;15090:49:0::1;15098:8:::0;15030:47;15118:9;15129;15090:7:::1;:49::i;:::-;15154:5;15150:47;;;15188:8;::::0;15169:28:::1;::::0;-1:-1:-1;;;;;15174:8:0;;::::1;::::0;-1:-1:-1;;;15188:8:0;::::1;;15169:18;:28::i;:::-;15161:5;:36:::0;15150:47:::1;15253:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;15253:38:0;::::1;::::0;15258:10:::1;::::0;15253:38:::1;::::0;;;;;;;;;::::1;8760:1;;;;;;;;;8783::::0;8772:8;:12;;;;13807:1492;;;:::o;1808:37::-;;;;;;;;;;;;;;;;;;;:::o;3960:139::-;4020:4;4037:32;4047:10;4059:2;4063:5;4037:9;:32::i;7912:46::-;7953:5;7912:46;:::o;17393:348::-;8693:8;;8705:1;8693:13;8685:41;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;;;;8748:1;8737:8;:12;17462:6:::1;::::0;17512::::1;::::0;17623:8:::1;::::0;17571:47:::1;::::0;;-1:-1:-1;;;17571:47:0;;17612:4:::1;17571:47;::::0;::::1;::::0;;;-1:-1:-1;;;;;17462:6:0;;::::1;::::0;17512;;::::1;::::0;17544:89:::1;::::0;17462:6;;17567:2;;17571:61:::1;::::0;-1:-1:-1;;;;;17623:8:0::1;::::0;17462:6;;17571:32:::1;::::0;:47;;;;;::::1;::::0;;;;;;;;;17462:6;17571:47;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17571:47:0;;:51:::1;:61::i;:::-;17544:13;:89::i;:::-;17644;17658:7;17667:2;17671:61;17723:8;;;;;;;;;-1:-1:-1::0;;;;;17723:8:0::1;-1:-1:-1::0;;;;;17671:61:0::1;17685:7;-1:-1:-1::0;;;;;17671:32:0::1;;17712:4;17671:47;;;;;;;;;;;;;-1:-1:-1::0;;;;;17671:47:0::1;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;17644:89;-1:-1:-1::0;;8783:1:0;8772:8;:12;-1:-1:-1;17393:348:0:o;8062:22::-;;;-1:-1:-1;;;;;8062:22:0;;:::o;8119:21::-;;;-1:-1:-1;;;;;8119:21:0;;:::o;4416:670::-;4562:15;4550:8;:27;;4542:56;;;;;-1:-1:-1;;;4542:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4714:16;;-1:-1:-1;;;;;4810:13:0;;;4609:14;4810:13;;;:6;:13;;;;;;;;:15;;;;;;;;;4759:77;;2228:66;4759:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4749:88;;;;;;4650:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4626:237;;;;;;;;;4901:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4609:14;;4810:15;4901:26;;;;;-1:-1:-1;;4901:26:0;;;;;;;;;;4810:15;4901:26;;;;;;;;;;;;;;;-1:-1:-1;;4901:26:0;;-1:-1:-1;;4901:26:0;;;-1:-1:-1;;;;;;;4946:30:0;;;;;;:59;;;5000:5;-1:-1:-1;;;;;4980:25:0;:16;-1:-1:-1;;;;;4980:25:0;;4946:59;4938:98;;;;;-1:-1:-1;;;4938:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5047:31;5056:5;5063:7;5072:5;5047:8;:31::i;:::-;4416:670;;;;;;;;;:::o;1973:61::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;17790:172::-;8693:8;;8705:1;8693:13;8685:41;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;-1:-1:-1;;;8685:41:0;;;;;;;;;;;;;;;8748:1;8737:8;:12;17853:6:::1;::::0;17839:46:::1;::::0;;-1:-1:-1;;;17839:46:0;;17879:4:::1;17839:46;::::0;::::1;::::0;;;17831:123:::1;::::0;-1:-1:-1;;;;;17853:6:0::1;::::0;17839:31:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;17853:6;17839:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17839:46:0;17901:6:::1;::::0;17887:46:::1;::::0;;-1:-1:-1;;;17887:46:0;;17927:4:::1;17887:46;::::0;::::1;::::0;;;-1:-1:-1;;;;;17901:6:0;;::::1;::::0;17887:31:::1;::::0;:46;;;;;17839::::1;::::0;17887;;;;;;;;17901:6;17887:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17887:46:0;17935:8:::1;::::0;-1:-1:-1;;;;;17935:8:0;;::::1;::::0;-1:-1:-1;;;17945:8:0;::::1;;17831:7;:123::i;:::-;8783:1:::0;8772:8;:12;17790:172::o;9039:285::-;8017:34;;;;;;;;;;;;;;;;;9167:43;;-1:-1:-1;;;;;9167:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9167:43:0;;;;;9156:55;;;;9121:12;;9135:17;;9156:10;;;9167:43;9156:55;;;9167:43;9156:55;;9167:43;9156:55;;;;;;;;;;-1:-1:-1;;9156:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9120:91;;;;9230:7;:57;;;;-1:-1:-1;9242:11:0;;:16;;:44;;;9273:4;9262:24;;;;;;;;;;;;;;;-1:-1:-1;9262:24:0;9242:44;9222:94;;;;;-1:-1:-1;;;9222:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9039:285;;;;;:::o;1453:142::-;1505:6;1532;;;:30;;-1:-1:-1;;1547:5:0;;;1561:1;1556;1547:5;1556:1;1542:15;;;;;:20;1532:30;1524:63;;;;;-1:-1:-1;;;1524:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1316:129;1400:5;;;1395:16;;;;1387:50;;;;;-1:-1:-1;;;1387:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10151:858;-1:-1:-1;;;;;10263:23:0;;;;;:50;;-1:-1:-1;;;;;;10290:23:0;;;10263:50;10255:80;;;;;-1:-1:-1;;;10255:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10450:18;;10377:23;:15;:23;;;-1:-1:-1;;;10450:18:0;;;;10433:35;;;10506:15;;;;;;:33;;-1:-1:-1;;;;;;10525:14:0;;;;10506:33;:51;;;;-1:-1:-1;;;;;;10543:14:0;;;;10506:51;10502:336;;;10712:11;10659:64;;10664:44;10698:9;10664:27;10681:9;10664:16;:27::i;:::-;-1:-1:-1;;;;;10664:33:0;;;:44::i;:::-;10635:20;:88;;-1:-1:-1;;;;;10659:50:0;;;;:64;;;;10635:88;;;10762:64;;;10767:44;10801:9;10767:27;10784:9;10767:16;:27::i;:44::-;10738:20;:88;;-1:-1:-1;;;;;10762:50:0;;;;:64;;;;10738:88;;;10502:336;10848:8;:28;;-1:-1:-1;;10848:28:0;-1:-1:-1;;;;;10848:28:0;;;;;;;10887;;-1:-1:-1;;;10887:28:0;;;;;;;;;-1:-1:-1;;;;;10926:35:0;-1:-1:-1;;;10926:35:0;;;;;;;;;10977:24;;;10982:8;;;10977:24;;10992:8;;;;;;;10977:24;;;;;;;;;;;;;;;;;10151:858;;;;;;:::o;3400:169::-;-1:-1:-1;;;;;3481:16:0;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;3530:31;;;;;;;;;;;;;;;;;3400:169;;;:::o;3577:220::-;-1:-1:-1;;;;;3671:15:0;;;;;;:9;:15;;;;;;:26;;3691:5;3671:19;:26::i;:::-;-1:-1:-1;;;;;3653:15:0;;;;;;;:9;:15;;;;;;:44;;;;3724:13;;;;;;;:24;;3742:5;3724:17;:24::i;:::-;-1:-1:-1;;;;;3708:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;3764:25;;;;;;;3708:13;;3764:25;;;;;;;;;;;;;3577:220;;;:::o;11099:835::-;11172:10;11195:13;11227:7;;;;;;;;;-1:-1:-1;;;;;11227:7:0;-1:-1:-1;;;;;11211:30:0;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11211:32:0;11306:5;;-1:-1:-1;;;;;11262:19:0;;;;;;-1:-1:-1;11211:32:0;;-1:-1:-1;11306:5:0;11337:590;;11367:11;;11363:494;;11399:10;11412:41;11422:30;-1:-1:-1;;;;;11422:15:0;;;;:30;;:19;:30::i;11412:41::-;11399:54;;11472:14;11489:17;11499:6;11489:9;:17::i;:::-;11472:34;;11537:9;11529:5;:17;11525:317;;;11571:14;11588:37;11604:20;:5;11614:9;11604;:20::i;:::-;11588:11;;;:15;:37::i;:::-;11571:54;-1:-1:-1;11648:16:0;11667:27;11684:9;11667:12;:5;11677:1;11667:9;:12::i;:::-;:16;;:27::i;:::-;11648:46;;11717:14;11746:11;11734:9;:23;;;;;;;-1:-1:-1;11784:13:0;;11780:42;;11799:23;11805:5;11812:9;11799:5;:23::i;:::-;11525:317;;;;11363:494;;;11337:590;;;11878:11;;11874:53;;11914:1;11906:5;:9;11874:53;11099:835;;;;;;:::o;5459:303::-;5504:6;5531:1;5527;:5;5523:232;;;-1:-1:-1;5553:1:0;5586;5582;5578:5;;:9;5602:92;5613:1;5609;:5;5602:92;;;5639:1;5635:5;;5677:1;5672;5668;5664;:5;;;;;;:9;5663:15;;;;;;5659:19;;5602:92;;;5523:232;;;;5715:6;;5711:44;;-1:-1:-1;5742:1:0;5711:44;5459:303;;;:::o;2974:201::-;3047:11;;:22;;3063:5;3047:15;:22::i;:::-;3033:11;:36;;;-1:-1:-1;;;;;3096:13:0;;;;:9;:13;;;;;;:24;;3114:5;3096:17;:24::i;:::-;-1:-1:-1;;;;;3080:13:0;;;;;;:9;:13;;;;;;;;:40;;;;3136:31;;;;;;;3080:13;;;;3136:31;;;;;;;;;;2974:201;;:::o;5245:96::-;5297:6;5324:1;5320;:5;:13;;5332:1;5320:13;;;5328:1;5320:13;5316:17;5245:96;-1:-1:-1;;;5245:96:0:o;3183:209::-;-1:-1:-1;;;;;3262:15:0;;;;;;:9;:15;;;;;;:26;;3282:5;3262:19;:26::i;:::-;-1:-1:-1;;;;;3244:15:0;;;;;;:9;:15;;;;;:44;;;;3313:11;:22;;3329:5;3313:15;:22::i;:::-;3299:11;:36;;;3351:33;;;;;;;;-1:-1:-1;;;;;3351:33:0;;;;;;;;;;;;;3183:209;;:::o;6117:120::-;-1:-1:-1;;;;;6193:10:0;-1:-1:-1;;;6193:17:0;;6117:120::o;6308:108::-;6368:9;-1:-1:-1;;;;;6398:10:0;;-1:-1:-1;;;;;6394:14:0;;6398:10;6394:14;;;;;;6308:108;-1:-1:-1;;;6308:108:0:o;1180:128::-;1264:5;;;1259:16;;;;1251:49;;;;;-1:-1:-1;;;1251:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://bf709474d683e42fc8f2ed036ae0dedeae82d459f13ad03d840392712619c985
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.