Contract 0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e3939

Contract Overview

Balance:
0 CRO

CRO Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x506a4c0a2f6a6002c680c26f9be8cfa2404594148ac226e17efa3ff8617777fdApprove55331352022-11-12 22:25:3380 days 21 hrs ago0x52a5565cda0db79abc2079ef6e98d800afc8504a IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.113421855156 4,878.988908539
0xc7d11050d67459bbfb1e756f6d3db58e45330c35d6bd545b07a136b6311d95e4Approve55253062022-11-12 10:04:2081 days 9 hrs ago0x6fa33afb997f23e69976e7b105ddf5ed85321a08 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.1133464779450
0xbe6783d9bfd1a9b6d0f624ca53fed2b58daac6b4ed7d90e3e9407601a53d42dbApprove53457572022-10-31 14:47:1093 days 4 hrs ago0x050b6bb77fa6e694f464e24e0ba4a35966a0e942 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xfe670b3c498a6a50b2d2c7a42ffdb8dcf8a09cdb75ad44ae77ad657393dadb22Approve52800082022-10-27 7:15:0397 days 12 hrs ago0x050b6bb77fa6e694f464e24e0ba4a35966a0e942 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x9dc5d0c78b02603b8aa91cec44d33df7e37a42992b3b0363a2cce5c8b06ac634Approve51064032022-10-15 21:08:33108 days 22 hrs ago0x6fa33afb997f23e69976e7b105ddf5ed85321a08 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.2175744019970
0x4865b9f41fe704986d306b2612ace52b761322c345aca4d2fa111076f870e091Approve50721512022-10-13 15:13:33111 days 4 hrs ago0x063aedaa2d382f19074edf6194587964f352b375 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.217747771717 4,899.594341335
0x03d94b885554895c7337eea4823f099303563f635ce049920898c45ce1d950f3Approve48099772022-09-26 9:31:52128 days 9 hrs ago0xab1e23d650ad5df561be86ee521f33afcf70d798 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.22221 5,000
0x3cc52cda8b1471244685f6aca19c240b8e38181231650aa9aba299adf48ba414Approve47272442022-09-20 22:54:30133 days 20 hrs ago0xf07bb296ef5548be369dc3038e8a4e107870431b IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.2184061119320
0xbb0fa18b9222ee549bfd1bcbcb07c74f16f2f26ef2db8fcfb3b5ea9acb529e27Approve47263152022-09-20 21:26:50133 days 22 hrs ago0xbff3252a0497f6f994aba0699e4a3eb81200c556 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xdd1739e2136a9365e86c5585a7d227bee71cd9e0626f8551a1c0132f12fb65aaApprove47056232022-09-19 12:49:44135 days 6 hrs ago0x036b4fe9066e446db221574d391994ee885fa33f IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.2183914567370
0xfa8bb77a4b712aa01cce3213c961f5bdfc309f13c7a49b089a8528640b6dcdf7Approve46004652022-09-12 15:07:56142 days 4 hrs ago0x27fbf1e99d60898ce92223a9066f5324e615cc48 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x5a7973fc932ff2a8142014f70b52f330e147dc7eb1eb885e612471cbcecbead1Approve46004512022-09-12 15:06:37142 days 4 hrs ago0x27fbf1e99d60898ce92223a9066f5324e615cc48 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0x2341122b2cefd844f32ab49ffe448d4d6624e62ddf66575d0c22f430668dcf33Approve45731932022-09-10 20:13:05143 days 23 hrs ago0xce95035ed1ff2a6a0118fae78f2b2daef3616503 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x76e888eafba5c4a1a78c1206dcbc0d635381c363c02c87ccd2f5a1ea9b636c1cApprove45677062022-09-10 11:34:33144 days 7 hrs ago0x67cf002a17fe1900f597ab2afc4ff2c39b462666 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0x5040abd59c26684b9d3acd164217518289dc3f83b1d438fc40523927296a8bc0Approve45584952022-09-09 21:05:34144 days 22 hrs ago0x67cf002a17fe1900f597ab2afc4ff2c39b462666 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x23fdbd4c4ae369093435c650c073c009970257317f3b547f29370daf1bb0d6daApprove45577132022-09-09 19:51:38144 days 23 hrs ago0xe791bdb46116ec8336415a52d5ae550c4d7163b1 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xc611158da649a1d399dfe357ff211221c2eaa3037aed6cea1cd18e82e5bc90eaApprove45526142022-09-09 11:49:41145 days 7 hrs ago0x93c950d5c2fde47d15f7af3587a210dc0fa32a1d IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0x6c73ced60c43c580a0be961d00673ef50b1e9829b6d8d71254e17a64dcbafe33Approve44994982022-09-06 0:15:36148 days 19 hrs ago0xe4bdaf6c1bfc4097ea1c3623acc6eda80e14190c IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.218873633270
0x0d57ec5f4d6d78461b5bb94d0ce0f1ccea3f278186306ca1f91d6a07183eb991Approve44978802022-09-05 21:42:55148 days 21 hrs ago0xce95035ed1ff2a6a0118fae78f2b2daef3616503 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0x34915c92a3de43f480799364659c3e1674bca319c12d67d758e20712d8f91584Approve44884562022-09-05 6:53:16149 days 12 hrs ago0x2ee72fbee0fa2dcd5f046eaa3e04a4cb5e247d8c IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xa09b94045078685e610d7d9782a3a3be48de21e3ddbfd65560d7024935aadd70Approve44657622022-09-03 19:13:08151 days 17 mins ago0x2cf8bbd82bcb4df6dd79ccafceb9a802ca6a3ecc IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xc7f83c7049330438e3065680ae762d6d104a71206bc6bcc9ef49564dab2d24a1Approve44559862022-09-03 3:51:09151 days 15 hrs ago0x2ee72fbee0fa2dcd5f046eaa3e04a4cb5e247d8c IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x982eb0b17b50429349ce6571eedc88156e737c9c7a9f620b7348e78e5e70d3b6Approve44124142022-08-31 7:10:47154 days 12 hrs ago0x5807034f2d84bc8852b38f47b4dd41dcd576efa3 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222150
0x5637c598e2e803a4943330814abbdec7a891005b104b855e843c92ac5b7313abApprove43878632022-08-29 16:34:54156 days 2 hrs ago0x33312fa025f140c8f3db4115f73299392ccf73f7 IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.222210
0xdb356c2194fd1f5b79ffeafa55fc3f5a9cbd575aa62392c93625b152bd078a4fApprove43810762022-08-29 5:55:05156 days 13 hrs ago0x226f7231f26414a2f233e924f7a164b44159231f IN  0x7c3cf7623f95373a48164f8ec4dc3f0a2f0e39390 CRO0.2190565643950
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xd2d0e7f83f97ca9fedf8ad487b08f3a9bcad199169f1e8a82c266918e77be56242794952022-08-22 14:10:26163 days 5 hrs ago CyborgSwap: Factory  Contract Creation0 CRO
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x9b76213969885044FeF03AFCc08d3F4039768F7e

Contract Name:
PancakePair

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2022-03-10
*/

pragma solidity =0.5.16;


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

    function feeTo() external view returns (address);
    function feeToSetter() 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;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure 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);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure 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);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
}

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)
library SafeMath {
    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');
    }
}

contract PancakeERC20 is IPancakeERC20 {
    using SafeMath for uint;

    string public constant name = 'Chrono LPs';
    string public constant symbol = 'CNO-LP';
    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, 'Pancake: 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, 'Pancake: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

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

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

interface IERC20 {
    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);
}

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

contract PancakePair is IPancakePair, PancakeERC20 {
    using SafeMath  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, 'Pancake: 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))), 'Pancake: 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, 'Pancake: 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), 'Pancake: 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 = IPancakeFactory(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(3).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 = IERC20(token0).balanceOf(address(this));
        uint balance1 = IERC20(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) {
            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, 'Pancake: 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 = IERC20(_token0).balanceOf(address(this));
        uint balance1 = IERC20(_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, 'Pancake: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_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, 'Pancake: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'Pancake: 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, 'Pancake: 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) IPancakeCallee(to).pancakeCall(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20(_token0).balanceOf(address(this));
        balance1 = IERC20(_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, 'Pancake: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(2));
        uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(2));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'Pancake: 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, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
    }

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

Contract ABI

[{"inputs":[],"payable":false,"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"},{"constant":true,"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_LIQUIDITY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint112","name":"_reserve0","type":"uint112"},{"internalType":"uint112","name":"_reserve1","type":"uint112"},{"internalType":"uint32","name":"_blockTimestampLast","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token0","type":"address"},{"internalType":"address","name":"_token1","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price0CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price1CumulativeLast","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"skim","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526001600c5534801561001557600080fd5b5060004690506040518080613bd360529139605201905060405180910390206040518060400160405280600a81526020017f4368726f6e6f204c507300000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001208330604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001206003819055505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613a5e806101756000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146108c4578063d505accf1461090e578063dd62ed3e146109a7578063fff6cae914610a1f576101a9565b8063ba9a7a5614610818578063bc25cf7714610836578063c45a01551461087a576101a9565b80637ecebe00116100d35780637ecebe001461067857806389afcb44146106d057806395d89b411461072f578063a9059cbb146107b2576101a9565b80636a627842146105aa57806370a08231146106025780637464fc3d1461065a576101a9565b806323b872dd116101665780633644e515116101405780633644e515146104ec578063485cc9551461050a5780635909c0d51461056e5780635a3d54931461058c576101a9565b806323b872dd1461042457806330adf81f146104aa578063313ce567146104c8576101a9565b8063022c0d9f146101ae57806306fdde031461025b5780630902f1ac146102de578063095ea7b3146103565780630dfe1681146103bc57806318160ddd14610406575b600080fd5b610259600480360360808110156101c457600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561021557600080fd5b82018360208201111561022757600080fd5b8035906020019184600183028401116401000000008311171561024957600080fd5b9091929391929390505050610a29565b005b610263611233565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a3578082015181840152602081019050610288565b50505050905090810190601f1680156102d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e661126c565b60405180846dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390f35b6103a26004803603604081101561036c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c9565b604051808215151515815260200191505060405180910390f35b6103c46112e0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040e611306565b6040518082815260200191505060405180910390f35b6104906004803603606081101561043a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061130c565b604051808215151515815260200191505060405180910390f35b6104b26114d7565b6040518082815260200191505060405180910390f35b6104d06114fe565b604051808260ff1660ff16815260200191505060405180910390f35b6104f4611503565b6040518082815260200191505060405180910390f35b61056c6004803603604081101561052057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611509565b005b610576611652565b6040518082815260200191505060405180910390f35b610594611658565b6040518082815260200191505060405180910390f35b6105ec600480360360208110156105c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165e565b6040518082815260200191505060405180910390f35b6106446004803603602081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b0f565b6040518082815260200191505060405180910390f35b610662611b27565b6040518082815260200191505060405180910390f35b6106ba6004803603602081101561068e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b2d565b6040518082815260200191505060405180910390f35b610712600480360360208110156106e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b45565b604051808381526020018281526020019250505060405180910390f35b610737612132565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107fe600480360360408110156107c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061216b565b604051808215151515815260200191505060405180910390f35b610820612182565b6040518082815260200191505060405180910390f35b6108786004803603602081101561084c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612188565b005b610882612463565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108cc612489565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a5600480360360e081101561092457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124af565b005b610a09600480360360408110156109bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127f3565b6040518082815260200191505060405180910390f35b610a27612818565b005b6001600c5414610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000851180610ab85750600084115b610b0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806139e16023913960400191505060405180910390fd5b600080610b1861126c565b5091509150816dffffffffffffffffffffffffffff1687108015610b4b5750806dffffffffffffffffffffffffffff1686105b610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f50616e63616b653a20494e53554646494349454e545f4c49515549444954590081525060200191505060405180910390fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614158015610c7657508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b610ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f50616e63616b653a20494e56414c49445f544f0000000000000000000000000081525060200191505060405180910390fd5b60008b1115610cfd57610cfc828a8d612a98565b5b60008a1115610d1257610d11818a8c612a98565b5b6000888890501115610dfa578873ffffffffffffffffffffffffffffffffffffffff166384800812338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015610de157600080fd5b505af1158015610df5573d6000803e3d6000fd5b505050505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e7757600080fd5b505afa158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b810190808051906020019092919050505093508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f3157600080fd5b505afa158015610f45573d6000803e3d6000fd5b505050506040513d6020811015610f5b57600080fd5b810190808051906020019092919050505092505050600089856dffffffffffffffffffffffffffff16038311610f92576000610fa8565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610fcc576000610fe2565b89856dffffffffffffffffffffffffffff160383035b90506000821180610ff35750600081115b611048576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806139996022913960400191505060405180910390fd5b6000611084611061600285612ce590919063ffffffff16565b6110766103e888612ce590919063ffffffff16565b612d7a90919063ffffffff16565b905060006110c261109f600285612ce590919063ffffffff16565b6110b46103e888612ce590919063ffffffff16565b612d7a90919063ffffffff16565b905061110c620f42406110fe896dffffffffffffffffffffffffffff168b6dffffffffffffffffffffffffffff16612ce590919063ffffffff16565b612ce590919063ffffffff16565b61111f8284612ce590919063ffffffff16565b1015611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f50616e63616b653a204b0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b50506111a184848888612dfd565b8873ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d82284848f8f6040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050505050506001600c819055505050505050565b6040518060400160405280600a81526020017f4368726f6e6f204c50730000000000000000000000000000000000000000000081525081565b6000806000600860009054906101000a90046dffffffffffffffffffffffffffff1692506008600e9054906101000a90046dffffffffffffffffffffffffffff1691506008601c9054906101000a900463ffffffff169050909192565b60006112d633848461317b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146114c15761144082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6114cc848484613266565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b60035481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f50616e63616b653a20464f5242494444454e000000000000000000000000000081525060200191505060405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60095481565b600a5481565b60006001600c54146116d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000806116eb61126c565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561179157600080fd5b505afa1580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b810190808051906020019092919050505090506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561186f57600080fd5b505afa158015611883573d6000803e3d6000fd5b505050506040513d602081101561189957600080fd5b8101908080519060200190929190505050905060006118d1856dffffffffffffffffffffffffffff1684612d7a90919063ffffffff16565b905060006118f8856dffffffffffffffffffffffffffff1684612d7a90919063ffffffff16565b9050600061190687876133fa565b9050600080549050600081141561195a576119466103e86119386119338688612ce590919063ffffffff16565b6135db565b612d7a90919063ffffffff16565b985061195560006103e861363d565b6119bd565b6119ba886dffffffffffffffffffffffffffff166119818387612ce590919063ffffffff16565b8161198857fe5b04886dffffffffffffffffffffffffffff166119ad8487612ce590919063ffffffff16565b816119b457fe5b04613757565b98505b60008911611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613a046026913960400191505060405180910390fd5b611a208a8a61363d565b611a2c86868a8a612dfd565b8115611aa457611a9d6008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce590919063ffffffff16565b600b819055505b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f8585604051808381526020018281526020019250505060405180910390a250505050505050506001600c81905550919050565b60016020528060005260406000206000915090505481565b600b5481565b60046020528060005260406000206000915090505481565b6000806001600c5414611bc0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550600080611bd361126c565b50915091506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ca557600080fd5b505afa158015611cb9573d6000803e3d6000fd5b505050506040513d6020811015611ccf57600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d6157600080fd5b505afa158015611d75573d6000803e3d6000fd5b505050506040513d6020811015611d8b57600080fd5b810190808051906020019092919050505090506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000611dee88886133fa565b905060008054905080611e0a8685612ce590919063ffffffff16565b81611e1157fe5b049a5080611e288585612ce590919063ffffffff16565b81611e2f57fe5b04995060008b118015611e42575060008a115b611e97576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806139bb6026913960400191505060405180910390fd5b611ea13084613770565b611eac878d8d612a98565b611eb7868d8c612a98565b8673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f3457600080fd5b505afa158015611f48573d6000803e3d6000fd5b505050506040513d6020811015611f5e57600080fd5b810190808051906020019092919050505094508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611fee57600080fd5b505afa158015612002573d6000803e3d6000fd5b505050506040513d602081101561201857600080fd5b8101908080519060200190929190505050935061203785858b8b612dfd565b81156120af576120a86008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff16612ce590919063ffffffff16565b600b819055505b8b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d819364968d8d604051808381526020018281526020019250505060405180910390a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f434e4f2d4c50000000000000000000000000000000000000000000000000000081525081565b6000612178338484613266565b6001905092915050565b6103e881565b6001600c5414612200576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c819055506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506123568284612351600860009054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561230857600080fd5b505afa15801561231c573d6000803e3d6000fd5b505050506040513d602081101561233257600080fd5b8101908080519060200190929190505050612d7a90919063ffffffff16565b612a98565b61245681846124516008600e9054906101000a90046dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561240857600080fd5b505afa15801561241c573d6000803e3d6000fd5b505050506040513d602081101561243257600080fd5b8101908080519060200190929190505050612d7a90919063ffffffff16565b612a98565b50506001600c8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b42841015612525576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f50616e63616b653a20455850495245440000000000000000000000000000000081525060200191505060405180910390fd5b60006003547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558a604051602001808781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040528051906020012060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156126f7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561276b57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6127dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f50616e63616b653a20494e56414c49445f5349474e415455524500000000000081525060200191505060405180910390fd5b6127e889898961317b565b505050505050505050565b6002602052816000526040600020602052806000526040600020600091509150505481565b6001600c5414612890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f50616e63616b653a204c4f434b4544000000000000000000000000000000000081525060200191505060405180910390fd5b6000600c81905550612a8e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561293a57600080fd5b505afa15801561294e573d6000803e3d6000fd5b505050506040513d602081101561296457600080fd5b8101908080519060200190929190505050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a1457600080fd5b505afa158015612a28573d6000803e3d6000fd5b505050506040513d6020811015612a3e57600080fd5b8101908080519060200190929190505050600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff16612dfd565b6001600c81905550565b600060608473ffffffffffffffffffffffffffffffffffffffff166040518060400160405280601981526020017f7472616e7366657228616464726573732c75696e743235362900000000000000815250805190602001208585604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b60208310612bc55780518252602082019150602081019050602083039250612ba2565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612c27576040519150601f19603f3d011682016040523d82523d6000602084013e612c2c565b606091505b5091509150818015612c6c5750600081511480612c6b5750808060200190516020811015612c5957600080fd5b81019080805190602001909291905050505b5b612cde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f50616e63616b653a205452414e534645525f4641494c4544000000000000000081525060200191505060405180910390fd5b5050505050565b600080821480612d025750828283850292508281612cff57fe5b04145b612d74576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115612df7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168411158015612e6d57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff168311155b612edf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f50616e63616b653a204f564552464c4f5700000000000000000000000000000081525060200191505060405180910390fd5b60006401000000004281612eef57fe5b06905060006008601c9054906101000a900463ffffffff168203905060008163ffffffff16118015612f3257506000846dffffffffffffffffffffffffffff1614155b8015612f4f57506000836dffffffffffffffffffffffffffff1614155b15613031578063ffffffff16612f9485612f688661388a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138b590919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16026009600082825401925050819055508063ffffffff1661300284612fd68761388a565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166138b590919063ffffffff16565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1602600a600082825401925050819055505b85600860006101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550846008600e6101000a8154816dffffffffffffffffffffffffffff02191690836dffffffffffffffffffffffffffff160217905550816008601c6101000a81548163ffffffff021916908363ffffffff1602179055507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1600860009054906101000a90046dffffffffffffffffffffffffffff166008600e9054906101000a90046dffffffffffffffffffffffffffff1660405180836dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff168152602001826dffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6132b881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7a90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061334d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561346557600080fd5b505afa158015613479573d6000803e3d6000fd5b505050506040513d602081101561348f57600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141591506000600b54905082156135c157600081146135bc576000613527613522866dffffffffffffffffffffffffffff16886dffffffffffffffffffffffffffff16612ce590919063ffffffff16565b6135db565b90506000613534836135db565b9050808211156135b95760006135676135568385612d7a90919063ffffffff16565b600054612ce590919063ffffffff16565b9050600061359183613583600387612ce590919063ffffffff16565b61391590919063ffffffff16565b9050600081838161359e57fe5b04905060008111156135b5576135b4878261363d565b5b5050505b50505b6135d3565b600081146135d2576000600b819055505b5b505092915050565b6000600382111561362a5781905060006001600284816135f757fe5b040190505b818110156136245780915060028182858161361357fe5b04018161361c57fe5b0490506135fc565b50613638565b6000821461363757600190505b5b919050565b6136528160005461391590919063ffffffff16565b6000819055506136aa81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461391590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008183106137665781613768565b825b905092915050565b6137c281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061381a81600054612d7a90919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006e010000000000000000000000000000826dffffffffffffffffffffffffffff16029050919050565b6000816dffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168161390c57fe5b04905092915050565b6000828284019150811015613992576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b9291505056fe50616e63616b653a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4255524e454450616e63616b653a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b653a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820987acd9b8ab529ac051d7e57d5b8e913a937d215f7750203ff2413c0987833aa64736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429

Deployed ByteCode Sourcemap

10349:9653:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10349:9653:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17534:1875;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17534:1875:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;17534:1875:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;17534:1875:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;17534:1875:0;;;;;;;;;;;;:::i;:::-;;4901:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4901:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11362:231;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6948:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6948:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10653:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5039:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7250:301;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7250:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5331:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4997:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5188:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12420:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12420:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11004:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11043;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14608:1238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14608:1238:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5070:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5070:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11082:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5446:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5446:38:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15958:1464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15958:1464:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;4950:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4950:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7103:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10474:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19458:334;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19458:334:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10624:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10681:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7559:670;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7559:670:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5118:61;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5118:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19841:158;;;:::i;:::-;;17534:1875;11267:1;11255:8;;:13;11247:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:1;11299:8;:12;;;;17661:1;17648:10;:14;:32;;;;17679:1;17666:10;:14;17648:32;17640:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17732:17;17751;17773:13;:11;:13::i;:::-;17731:55;;;;;17833:9;17820:22;;:10;:22;:48;;;;;17859:9;17846:22;;:10;:22;17820:48;17812:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17917:13;17941;18031:15;18049:6;;;;;;;;;;;18031:24;;18066:15;18084:6;;;;;;;;;;;18066:24;;18115:7;18109:13;;:2;:13;;;;:30;;;;;18132:7;18126:13;;:2;:13;;;;18109:30;18101:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18191:1;18178:10;:14;18174:58;;;18194:38;18208:7;18217:2;18221:10;18194:13;:38::i;:::-;18174:58;18294:1;18281:10;:14;18277:58;;;18297:38;18311:7;18320:2;18324:10;18297:13;:38::i;:::-;18277:58;18398:1;18384:4;;:11;;:15;18380:93;;;18416:2;18401:30;;;18432:10;18444;18456;18468:4;;18401:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18401:72:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18401:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18401:72:0;;;;18380:93;18502:7;18495:25;;;18529:4;18495:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18495:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18495:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18495:40:0;;;;;;;;;;;;;;;;18484:51;;18564:7;18557:25;;;18591:4;18557:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18557:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18557:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18557:40:0;;;;;;;;;;;;;;;;18546:51;;11322:1;;18619:14;18659:10;18647:9;:22;;;18636:8;:33;:75;;18710:1;18636:75;;;18696:10;18684:9;:22;;;18672:8;:35;18636:75;18619:92;;18722:14;18762:10;18750:9;:22;;;18739:8;:33;:75;;18813:1;18739:75;;;18799:10;18787:9;:22;;;18775:8;:35;18739:75;18722:92;;18845:1;18833:9;:13;:30;;;;18862:1;18850:9;:13;18833:30;18825:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18988:21;19012:40;19035:16;19049:1;19035:9;:13;;:16;;;;:::i;:::-;19012:18;19025:4;19012:8;:12;;:18;;;;:::i;:::-;:22;;:40;;;;:::i;:::-;18988:64;;19063:21;19087:40;19110:16;19124:1;19110:9;:13;;:16;;;;:::i;:::-;19087:18;19100:4;19087:8;:12;;:18;;;;:::i;:::-;:22;;:40;;;;:::i;:::-;19063:64;;19188:43;19223:7;19188:30;19208:9;19188:30;;19193:9;19188:15;;:19;;:30;;;;:::i;:::-;:34;;:43;;;;:::i;:::-;19146:38;19167:16;19146;:20;;:38;;;;:::i;:::-;:85;;19138:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11322:1;;19270:49;19278:8;19288;19298:9;19309;19270:7;:49::i;:::-;19398:2;19335:66;;19340:10;19335:66;;;19352:9;19363;19374:10;19386;19335:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11322:1;;;;;;11345;11334:8;:12;;;;17534:1875;;;;;:::o;4901:42::-;;;;;;;;;;;;;;;;;;;:::o;11362:231::-;11406:17;11425;11444:26;11495:8;;;;;;;;;;;11483:20;;11526:8;;;;;;;;;;;11514:20;;11567:18;;;;;;;;;;;11545:40;;11362:231;;;:::o;6948:147::-;7012:4;7029:36;7038:10;7050:7;7059:5;7029:8;:36::i;:::-;7083:4;7076:11;;6948:147;;;;:::o;10653:21::-;;;;;;;;;;;;;:::o;5039:24::-;;;;:::o;7250:301::-;7328:4;7385:2;7349:9;:15;7359:4;7349:15;;;;;;;;;;;;;;;:27;7365:10;7349:27;;;;;;;;;;;;;;;;:39;7345:140;;7435:38;7467:5;7435:9;:15;7445:4;7435:15;;;;;;;;;;;;;;;:27;7451:10;7435:27;;;;;;;;;;;;;;;;:31;;:38;;;;:::i;:::-;7405:9;:15;7415:4;7405:15;;;;;;;;;;;;;;;:27;7421:10;7405:27;;;;;;;;;;;;;;;:68;;;;7345:140;7495:26;7505:4;7511:2;7515:5;7495:9;:26::i;:::-;7539:4;7532:11;;7250:301;;;;;:::o;5331:108::-;5373:66;5331:108;;;:::o;4997:35::-;5030:2;4997:35;:::o;5188:31::-;;;;:::o;12420:208::-;12516:7;;;;;;;;;;;12502:21;;:10;:21;;;12494:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12586:7;12577:6;;:16;;;;;;;;;;;;;;;;;;12613:7;12604:6;;:16;;;;;;;;;;;;;;;;;;12420:208;;:::o;11004:32::-;;;;:::o;11043:::-;;;;:::o;14608:1238::-;14657:14;11267:1;11255:8;;:13;11247:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:1;11299:8;:12;;;;14685:17;14704;14726:13;:11;:13::i;:::-;14684:55;;;;;14765:13;14788:6;;;;;;;;;;;14781:24;;;14814:4;14781:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14781:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14781:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14781:39:0;;;;;;;;;;;;;;;;14765:55;;14831:13;14854:6;;;;;;;;;;;14847:24;;;14880:4;14847:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14847:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14847:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14847:39:0;;;;;;;;;;;;;;;;14831:55;;14897:12;14912:23;14925:9;14912:23;;:8;:12;;:23;;;;:::i;:::-;14897:38;;14946:12;14961:23;14974:9;14961:23;;:8;:12;;:23;;;;:::i;:::-;14946:38;;14997:10;15010:30;15019:9;15030;15010:8;:30::i;:::-;14997:43;;15051:17;15071:11;;15051:31;;15191:1;15175:12;:17;15171:352;;;15221:54;10515:5;15221:31;15231:20;15243:7;15231;:11;;:20;;;;:::i;:::-;15221:9;:31::i;:::-;:35;;:54;;;;:::i;:::-;15209:66;;15289:36;15303:1;10515:5;15289;:36::i;:::-;15171:352;;;15425:86;15462:9;15434:37;;:25;15446:12;15434:7;:11;;:25;;;;:::i;:::-;:37;;;;;;15501:9;15473:37;;:25;15485:12;15473:7;:11;;:25;;;;:::i;:::-;:37;;;;;;15425:8;:86::i;:::-;15413:98;;15171:352;15553:1;15541:9;:13;15533:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15608:20;15614:2;15618:9;15608:5;:20::i;:::-;15641:49;15649:8;15659;15669:9;15680;15641:7;:49::i;:::-;15705:5;15701:47;;;15720:28;15739:8;;;;;;;;;;;15720:28;;15725:8;;;;;;;;;;;15720:14;;:18;;:28;;;;:::i;:::-;15712:5;:36;;;;15701:47;15809:10;15804:34;;;15821:7;15830;15804:34;;;;;;;;;;;;;;;;;;;;;;;;11322:1;;;;;;;;11345;11334:8;:12;;;;14608:1238;;;:::o;5070:41::-;;;;;;;;;;;;;;;;;:::o;11082:17::-;;;;:::o;5446:38::-;;;;;;;;;;;;;;;;;:::o;15958:1464::-;16007:12;16021;11267:1;11255:8;;:13;11247:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:1;11299:8;:12;;;;16047:17;16066;16088:13;:11;:13::i;:::-;16046:55;;;;;16127:15;16145:6;;;;;;;;;;;16127:24;;16208:15;16226:6;;;;;;;;;;;16208:24;;16289:13;16312:7;16305:25;;;16339:4;16305:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16305:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16305:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16305:40:0;;;;;;;;;;;;;;;;16289:56;;16356:13;16379:7;16372:25;;;16406:4;16372:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16372:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16372:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16372:40:0;;;;;;;;;;;;;;;;16356:56;;16423:14;16440:9;:24;16458:4;16440:24;;;;;;;;;;;;;;;;16423:41;;16477:10;16490:30;16499:9;16510;16490:8;:30::i;:::-;16477:43;;16531:17;16551:11;;16531:31;;16687:12;16661:23;16675:8;16661:9;:13;;:23;;;;:::i;:::-;:38;;;;;;16651:48;;16794:12;16768:23;16782:8;16768:9;:13;;:23;;;;:::i;:::-;:38;;;;;;16758:48;;16883:1;16873:7;:11;:26;;;;;16898:1;16888:7;:11;16873:26;16865:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16953:31;16967:4;16974:9;16953:5;:31::i;:::-;16995:35;17009:7;17018:2;17022:7;16995:13;:35::i;:::-;17041;17055:7;17064:2;17068:7;17041:13;:35::i;:::-;17105:7;17098:25;;;17132:4;17098:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17098:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17098:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17098:40:0;;;;;;;;;;;;;;;;17087:51;;17167:7;17160:25;;;17194:4;17160:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17160:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17160:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17160:40:0;;;;;;;;;;;;;;;;17149:51;;17213:49;17221:8;17231;17241:9;17252;17213:7;:49::i;:::-;17277:5;17273:47;;;17292:28;17311:8;;;;;;;;;;;17292:28;;17297:8;;;;;;;;;;;17292:14;;:18;;:28;;;;:::i;:::-;17284:5;:36;;;;17273:47;17411:2;17376:38;;17381:10;17376:38;;;17393:7;17402;17376:38;;;;;;;;;;;;;;;;;;;;;;;;11322:1;;;;;;;;;11345;11334:8;:12;;;;15958:1464;;;:::o;4950:40::-;;;;;;;;;;;;;;;;;;;:::o;7103:139::-;7163:4;7180:32;7190:10;7202:2;7206:5;7180:9;:32::i;:::-;7230:4;7223:11;;7103:139;;;;:::o;10474:46::-;10515:5;10474:46;:::o;19458:334::-;11267:1;11255:8;;:13;11247:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:1;11299:8;:12;;;;19509:15;19527:6;;;;;;;;;;;19509:24;;19559:15;19577:6;;;;;;;;;;;19559:24;;19609:82;19623:7;19632:2;19636:54;19681:8;;;;;;;;;;;19636:54;;19643:7;19636:25;;;19670:4;19636:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19636:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19636:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19636:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;19609:13;:82::i;:::-;19702;19716:7;19725:2;19729:54;19774:8;;;;;;;;;;;19729:54;;19736:7;19729:25;;;19763:4;19729:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19729:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19729:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19729:40:0;;;;;;;;;;;;;;;;:44;;:54;;;;:::i;:::-;19702:13;:82::i;:::-;11322:1;;11345;11334:8;:12;;;;19458:334;:::o;10624:22::-;;;;;;;;;;;;;:::o;10681:21::-;;;;;;;;;;;;;:::o;7559:670::-;7705:15;7693:8;:27;;7685:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7752:14;7857:16;;5373:66;7913:15;;7930:5;7937:7;7946:5;7953:6;:13;7960:5;7953:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;7970:8;7902:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7902:77:0;;;7892:88;;;;;;7793:202;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7793:202:0;;;7769:237;;;;;;7752:254;;8017:24;8044:26;8054:6;8062:1;8065;8068;8044:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8044:26:0;;;;;;;;8017:53;;8117:1;8089:30;;:16;:30;;;;:59;;;;;8143:5;8123:25;;:16;:25;;;8089:59;8081:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8190:31;8199:5;8206:7;8215:5;8190:8;:31::i;:::-;7559:670;;;;;;;;;:::o;5118:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19841:158::-;11267:1;11255:8;;:13;11247:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:1;11299:8;:12;;;;19882:109;19897:6;;;;;;;;;;;19890:24;;;19923:4;19890:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19890:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19890:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19890:39:0;;;;;;;;;;;;;;;;19938:6;;;;;;;;;;;19931:24;;;19964:4;19931:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19931:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19931:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19931:39:0;;;;;;;;;;;;;;;;19972:8;;;;;;;;;;;19982;;;;;;;;;;;19882:7;:109::i;:::-;11345:1;11334:8;:12;;;;19841:158::o;11601:285::-;11683:12;11697:17;11718:5;:10;;10579:34;;;;;;;;;;;;;;;;;10569:45;;;;;;11762:2;11766:5;11729:43;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11729:43:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;11729:43:0;11718:55;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11718:55:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;11682:91:0;;;;11792:7;:57;;;;;11819:1;11804:4;:11;:16;:44;;;;11835:4;11824:24;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11824:24:0;;;;;;;;;;;;;;;;11804:44;11792:57;11784:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11601:285;;;;;:::o;4674:142::-;4726:6;4758:1;4753;:6;:30;;;;4782:1;4777;4772;4768;:5;4764:9;;;4763:15;;;;;;:20;4753:30;4745:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4674:142;;;;:::o;4537:129::-;4589:6;4631:1;4625;4621;:5;4617:9;;;4616:16;;4608:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4537:129;;;;:::o;12713:858::-;12845:2;12825:23;;:8;:23;;:50;;;;;12872:2;12852:23;;:8;:23;;12825:50;12817:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12908:21;12957:5;12939:15;:23;;;;;;12908:55;;12974:18;13012;;;;;;;;;;;12995:14;:35;12974:56;;13082:1;13068:11;:15;;;:33;;;;;13100:1;13087:9;:14;;;;13068:33;:51;;;;;13118:1;13105:9;:14;;;;13068:51;13064:336;;;13274:11;13221:64;;13226:44;13260:9;13226:27;13243:9;13226:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13221:50;;:64;13197:20;;:88;;;;;;;;;;;13377:11;13324:64;;13329:44;13363:9;13329:27;13346:9;13329:16;:27::i;:::-;:33;;;;:44;;;;:::i;:::-;13324:50;;:64;13300:20;;:88;;;;;;;;;;;13064:336;13429:8;13410;;:28;;;;;;;;;;;;;;;;;;13468:8;13449;;:28;;;;;;;;;;;;;;;;;;13509:14;13488:18;;:35;;;;;;;;;;;;;;;;;;13539:24;13544:8;;;;;;;;;;;13554;;;;;;;;;;;13539:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12713:858;;;;;;:::o;6543:169::-;6652:5;6624:9;:16;6634:5;6624:16;;;;;;;;;;;;;;;:25;6641:7;6624:25;;;;;;;;;;;;;;;:33;;;;6689:7;6673:31;;6682:5;6673:31;;;6698:5;6673:31;;;;;;;;;;;;;;;;;;6543:169;;;:::o;6720:220::-;6814:26;6834:5;6814:9;:15;6824:4;6814:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6796:9;:15;6806:4;6796:15;;;;;;;;;;;;;;;:44;;;;6867:24;6885:5;6867:9;:13;6877:2;6867:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6851:9;:13;6861:2;6851:13;;;;;;;;;;;;;;;:40;;;;6922:2;6907:25;;6916:4;6907:25;;;6926:5;6907:25;;;;;;;;;;;;;;;;;;6720:220;;;:::o;13661:835::-;13734:10;13757:13;13789:7;;;;;;;;;;;13773:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13773:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13773:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13773:32:0;;;;;;;;;;;;;;;;13757:48;;13841:1;13824:19;;:5;:19;;;;13816:27;;13854:11;13868:5;;13854:19;;13903:5;13899:590;;;13939:1;13929:6;:11;13925:494;;13961:10;13974:41;13984:30;14004:9;13984:30;;13989:9;13984:15;;:19;;:30;;;;:::i;:::-;13974:9;:41::i;:::-;13961:54;;14034:14;14051:17;14061:6;14051:9;:17::i;:::-;14034:34;;14099:9;14091:5;:17;14087:317;;;14133:14;14150:37;14166:20;14176:9;14166:5;:9;;:20;;;;:::i;:::-;14150:11;;:15;;:37;;;;:::i;:::-;14133:54;;14210:16;14229:27;14246:9;14229:12;14239:1;14229:5;:9;;:12;;;;:::i;:::-;:16;;:27;;;;:::i;:::-;14210:46;;14279:14;14308:11;14296:9;:23;;;;;;14279:40;;14358:1;14346:9;:13;14342:42;;;14361:23;14367:5;14374:9;14361:5;:23::i;:::-;14342:42;14087:317;;;;13925:494;;;13899:590;;;14450:1;14440:6;:11;14436:53;;14476:1;14468:5;:9;;;;14436:53;13899:590;13661:835;;;;;;:::o;8523:303::-;8568:6;8595:1;8591;:5;8587:232;;;8617:1;8613:5;;8633:6;8650:1;8646;8642;:5;;;;;;:9;8633:18;;8666:92;8677:1;8673;:5;8666:92;;;8703:1;8699:5;;8741:1;8736;8732;8728;:5;;;;;;:9;8727:15;;;;;;8723:19;;8666:92;;;8587:232;;;;8784:1;8779;:6;8775:44;;8806:1;8802:5;;8775:44;8587:232;8523:303;;;:::o;6117:201::-;6190:22;6206:5;6190:11;;:15;;:22;;;;:::i;:::-;6176:11;:36;;;;6239:24;6257:5;6239:9;:13;6249:2;6239:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6223:9;:13;6233:2;6223:13;;;;;;;;;;;;;;;:40;;;;6300:2;6279:31;;6296:1;6279:31;;;6304:5;6279:31;;;;;;;;;;;;;;;;;;6117:201;;:::o;8309:96::-;8361:6;8388:1;8384;:5;:13;;8396:1;8384:13;;;8392:1;8384:13;8380:17;;8309:96;;;;:::o;6326:209::-;6405:26;6425:5;6405:9;:15;6415:4;6405:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;6387:9;:15;6397:4;6387:15;;;;;;;;;;;;;;;:44;;;;6456:22;6472:5;6456:11;;:15;;:22;;;;:::i;:::-;6442:11;:36;;;;6517:1;6494:33;;6503:4;6494:33;;;6521:5;6494:33;;;;;;;;;;;;;;;;;;6326:209;;:::o;9095:120::-;9145:9;9040:6;9179:1;9171:10;;:17;9167:21;;9095:120;;;:::o;9286:108::-;9346:9;9384:1;9376:10;;9372:14;;:1;:14;;;;;;;;9368:18;;9286:108;;;;:::o;4401:128::-;4453:6;4495:1;4489;4485;:5;4481:9;;;4480:16;;4472:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4401:128;;;;:::o

Swarm Source

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