Contract 0x52cf099d7c891951eace3e99abc580bda26912fc 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xe7978983be58cb66a0b0a685a4b09c416be989f2d91e75d4aa6a54931b3f9219Transfer131454452021-12-03 1:01:4817 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00020844
0xe0e0d6cd4b3361d1878215dc593a9bd83c518eef0695ea1a107ebe886428c33bApprove131452522021-12-03 0:52:0927 mins ago0xfe5dcf645e4ba46c3264ef9070edbfa23d50e91c IN  Nevada: NEVADA Token0 BNB0.00022239
0x23a8d1133577d7adf0069c496d222ff3fa7d5e9382c18d7e71b445f335892166Transfer131451512021-12-03 0:47:0632 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00020844
0x8fa7c1d4927c0ff611c0b5beb1e2bd3216affeebadd19aa6ec2d272e21ce3dfdApprove131444842021-12-03 0:13:441 hr 5 mins ago0xdb7df042d0b1fc88e0c3203b8e8d524561fe43f4 IN  Nevada: NEVADA Token0 BNB0.00022233
0xcd688d6f5becc7bdc85ad736b77d462fb1f575d9c11834507e8fb54a13f7f924Approve131443642021-12-03 0:07:441 hr 11 mins ago0xce8647b65f082e8564764499e3ddfe18da76cc38 IN  Nevada: NEVADA Token0 BNB0.00022233
0x8a3283b8bd5c060f75206e30cf81a75f5ab87f282992abe38f57c4c3adf2f190Approve131438522021-12-02 23:42:081 hr 37 mins ago0xe719403d78c4a608f2bf6d81e767bee7d11ed1bc IN  Nevada: NEVADA Token0 BNB0.00022233
0x96cfcf63684082b4732e8c224ade33eaa567bc28e0a5edae05787ba0a7e315b6Approve131427272021-12-02 22:45:532 hrs 33 mins ago0xcee618fe53e273caac236a52666532f5d7de6c52 IN  Nevada: NEVADA Token0 BNB0.00022239
0xa9d8d655d64a76e2fd936382c22288a437b4386ce4701f58c3a7af7768abf57eApprove131425622021-12-02 22:37:382 hrs 41 mins ago0x0f5ccf0f182d460410c8afa519428a8295c0f960 IN  Nevada: NEVADA Token0 BNB0.00022239
0x629f9147fa47f6769113bdb86de7edd9fb29e5b9becc6fa216dac5c65d96b9efApprove131425442021-12-02 22:36:442 hrs 42 mins ago0x90da4864cd5fefd439df3dd2212fce02666c08a2 IN  Nevada: NEVADA Token0 BNB0.000311346
0x1cc94e775a07129a6eff9e43c4e8665c067d3230c9c0cd6913f910afd88189e5Transfer131423712021-12-02 22:28:052 hrs 51 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00020838
0x1baecaf29dcccdf85f6cf9828abaae5a4d1fd64e39963fa8d1755abe01cae5faApprove131422952021-12-02 22:24:172 hrs 55 mins ago0x639ddd052477c691cfaebb5e7432c3dfadc050f6 IN  Nevada: NEVADA Token0 BNB0.000311346
0x25b0915ef4f11ce39bed3b58df9aae9d276bbc053b3bbbccadde33def04b964eTransfer131422652021-12-02 22:22:472 hrs 56 mins ago0xdfaaec69c360a7fd2ea195a684cc846dfecf3c33 IN  Nevada: NEVADA Token0 BNB0.00013344
0x8c13f67934a77f5713f5a35a38213a2531f583b579b8e13550073becd01be03aTransfer131422452021-12-02 22:21:472 hrs 57 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00028344
0x45e8da54747be4c1a5ddbd7f22fba10af3768c1b1ef688fdcf6e94509162fb0dApprove131420902021-12-02 22:13:293 hrs 6 mins ago0xffb1ec411b5cfdc6bc22c5758e4618d0f75c4e7e IN  Nevada: NEVADA Token0 BNB0.000266868
0x51fe20c32e0f4695d3ab32eb2e498c68ad532b3ab786e87a0a642845e438e65fApprove131420642021-12-02 22:12:113 hrs 7 mins ago0x7184e51d2a1477891260773cad9ccb77554dafe6 IN  Nevada: NEVADA Token0 BNB0.00022233
0x266d7d28c1c71c51aa06f0db7c7d08dc9f0941d10a5a4d674199ea9f12a40509Approve131420402021-12-02 22:10:593 hrs 8 mins ago0xa0ec73f9ec463ca5042df678f06445d8f56b56af IN  Nevada: NEVADA Token0 BNB0.00022239
0xbb479daf3571ff0eb389733b8eb14b7fb4dbff9d3ca6ade82cbb4c53aeea4400Approve131418872021-12-02 22:03:203 hrs 16 mins ago0x4cf10907f0b52fb0966b8bdc849bc2f95a9e5b0e IN  Nevada: NEVADA Token0 BNB0.000072735
0x1900f6339ca4901d7a50dd503ebec4c8b5fb8b1ddac2a7c703e60ef11a01c60dApprove131417452021-12-02 21:56:143 hrs 23 mins ago0xaf18fc803fe92a40b965f9012b949e9e5860f1b9 IN  Nevada: NEVADA Token0 BNB0.00022233
0x3fd193af2eb6d33be5c553fab983e76f3485b0b5f751f96d54e8324b59f3d184Transfer131415472021-12-02 21:46:203 hrs 33 mins ago0xdfaaec69c360a7fd2ea195a684cc846dfecf3c33 IN  Nevada: NEVADA Token0 BNB0.00013338
0xa0c2576dec6e891cbb4f5aa232cfec95d7a24a74a6ee93c1a5bf0713fad03094Approve131415242021-12-02 21:45:113 hrs 34 mins ago0x86f530a14e42540ccb4df2a95f8aea5be8790653 IN  Nevada: NEVADA Token0 BNB0.00022239
0x7d9dc3427f41f0fe67021ee8a9f29ce475e688f187c585d2733ca534d51aa4b7Transfer131415202021-12-02 21:44:593 hrs 34 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00020838
0xadc18bf42e1ea0dae453ea4f740b15ad4fa7b1e68850e00519dd488de8dd79baTransfer131414682021-12-02 21:42:233 hrs 37 mins ago0xdfaaec69c360a7fd2ea195a684cc846dfecf3c33 IN  Nevada: NEVADA Token0 BNB0.00020838
0x1a995a17479cac82519728efa1bf84e8323643bff24523b2f0a350ed438f4a04Transfer131414302021-12-02 21:40:293 hrs 39 mins ago0x6790dce616b3993a7280b1f608981d344842c642 IN  Nevada: NEVADA Token0 BNB0.00028338
0x06b8b339d0c0573b48dcd8a9b3270d96183da57227799160522b7075ba8116d1Approve131413992021-12-02 21:38:563 hrs 40 mins ago0x021226ce3ed68d9f31bb11b9d71cf533e20ab1f8 IN  Nevada: NEVADA Token0 BNB0.00022239
0xe972fcd4c742734979c3a5b9a2ec666a0e538290c3361ae2d01f4e066145e1a3Approve131413912021-12-02 21:38:323 hrs 41 mins ago0x353af69c75c524aef07794dddb6e96c97e91312f IN  Nevada: NEVADA Token0 BNB0.00022239
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x096ecc058e927faa48b2075aae4ed4c2e7bf48e95410fc90ef92a42c8acaadc7131426762021-12-02 22:43:202 hrs 36 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001524759075386024 BNB
0x096ecc058e927faa48b2075aae4ed4c2e7bf48e95410fc90ef92a42c8acaadc7131426762021-12-02 22:43:202 hrs 36 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.272931874494098346 BNB
0xdc44593ba7a027cee19f5e1f5a82d433c5467053078b263336b74adcd129089f131423102021-12-02 22:25:022 hrs 54 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001531439969550186 BNB
0xdc44593ba7a027cee19f5e1f5a82d433c5467053078b263336b74adcd129089f131423102021-12-02 22:25:022 hrs 54 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.274127754549483327 BNB
0x3dd0003aa1b65042ffe31e1ec054124dfc534505e60ec351ee58d0c729c970e4131421842021-12-02 22:18:443 hrs ago Nevada: NEVADA Token PancakeSwap: Router v20.001531677454941232 BNB
0x3dd0003aa1b65042ffe31e1ec054124dfc534505e60ec351ee58d0c729c970e4131421842021-12-02 22:18:443 hrs ago PancakeSwap: Router v2 Nevada: NEVADA Token0.274170264434480539 BNB
0x3db11db9e37252b0ef3b82453d8838086e61fa3f174ef04195a719be57cfe5fd131420972021-12-02 22:13:563 hrs 5 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001531044152244247 BNB
0x3db11db9e37252b0ef3b82453d8838086e61fa3f174ef04195a719be57cfe5fd131420972021-12-02 22:13:563 hrs 5 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.274056903251720362 BNB
0x329eec2fb00c8aebabfdfcf21a2ad7411eff2fbf6aea3180d019926191ff04a4131409302021-12-02 21:15:294 hrs 4 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001481371664409197 BNB
0x329eec2fb00c8aebabfdfcf21a2ad7411eff2fbf6aea3180d019926191ff04a4131409302021-12-02 21:15:294 hrs 4 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.265165527929246282 BNB
0xcd2a86b4a3022f84a4a8d08f121baa1573c041c4443df6d2778bcef5cec7ceb5131402552021-12-02 20:41:444 hrs 37 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001477391779716814 BNB
0xcd2a86b4a3022f84a4a8d08f121baa1573c041c4443df6d2778bcef5cec7ceb5131402552021-12-02 20:41:444 hrs 37 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264453128569309829 BNB
0xa6a4e6b00bd4ac70be4b60b038ed6194f44132c59f1f76cfca090e67eec6b86e131392992021-12-02 19:53:505 hrs 25 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001477109461002572 BNB
0xa6a4e6b00bd4ac70be4b60b038ed6194f44132c59f1f76cfca090e67eec6b86e131392992021-12-02 19:53:505 hrs 25 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264402593519460562 BNB
0xe5c66e3c5a8e80ada969dfad52ab70fe513f93eb08fd05805612b1ee751c7fe6131391952021-12-02 19:48:385 hrs 30 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.00147991480051745 BNB
0xe5c66e3c5a8e80ada969dfad52ab70fe513f93eb08fd05805612b1ee751c7fe6131391952021-12-02 19:48:385 hrs 30 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264904749292623568 BNB
0xaa14478d7306fec560adbc5a320eb2437343065357f00b95d9e510672ce9ab34131391552021-12-02 19:46:385 hrs 32 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.00147991480051745 BNB
0xaa14478d7306fec560adbc5a320eb2437343065357f00b95d9e510672ce9ab34131391552021-12-02 19:46:385 hrs 32 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264904749292623568 BNB
0x971417ca1a8a11ae4e0bd83c1c1795100b6a85e0dadaf52b202cb8ed79f465ab131380372021-12-02 18:50:316 hrs 29 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001474121003340923 BNB
0x971417ca1a8a11ae4e0bd83c1c1795100b6a85e0dadaf52b202cb8ed79f465ab131380372021-12-02 18:50:316 hrs 29 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.26386765959802534 BNB
0x7916dc0ef0ee6844e4edfefc197ec5d5842fa8f3468df5a3a53f33dd30e44756131379812021-12-02 18:47:436 hrs 31 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001475616995704578 BNB
0x7916dc0ef0ee6844e4edfefc197ec5d5842fa8f3468df5a3a53f33dd30e44756131379812021-12-02 18:47:436 hrs 31 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264135442231119487 BNB
0x8b695ff6656f3dd361befa599be8f51bf2b14f5310bcbf813383f4baaed43963131379272021-12-02 18:45:016 hrs 34 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001475616995704578 BNB
0x8b695ff6656f3dd361befa599be8f51bf2b14f5310bcbf813383f4baaed43963131379272021-12-02 18:45:016 hrs 34 mins ago PancakeSwap: Router v2 Nevada: NEVADA Token0.264135442231119487 BNB
0x071374b6439ea4a717a0e5816aacc31829c78d02454b52cb1a15d045dd1a209e131377042021-12-02 18:33:516 hrs 45 mins ago Nevada: NEVADA Token PancakeSwap: Router v20.001436606004420423 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Nevada

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: Nevada.sol
// SPDX-License-Identifier: MIT

/**
 * .------..------..------..------..------..------.
 * |N.--. ||E.--. ||V.--. ||A.--. ||D.--. ||A.--. |
 * | :(): || (\/) || :(): || (\/) || :/\: || (\/) |
 * | ()() || :\/: || ()() || :\/: || (__) || :\/: |
 * | '--'N|| '--'E|| '--'V|| '--'A|| '--'D|| '--'A|
 * `------'`------'`------'`------'`------'`------'
 *
 * The first BSC token to feature a reward-based gambling platform.
 *
 * https://nevada.casino
 * https://t.me/NevADAtoken
 * https://twitter.com/NevADAbsc
 * https://www.reddit.com/r/NevADAtoken
 *
 * In memory of Selma
 */

pragma solidity ^0.8.0;

import "./IDex.sol";
import "./IBEP20.sol";
import "./ISelmaNFT.sol";

contract Nevada is IBEP20 {
    address constant OWNER = 0x66B5F1Dd434723C0304514029704d0db5Cc01D4B;
    address constant LOTTERY_WALLET = 0xA4143eF8BEFA7c091A14a0a4686d85A47678dc0b;
    address constant MARKETING_WALLET = 0xf452E622b99B13992D9491d96D422A7259510383;
    address constant DEVELOPMENT_WALLET = 0x32418251Ca2d91774070cFfB00FdA05D26E06f26;
    address constant LOCKER = 0xB2c8faaBfC026af5f3C44f46B8454662d03eaDDD;
    ISelmaNFT public constant SELMA_NFT = ISelmaNFT(0x824Db8c2Cf7eC655De2A7825f8E9311c8e526523);

    bool public swapEnabled = true;
    bool public tradingEnabled;
    bool _sniperRekt = true;
    bool _inSwap;

    uint8 constant DECIMALS = 18;
    uint256 constant TOTAL_SUPPLY = 10**9 * 10**DECIMALS;
    uint256 public swapThreshold = 300000 * 10**DECIMALS;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isMarketMaker;

    uint256 public lotteryFee = 300;
    uint256 public liquidityFee = 200;
    uint256 public marketingFee = 200;
    uint256 public developmentFee = 200;
    uint256 _totalFee = 900;
    uint256 constant FEE_DENOMINATOR = 10000;

    uint256 public lotteryShare;
    uint256 public marketingShare;
    uint256 public developmentShare;
    uint256 public transferGas = 25000;

    IDexRouter public constant ROUTER = IDexRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
    address public immutable pair;
    address public presale;

    event Launch(uint256 timestamp);
    event SetFeeExempt(address indexed account, bool indexed exempt);
    event SetMarketMaker(address indexed account, bool indexed isMM);
    event SetFees(uint256 lottery, uint256 liquidity, uint256 marketing, uint256 development);
    event SetSwapBackSettings(bool indexed enabled, uint256 amount);
    event UpdateTransferGas(uint256 gas);
    event TriggerSwapBack();
    event AutoLiquidity(uint256 pair, uint256 tokens);
    event Recover(uint256 amount);
    event ClaimLottery(uint256 amount);
    event ClaimMarketing(uint256 amount);
    event ClaimDevelopment(uint256 amount);
    event InitPresale(address presale);
    event EnableTrading();

    modifier swapping() { 
        _inSwap = true;
        _;
        _inSwap = false;
    }

    modifier onlyOwner() {
        require(msg.sender == OWNER);
        _;
    }

    constructor () {
        pair = IDexFactory(ROUTER.factory()).createPair(ROUTER.WETH(), address(this));
        _allowances[address(this)][address(ROUTER)] = type(uint256).max;

        isMarketMaker[pair] = true;
        isFeeExempt[OWNER] = true;
        isFeeExempt[MARKETING_WALLET] = true;
        isFeeExempt[LOTTERY_WALLET] = true;
        isFeeExempt[DEVELOPMENT_WALLET] = true;
        isFeeExempt[address(this)] = true;

        _balances[MARKETING_WALLET] = TOTAL_SUPPLY;
        emit Transfer(address(0), MARKETING_WALLET, TOTAL_SUPPLY);
    }

    // IBEP20

    function totalSupply() external pure override returns (uint256) { return TOTAL_SUPPLY; }
    function decimals() external pure override returns (uint8) { return DECIMALS; }
    function symbol() external pure override returns (string memory) { return "NEVADA"; }
    function name() external pure override returns (string memory) { return "Nevada"; }
    function getOwner() external pure override returns (address) { return OWNER; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address _owner, address spender) external view override returns (uint256) { return _allowances[_owner][spender]; }

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

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer amount exceeds allowance");

        _approve(sender, msg.sender, currentAllowance - amount);
        return true;
    }

    // IBEP20 Helpers

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "Decreased allowance below zero");

        _approve(msg.sender, spender, currentAllowance - subtractedValue);
        return true;
    }

    // Public

    receive() external payable {}

    function getTotalFee() public view returns (uint256) {
        if(_sniperRekt){ return FEE_DENOMINATOR - 100; }
        return _totalFee;
    }

    // Private

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) private returns (bool) {
        if(isFeeExempt[sender] || isFeeExempt[recipient]){ return _basicTransfer(sender, recipient, amount); }
        require(tradingEnabled, "Trading disabled");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer amount exceeds balance");
        
        if(shouldSwapBack(recipient)){ swapBack(); }

        _balances[sender] = senderBalance - amount;
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] += amountReceived;

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) private returns (bool) {
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer amount exceeds balance");

        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender, address recipient) private view returns (bool) {
        bool isSell = isMarketMaker[recipient];
        bool isBuy = isMarketMaker[sender];
        return isBuy || isSell;
    }

    function takeFee(address sender, address recipient, uint256 amount) private returns (uint256) {
        bool isBuy = isMarketMaker[sender];
        address initiator = isBuy ? recipient : sender;
        uint256 discountMultiplier = selmaTaxDiscount(initiator);

        uint256 discountedFee = getTotalFee() - getTotalFee() * discountMultiplier / FEE_DENOMINATOR;
        uint256 feeAmount = amount * discountedFee / FEE_DENOMINATOR;

        if (feeAmount > 0) {
            _balances[address(this)] += feeAmount;
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount - feeAmount;
    }

    function selmaTaxDiscount(address account) private view returns (uint256) {
        uint256 discountMultiplier;

        try SELMA_NFT.balanceOf(account, 1) returns (uint256 platinumBalance) {
            if (platinumBalance > 0) { discountMultiplier = 5000; }
        } catch {}

        try SELMA_NFT.balanceOf(account, 2) returns (uint256 diamondBalance) {
            if (diamondBalance > 0) { discountMultiplier = FEE_DENOMINATOR; }
        } catch {}

        return discountMultiplier;
    }

    function shouldSwapBack(address recipient) private view returns (bool) {
        return isMarketMaker[recipient]
        && !_inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() private swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = ROUTER.WETH();

        uint256 liquidityTokens = swapThreshold * liquidityFee / _totalFee / 2;
        uint256 amountToSwap = swapThreshold - liquidityTokens;
        uint256 balanceBefore = address(this).balance;

        ROUTER.swapExactTokensForETH(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance - balanceBefore;
        uint256 totalBNBFee = _totalFee - liquidityFee / 2;

        uint256 amountBNBLiquidity = amountBNB * liquidityFee / totalBNBFee / 2;
        lotteryShare += amountBNB * lotteryFee / totalBNBFee;
        marketingShare += amountBNB * marketingFee / totalBNBFee;
        developmentShare += amountBNB * developmentFee / totalBNBFee;

        if (liquidityTokens > 0) {
            ROUTER.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                liquidityTokens,
                0,
                0,
                LOCKER,
                block.timestamp
            );

            emit AutoLiquidity(amountBNBLiquidity, liquidityTokens);
        }
    }

    // Claim fees

    function claimMarketing() external {
        require(msg.sender == MARKETING_WALLET, "Unauthorized caller");

        uint256 marketingAmount = marketingShare;
        marketingShare = 0;

        if (marketingAmount > 0) {
            (bool sent,) = payable(MARKETING_WALLET).call{value: marketingAmount, gas: transferGas}("");
            require(sent, "Tx failed");
            
            emit ClaimMarketing(marketingAmount);
        }
    }

    function claimLottery() external {
        require(msg.sender == LOTTERY_WALLET, "Unauthorized caller");

        uint256 lotteryAmount = lotteryShare;
        lotteryShare = 0;

        if (lotteryAmount > 0) {
            (bool sent,) = payable(LOTTERY_WALLET).call{value: lotteryAmount, gas: transferGas}("");
            require(sent, "Tx failed");
            
            emit ClaimLottery(lotteryAmount);
        }
    }

    function claimDevelopment() external {
        require(msg.sender == DEVELOPMENT_WALLET, "Unauthorized caller");

        uint256 developmentAmount = developmentShare;
        developmentShare = 0;

        if (developmentAmount > 0) {
            (bool sent,) = payable(DEVELOPMENT_WALLET).call{value: developmentAmount, gas: transferGas}("");
            require(sent, "Tx failed");
            
            emit ClaimDevelopment(developmentAmount);
        }
    }

    function recover() external onlyOwner {
        uint256 recoverAmount = address(this).balance - lotteryShare - marketingShare - developmentShare;
		(bool sent,) = payable(OWNER).call{value: recoverAmount, gas: transferGas}("");
		require(sent, "Tx failed");

        emit Recover(recoverAmount);
	}

    // Maintenance

    function setIsFeeExempt(address account, bool exempt) external onlyOwner {
        require(account != MARKETING_WALLET && account != OWNER && account != address(this) && !isMarketMaker[account]);
        isFeeExempt[account] = exempt;
        emit SetFeeExempt(account, exempt);
    }

    function setIsMarketMaker(address account, bool isMM) external onlyOwner {
        require(account != pair);
        isMarketMaker[account] = isMM;
        emit SetMarketMaker(account, isMM);
    }

    function setFees(
        uint256 _lotteryFee,
        uint256 _liquidityFee,
        uint256 _marketingFee,
        uint256 _developmentFee
    ) external onlyOwner {
        lotteryFee = _lotteryFee;
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        developmentFee = _developmentFee;
        _totalFee = lotteryFee + liquidityFee + marketingFee + developmentFee;
        require(_totalFee <= 1500);

        emit SetFees(lotteryFee, liquidityFee, marketingFee, developmentFee);
    }

    function setSwapBackSettings(bool enabled, uint256 amount) external onlyOwner {
        uint256 tokenAmount = amount * 10**DECIMALS;
        swapEnabled = enabled;
        swapThreshold = tokenAmount;
        emit SetSwapBackSettings(enabled, amount);
    }

    function updateTransferGas(uint256 newGas) external onlyOwner {
        require(newGas >= 21000 && newGas <= 100000);
        
        transferGas = newGas;
        emit UpdateTransferGas(newGas);
    }

    function triggerSwapBack() external onlyOwner {
        swapBack();
        emit TriggerSwapBack();
    }

    function removeSniperRekt() external onlyOwner {
        _sniperRekt = false;
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
        emit EnableTrading();
    }

    function initPresale(address newPresale) external onlyOwner {
        require(presale == address(0), "Presale is already initialized");

        presale = newPresale;
        isFeeExempt[presale] = true;
        emit InitPresale(presale);
    }
}

File 2 of 4: IBEP20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

File 3 of 4: IDex.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETH(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

File 4 of 4: ISelmaNFT.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface ISelmaNFT {
    function balanceOf(address account, uint256 id) external view returns (uint256);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"pair","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"AutoLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimDevelopment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimLottery","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimMarketing","type":"event"},{"anonymous":false,"inputs":[],"name":"EnableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"presale","type":"address"}],"name":"InitPresale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Recover","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"lottery","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"development","type":"uint256"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"bool","name":"isMM","type":"bool"}],"name":"SetMarketMaker","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SetSwapBackSettings","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"TriggerSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"}],"name":"UpdateTransferGas","type":"event"},{"inputs":[],"name":"ROUTER","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SELMA_NFT","outputs":[{"internalType":"contract ISelmaNFT","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimDevelopment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimLottery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPresale","type":"address"}],"name":"initPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketMaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lotteryShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presale","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSniperRekt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lotteryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_developmentFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"isMM","type":"bool"}],"name":"setIsMarketMaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"triggerSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"updateTransferGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526000805462ff00ff191662010001179055620000236012600a620004e6565b6200003290620493e0620004fe565b60015561012c60065560c860075560c860085560c8600955610384600a556161a8600e553480156200006357600080fd5b507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620000b257600080fd5b505afa158015620000c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ed919062000520565b6001600160a01b031663c9c653967310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200014957600080fd5b505afa1580156200015e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000184919062000520565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620001cc57600080fd5b505af1158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000207919062000520565b6001600160a01b031660808190523060008181526003602090815260408083207310ed43c718714eb63d5aa57b78b54704e256024e845282528083206000199055938252600581528382208054600160ff19918216811790925560049092527fda15b22c595c9f96595cfe3d1aa51a33e88d8444516bf7b0c98d52edb4f2203580548316821790557fe1a1fb6bc4037ef0883056b712e5097e31b88aa946eade5bf58fab46a4276dbb80548316821790557f6fcabde87e811e04e429fc96d6f7da6ace89a9688d745ecb2185bab5793765e180548316821790557f3b905de4452c877532b2c6319bcc650ef240bb4b245003eedc85b06a1dc30b1180548316821790559282529290208054909216179055620003266012600a620004e6565b6200033690633b9aca00620004fe565b73f452e622b99b13992d9491d96d422a7259510383600081815260026020527f64d638f0651cb2dae4f40fb7d5132bc254e7159f16adf52db2af9a0739ae1b7f92909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003aa6012600a620004e6565b620003ba90633b9aca00620004fe565b60405190815260200160405180910390a36200054b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004285781600019048211156200040c576200040c620003d1565b808516156200041a57918102915b93841c9390800290620003ec565b509250929050565b6000826200044157506001620004e0565b816200045057506000620004e0565b8160018114620004695760028114620004745762000494565b6001915050620004e0565b60ff841115620004885762000488620003d1565b50506001821b620004e0565b5060208310610133831016604e8410600b8410161715620004b9575081810a620004e0565b620004c58383620003e7565b8060001904821115620004dc57620004dc620003d1565b0290505b92915050565b6000620004f760ff84168362000430565b9392505050565b60008160001904831182151516156200051b576200051b620003d1565b500290565b6000602082840312156200053357600080fd5b81516001600160a01b0381168114620004f757600080fd5b60805161228c6200056e600039600081816106910152610d78015261228c6000f3fe6080604052600436106102605760003560e01c806378aa08ed11610144578063a6072328116100b6578063ce7460241161007a578063ce74602414610723578063d0c69e2314610738578063dd62ed3e1461074d578063df20fd4914610793578063fa03f797146107b3578063fdea8e0b146107c957600080fd5b8063a60723281461066a578063a8aa1b311461067f578063a9059cbb146106b3578063ae633ff4146106d3578063cdc0519f146106f357600080fd5b806395d89b411161010857806395d89b41146105ba578063974f7a51146105e957806398118cb414610609578063a0d8bbb61461061f578063a457c2d714610634578063a5f3d0031461065457600080fd5b806378aa08ed146105435780637ae316d014610559578063893d20e81461056e5780638a8c523c1461058f5780638d48e2ae146105a457600080fd5b806339509351116101dd5780634e584e11116101a15780634e584e1114610487578063658d4b7f1461049d5780636b67c4df146104bd5780636ddd1713146104d35780636fcba377146104ed57806370a082311461050d57600080fd5b806339509351146103db5780633f4218e0146103fb578063456d401a1461042b5780634901103d146104405780634ada218b1461046857600080fd5b806323b872dd1161022457806323b872dd146103285780632cd9485714610348578063313ce5671461036a57806332fe7b2614610386578063374ddd36146103c657600080fd5b80630445b6671461026c57806306fdde031461029557806309218ee7146102cd578063095ea7b3146102e357806318160ddd1461031357600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260015481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506040805180820190915260068152654e657661646160d01b60208201525b60405161028c9190611cd0565b3480156102d957600080fd5b50610282600c5481565b3480156102ef57600080fd5b506103036102fe366004611d3a565b6107e9565b604051901515815260200161028c565b34801561031f57600080fd5b50610282610800565b34801561033457600080fd5b50610303610343366004611d66565b610821565b34801561035457600080fd5b50610368610363366004611da7565b6108d3565b005b34801561037657600080fd5b506040516012815260200161028c565b34801561039257600080fd5b506103ae7310ed43c718714eb63d5aa57b78b54704e256024e81565b6040516001600160a01b03909116815260200161028c565b3480156103d257600080fd5b506103686109b8565b3480156103e757600080fd5b506103036103f6366004611d3a565b610ab3565b34801561040757600080fd5b50610303610416366004611da7565b60046020526000908152604090205460ff1681565b34801561043757600080fd5b50610368610aea565b34801561044c57600080fd5b506103ae73824db8c2cf7ec655de2a7825f8e9311c8e52652381565b34801561047457600080fd5b5060005461030390610100900460ff1681565b34801561049357600080fd5b50610282600b5481565b3480156104a957600080fd5b506103686104b8366004611dd9565b610b37565b3480156104c957600080fd5b5061028260085481565b3480156104df57600080fd5b506000546103039060ff1681565b3480156104f957600080fd5b50610368610508366004611e0e565b610c2c565b34801561051957600080fd5b50610282610528366004611da7565b6001600160a01b031660009081526002602052604090205490565b34801561054f57600080fd5b5061028260065481565b34801561056557600080fd5b50610282610ce4565b34801561057a57600080fd5b506000805160206122378339815191526103ae565b34801561059b57600080fd5b50610368610d0a565b3480156105b057600080fd5b50610282600d5481565b3480156105c657600080fd5b506040805180820190915260068152654e455641444160d01b60208201526102c0565b3480156105f557600080fd5b50610368610604366004611dd9565b610d5c565b34801561061557600080fd5b5061028260075481565b34801561062b57600080fd5b50610368610e09565b34801561064057600080fd5b5061030361064f366004611d3a565b610efb565b34801561066057600080fd5b5061028260095481565b34801561067657600080fd5b50610368610f88565b34801561068b57600080fd5b506103ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106bf57600080fd5b506103036106ce366004611d3a565b61107a565b3480156106df57600080fd5b506103686106ee366004611e40565b611087565b3480156106ff57600080fd5b5061030361070e366004611da7565b60056020526000908152604090205460ff1681565b34801561072f57600080fd5b506103686110f4565b34801561074457600080fd5b506103686111e6565b34801561075957600080fd5b50610282610768366004611e59565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561079f57600080fd5b506103686107ae366004611e92565b61120e565b3480156107bf57600080fd5b50610282600e5481565b3480156107d557600080fd5b50600f546103ae906001600160a01b031681565b60006107f6338484611292565b5060015b92915050565b600061080e6012600a611fa8565b61081c90633b9aca00611fb7565b905090565b600061082e8484846112f3565b506001600160a01b0384166000908152600360209081526040808320338452909152902054828110156108b25760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636044820152606560f81b60648201526084015b60405180910390fd5b6108c685336108c18685611fd6565b611292565b60019150505b9392505050565b33600080516020612237833981519152146108ed57600080fd5b600f546001600160a01b0316156109465760405162461bcd60e51b815260206004820152601e60248201527f50726573616c6520697320616c726561647920696e697469616c697a6564000060448201526064016108a9565b600f80546001600160a01b0319166001600160a01b038381169182178355600091825260046020908152604092839020805460ff1916600117905592549151911681527f40511f3a755b82b5a4238bb033bb1c04e8b480fa7545ddc11c4ed9f7b5a0d7fe91015b60405180910390a150565b3373f452e622b99b13992d9491d96d422a7259510383146109eb5760405162461bcd60e51b81526004016108a990611fed565b600c805460009091558015610ab057600e5460405160009173f452e622b99b13992d9491d96d422a725951038391849084818181858888f193505050503d8060008114610a54576040519150601f19603f3d011682016040523d82523d6000602084013e610a59565b606091505b5050905080610a7a5760405162461bcd60e51b81526004016108a99061201a565b6040518281527fc2af98d648ceffadbeb152d9e4021c3a24fe39d6493eec03572d07abbacd63b8906020015b60405180910390a1505b50565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916107f69185906108c190869061203d565b3360008051602061223783398151915214610b0457600080fd5b610b0c6114e4565b6040517fc3847b85df00019847396e0b9ab32d1ffecd62345efde8c5a2e12e3faf16426090600090a1565b3360008051602061223783398151915214610b5157600080fd5b6001600160a01b03821673f452e622b99b13992d9491d96d422a725951038314801590610b9557506001600160a01b03821660008051602061223783398151915214155b8015610baa57506001600160a01b0382163014155b8015610bcf57506001600160a01b03821660009081526005602052604090205460ff16155b610bd857600080fd5b6001600160a01b038216600081815260046020526040808220805460ff191685151590811790915590519092917f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d91a35050565b3360008051602061223783398151915214610c4657600080fd5b60068490556007839055600882905560098190558082610c66858761203d565b610c70919061203d565b610c7a919061203d565b600a8190556105dc1015610c8d57600080fd5b6006546007546008546009546040805194855260208501939093529183015260608201527f747eaccb30a9769474f1620ae0dd833b1ffb89520dcac6833b33df942b7c0c499060800160405180910390a150505050565b6000805462010000900460ff1615610d035761081c6064612710611fd6565b50600a5490565b3360008051602061223783398151915214610d2457600080fd5b6000805461ff0019166101001781556040517f1d97b7cdf6b6f3405cbe398b69512e5419a0ce78232b6e9c6ffbf1466774bd8d9190a1565b3360008051602061223783398151915214610d7657600080fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610db557600080fd5b6001600160a01b038216600081815260056020526040808220805460ff191685151590811790915590519092917f91c7c4816685f676b7f12953bffd031e09ee4e1ab280ea728f0878b9e6169d2791a35050565b337332418251ca2d91774070cffb00fda05d26e06f2614610e3c5760405162461bcd60e51b81526004016108a990611fed565b600d805460009091558015610ab057600e546040516000917332418251ca2d91774070cffb00fda05d26e06f2691849084818181858888f193505050503d8060008114610ea5576040519150601f19603f3d011682016040523d82523d6000602084013e610eaa565b606091505b5050905080610ecb5760405162461bcd60e51b81526004016108a99061201a565b6040518281527f2ee7392815d638535847027c0fa62101fc052d68ded0d736e74fa486b5b17a1990602001610aa6565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610f6f5760405162461bcd60e51b815260206004820152601e60248201527f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f000060448201526064016108a9565b610f7e33856108c18685611fd6565b5060019392505050565b3373a4143ef8befa7c091a14a0a4686d85a47678dc0b14610fbb5760405162461bcd60e51b81526004016108a990611fed565b600b805460009091558015610ab057600e5460405160009173a4143ef8befa7c091a14a0a4686d85a47678dc0b91849084818181858888f193505050503d8060008114611024576040519150601f19603f3d011682016040523d82523d6000602084013e611029565b606091505b505090508061104a5760405162461bcd60e51b81526004016108a99061201a565b6040518281527f71df671040127d0e8f1a72d114d7a90aa718abcca5265756e77be83f3d63d69b90602001610aa6565b60006108cc3384846112f3565b33600080516020612237833981519152146110a157600080fd5b61520881101580156110b65750620186a08111155b6110bf57600080fd5b600e8190556040518181527ffaf108d14862297fccf5ab71c137389bfb790d4f6f30b303900ef81bca0e9c8e906020016109ad565b336000805160206122378339815191521461110e57600080fd5b6000600d54600c54600b54476111249190611fd6565b61112e9190611fd6565b6111389190611fd6565b600e546040519192506000916000805160206122378339815191529190849084818181858888f193505050503d8060008114611190576040519150601f19603f3d011682016040523d82523d6000602084013e611195565b606091505b50509050806111b65760405162461bcd60e51b81526004016108a99061201a565b6040518281527fbecb80f5c116caafa3d70d7e1761f6e157baaad0ec9440a94ae035453372aeb690602001610aa6565b336000805160206122378339815191521461120057600080fd5b6000805462ff000019169055565b336000805160206122378339815191521461122857600080fd5b60006112366012600a611fa8565b6112409083611fb7565b6000805460ff19168515159081179091556001829055604051848152919250907f87648e954f6c9d5f5f7ddeb39f95ca8f7d2c14cbb2f190d5250f9b6eb04dd9349060200160405180910390a2505050565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526004602052604081205460ff168061133257506001600160a01b03831660009081526004602052604090205460ff165b15611349576113428484846118d4565b90506108cc565b600054610100900460ff166113935760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016108a9565b6001600160a01b038416600090815260026020526040902054828110156113fc5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016108a9565b611405846119dc565b15611412576114126114e4565b61141c8382611fd6565b6001600160a01b0386166000908152600260205260408120919091556114428686611a3e565b61144c5783611457565b611457868686611a7c565b6001600160a01b03861660009081526002602052604081208054929350839290919061148490849061203d565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114d091815260200190565b60405180910390a350600195945050505050565b6000805463ff000000191663010000001781556040805160028082526060820183529091602083019080368337019050509050308160008151811061152b5761152b61206b565b60200260200101906001600160a01b031690816001600160a01b0316815250507310ed43c718714eb63d5aa57b78b54704e256024e6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561159857600080fd5b505afa1580156115ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d09190612081565b816001815181106115e3576115e361206b565b60200260200101906001600160a01b031690816001600160a01b03168152505060006002600a5460075460015461161a9190611fb7565b611624919061209e565b61162e919061209e565b90506000816001546116409190611fd6565b6040516318cbafe560e01b815290915047907310ed43c718714eb63d5aa57b78b54704e256024e906318cbafe5906116859085906000908990309042906004016120c0565b600060405180830381600087803b15801561169f57600080fd5b505af11580156116b3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116db9190810190612131565b5060006116e88247611fd6565b9050600060026007546116fb919061209e565b600a546117089190611fd6565b905060006002826007548561171d9190611fb7565b611727919061209e565b611731919061209e565b905081600654846117429190611fb7565b61174c919061209e565b600b600082825461175d919061203d565b909155505060085482906117719085611fb7565b61177b919061209e565b600c600082825461178c919061203d565b909155505060095482906117a09085611fb7565b6117aa919061209e565b600d60008282546117bb919061203d565b909155505085156118be5760405163f305d71960e01b815230600482015260248101879052600060448201819052606482015273b2c8faabfc026af5f3c44f46b8454662d03eaddd60848201524260a48201527310ed43c718714eb63d5aa57b78b54704e256024e9063f305d71990839060c4016060604051808303818588803b15801561184857600080fd5b505af115801561185c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061188191906121ef565b505060408051838152602081018990527f17dfdd0c6f86f77f345fd3f5650cc140a52d9032c996b6d4abb80e4216609b3792500160405180910390a15b50506000805463ff000000191690555050505050565b6001600160a01b0383166000908152600260205260408120548281101561193d5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016108a9565b6119478382611fd6565b6001600160a01b03808716600090815260026020526040808220939093559086168152908120805485929061197d90849061203d565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516119c991815260200190565b60405180910390a3506001949350505050565b6001600160a01b03811660009081526005602052604081205460ff168015611a0e57506000546301000000900460ff16155b8015611a1c575060005460ff165b80156107fa575060015430600090815260026020526040902054101592915050565b6001600160a01b03808216600090815260056020526040808220549285168252812054909160ff90811691168080611a735750815b95945050505050565b6001600160a01b03831660009081526005602052604081205460ff168181611aa45785611aa6565b845b90506000611ab382611b88565b9050600061271082611ac3610ce4565b611acd9190611fb7565b611ad7919061209e565b611adf610ce4565b611ae99190611fd6565b90506000612710611afa8389611fb7565b611b04919061209e565b90508015611b71573060009081526002602052604081208054839290611b2b90849061203d565b909155505060405181815230906001600160a01b038b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611b7b8188611fd6565b9998505050505050505050565b604051627eeac760e11b81526001600160a01b038216600482015260016024820152600090819073824db8c2cf7ec655de2a7825f8e9311c8e5265239062fdd58e9060440160206040518083038186803b158015611be557600080fd5b505afa925050508015611c15575060408051601f3d908101601f19168201909252611c129181019061221d565b60015b611c1e57611c2c565b8015611c2a5761138891505b505b604051627eeac760e11b81526001600160a01b03841660048201526002602482015273824db8c2cf7ec655de2a7825f8e9311c8e5265239062fdd58e9060440160206040518083038186803b158015611c8457600080fd5b505afa925050508015611cb4575060408051601f3d908101601f19168201909252611cb19181019061221d565b60015b611cbd576107fa565b8015611cc95761271091505b5092915050565b600060208083528351808285015260005b81811015611cfd57858101830151858201604001528201611ce1565b81811115611d0f576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610ab057600080fd5b60008060408385031215611d4d57600080fd5b8235611d5881611d25565b946020939093013593505050565b600080600060608486031215611d7b57600080fd5b8335611d8681611d25565b92506020840135611d9681611d25565b929592945050506040919091013590565b600060208284031215611db957600080fd5b81356108cc81611d25565b80358015158114611dd457600080fd5b919050565b60008060408385031215611dec57600080fd5b8235611df781611d25565b9150611e0560208401611dc4565b90509250929050565b60008060008060808587031215611e2457600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611e5257600080fd5b5035919050565b60008060408385031215611e6c57600080fd5b8235611e7781611d25565b91506020830135611e8781611d25565b809150509250929050565b60008060408385031215611ea557600080fd5b611d5883611dc4565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611eff578160001904821115611ee557611ee5611eae565b80851615611ef257918102915b93841c9390800290611ec9565b509250929050565b600082611f16575060016107fa565b81611f23575060006107fa565b8160018114611f395760028114611f4357611f5f565b60019150506107fa565b60ff841115611f5457611f54611eae565b50506001821b6107fa565b5060208310610133831016604e8410600b8410161715611f82575081810a6107fa565b611f8c8383611ec4565b8060001904821115611fa057611fa0611eae565b029392505050565b60006108cc60ff841683611f07565b6000816000190483118215151615611fd157611fd1611eae565b500290565b600082821015611fe857611fe8611eae565b500390565b6020808252601390820152722ab730baba3437b934bd32b21031b0b63632b960691b604082015260600190565b602080825260099082015268151e0819985a5b195960ba1b604082015260600190565b6000821982111561205057612050611eae565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561209357600080fd5b81516108cc81611d25565b6000826120bb57634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121105784516001600160a01b0316835293830193918301916001016120eb565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561214457600080fd5b825167ffffffffffffffff8082111561215c57600080fd5b818501915085601f83011261217057600080fd5b81518181111561218257612182612055565b8060051b604051601f19603f830116810181811085821117156121a7576121a7612055565b6040529182528482019250838101850191888311156121c557600080fd5b938501935b828510156121e3578451845293850193928501926121ca565b98975050505050505050565b60008060006060848603121561220457600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561222f57600080fd5b505191905056fe00000000000000000000000066b5f1dd434723c0304514029704d0db5cc01d4ba26469706673582212200e949e32bff31de1faf7ca804c158f9ff82fd88a97c4845744d329cdf9e4d6ec64736f6c63430008090033

Deployed ByteCode Sourcemap

675:13191:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1412:52;;;;;;;;;;;;;;;;;;;160:25:4;;;148:2;133:18;1412:52:3;;;;;;;;3940:83;;;;;;;;;;-1:-1:-1;4005:15:3;;;;;;;;;;;;-1:-1:-1;;;4005:15:3;;;;3940:83;;;;;;;:::i;1951:29::-;;;;;;;;;;;;;;;;4360:158;;;;;;;;;;-1:-1:-1;4360:158:3;;;;;:::i;:::-;;:::i;:::-;;;1419:14:4;;1412:22;1394:41;;1382:2;1367:18;4360:158:3;1254:187:4;3673:88:3;;;;;;;;;;;;;:::i;4684:401::-;;;;;;;;;;-1:-1:-1;4684:401:3;;;;;:::i;:::-;;:::i;13620:244::-;;;;;;;;;;-1:-1:-1;13620:244:3;;;;;:::i;:::-;;:::i;:::-;;3766:79;;;;;;;;;;-1:-1:-1;3766:79:3;;1346:2;2301:36:4;;2289:2;2274:18;3766:79:3;2159:184:4;2064:90:3;;;;;;;;;;;;2111:42;2064:90;;;;;-1:-1:-1;;;;;2530:32:4;;;2512:51;;2500:2;2485:18;2064:90:3;2348:221:4;10130:447:3;;;;;;;;;;;;;:::i;5114:202::-;;;;;;;;;;-1:-1:-1;5114:202:3;;;;;:::i;:::-;;:::i;1583:44::-;;;;;;;;;;-1:-1:-1;1583:44:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;13302:105;;;;;;;;;;;;;:::i;1106:91::-;;;;;;;;;;;;1154:42;1106:91;;1240:26;;;;;;;;;;-1:-1:-1;1240:26:3;;;;;;;;;;;1918:27;;;;;;;;;;;;;;;;11813:284;;;;;;;;;;-1:-1:-1;11813:284:3;;;;;:::i;:::-;;:::i;1762:33::-;;;;;;;;;;;;;;;;1204:30;;;;;;;;;;-1:-1:-1;1204:30:3;;;;;;;;12306:519;;;;;;;;;;-1:-1:-1;12306:519:3;;;;;:::i;:::-;;:::i;4111:105::-;;;;;;;;;;-1:-1:-1;4111:105:3;;;;;:::i;:::-;-1:-1:-1;;;;;4195:18:3;4177:7;4195:18;;;:9;:18;;;;;;;4111:105;1686:31;;;;;;;;;;;;;;;;5732:143;;;;;;;;;;;;;:::i;4028:78::-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4028:78:3;;13502:112;;;;;;;;;;;;;:::i;1986:31::-;;;;;;;;;;;;;;;;3850:85;;;;;;;;;;-1:-1:-1;3917:15:3;;;;;;;;;;;;-1:-1:-1;;;3917:15:3;;;;3850:85;;12103:197;;;;;;;;;;-1:-1:-1;12103:197:3;;;;;:::i;:::-;;:::i;1723:33::-;;;;;;;;;;;;;;;;11016:467;;;;;;;;;;;;;:::i;5322:354::-;;;;;;;;;;-1:-1:-1;5322:354:3;;;;;:::i;:::-;;:::i;1801:35::-;;;;;;;;;;;;;;;;10583:427;;;;;;;;;;;;;:::i;2160:29::-;;;;;;;;;;;;;;;4524:154;;;;;;;;;;-1:-1:-1;4524:154:3;;;;;:::i;:::-;;:::i;13094:202::-;;;;;;;;;;-1:-1:-1;13094:202:3;;;;;:::i;:::-;;:::i;1633:46::-;;;;;;;;;;-1:-1:-1;1633:46:3;;;;;:::i;:::-;;;;;;;;;;;;;;;;11489:298;;;;;;;;;;;;;:::i;13413:83::-;;;;;;;;;;;;;:::i;4221:133::-;;;;;;;;;;-1:-1:-1;4221:133:3;;;;;:::i;:::-;-1:-1:-1;;;;;4323:19:3;;;4305:7;4323:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4221:133;12831:257;;;;;;;;;;-1:-1:-1;12831:257:3;;;;;:::i;:::-;;:::i;2023:34::-;;;;;;;;;;;;;;;;2195:22;;;;;;;;;;-1:-1:-1;2195:22:3;;;;-1:-1:-1;;;;;2195:22:3;;;4360:158;4437:4;4453:37;4462:10;4474:7;4483:6;4453:8;:37::i;:::-;-1:-1:-1;4507:4:3;4360:158;;;;;:::o;3673:88::-;3728:7;1394:12;1346:2;1394;:12;:::i;:::-;1386:20;;:5;:20;:::i;:::-;3739:19;;3673:88;:::o;4684:401::-;4784:4;4800:40;4814:6;4822:9;4833:6;4800:13;:40::i;:::-;-1:-1:-1;;;;;;4878:19:3;;4851:24;4878:19;;;:11;:19;;;;;;;;4898:10;4878:31;;;;;;;;4927:26;;;;4919:72;;;;-1:-1:-1;;;4919:72:3;;6603:2:4;4919:72:3;;;6585:21:4;6642:2;6622:18;;;6615:30;6681:34;6661:18;;;6654:62;-1:-1:-1;;;6732:18:4;;;6725:31;6773:19;;4919:72:3;;;;;;;;;5002:55;5011:6;5019:10;5031:25;5050:6;5031:16;:25;:::i;:::-;5002:8;:55::i;:::-;5074:4;5067:11;;;4684:401;;;;;;:::o;13620:244::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;13698:7:::1;::::0;-1:-1:-1;;;;;13698:7:3::1;:21:::0;13690:64:::1;;;::::0;-1:-1:-1;;;13690:64:3;;7135:2:4;13690:64:3::1;::::0;::::1;7117:21:4::0;7174:2;7154:18;;;7147:30;7213:32;7193:18;;;7186:60;7263:18;;13690:64:3::1;6933:354:4::0;13690:64:3::1;13765:7;:20:::0;;-1:-1:-1;;;;;;13765:20:3::1;-1:-1:-1::0;;;;;13765:20:3;;::::1;::::0;;::::1;::::0;;-1:-1:-1;13795:20:3;;;:11:::1;:20;::::0;;;;;;;;:27;;-1:-1:-1;;13795:27:3::1;-1:-1:-1::0;13795:27:3::1;::::0;;13849:7;;13837:20;;13849:7;::::1;2512:51:4::0;;13837:20:3::1;::::0;2485:18:4;13837:20:3::1;;;;;;;;13620:244:::0;:::o;10130:447::-;10183:10;898:42;10183:30;10175:62;;;;-1:-1:-1;;;10175:62:3;;;;;;;:::i;:::-;10274:14;;;10248:23;10298:18;;;10331:19;;10327:244;;10441:11;;10381:76;;10367:9;;898:42;;10419:15;;10367:9;10381:76;10367:9;10381:76;10419:15;898:42;10441:11;10381:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10366:91;;;10479:4;10471:26;;;;-1:-1:-1;;;10471:26:3;;;;;;;:::i;:::-;10529:31;;160:25:4;;;10529:31:3;;148:2:4;133:18;10529:31:3;;;;;;;;10352:219;10327:244;10165:412;10130:447::o;5114:202::-;5221:10;5196:4;5242:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5242:32:3;;;;;;;;;;5196:4;;5212:76;;5233:7;;5242:45;;5277:10;;5242:45;:::i;13302:105::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;13358:10:::1;:8;:10::i;:::-;13383:17;::::0;::::1;::::0;;;::::1;13302:105::o:0;11813:284::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;-1:-1:-1;;;;;11904:27:3;::::1;898:42;11904:27;::::0;::::1;::::0;:47:::1;;-1:-1:-1::0;;;;;;11935:16:3;::::1;-1:-1:-1::0;;;;;;;;;;;11935:16:3::1;;11904:47;:75;;;;-1:-1:-1::0;;;;;;11955:24:3;::::1;11974:4;11955:24;;11904:75;:102;;;;-1:-1:-1::0;;;;;;11984:22:3;::::1;;::::0;;;:13:::1;:22;::::0;;;;;::::1;;11983:23;11904:102;11896:111;;;::::0;::::1;;-1:-1:-1::0;;;;;12017:20:3;::::1;;::::0;;;:11:::1;:20;::::0;;;;;:29;;-1:-1:-1;;12017:29:3::1;::::0;::::1;;::::0;;::::1;::::0;;;12061;;12017;;:20;12061:29:::1;::::0;::::1;11813:284:::0;;:::o;12306:519::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;12482:10:::1;:24:::0;;;12516:12:::1;:28:::0;;;12554:12:::1;:28:::0;;;12592:14:::1;:32:::0;;;12609:15;12569:13;12646:25:::1;12531:13:::0;12495:11;12646:25:::1;:::i;:::-;:40;;;;:::i;:::-;:57;;;;:::i;:::-;12634:9;:69:::0;;;12734:4:::1;-1:-1:-1::0;12721:17:3::1;12713:26;;;::::0;::::1;;12763:10;::::0;12775:12:::1;::::0;12789::::1;::::0;12803:14:::1;::::0;12755:63:::1;::::0;;8551:25:4;;;8607:2;8592:18;;8585:34;;;;8635:18;;;8628:34;8693:2;8678:18;;8671:34;12755:63:3::1;::::0;8538:3:4;8523:19;12755:63:3::1;;;;;;;12306:519:::0;;;;:::o;5732:143::-;5776:7;5798:11;;;;;;;5795:48;;;5819:21;5837:3;1906:5;5819:21;:::i;5795:48::-;-1:-1:-1;5859:9:3;;;5732:143::o;13502:112::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;13556:14:::1;:21:::0;;-1:-1:-1;;13556:21:3::1;;;::::0;;13592:15:::1;::::0;::::1;::::0;13556:14;13592:15:::1;13502:112::o:0;12103:197::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;12205:4:::1;-1:-1:-1::0;;;;;12194:15:3::1;:7;-1:-1:-1::0;;;;;12194:15:3::1;;;12186:24;;;::::0;::::1;;-1:-1:-1::0;;;;;12220:22:3;::::1;;::::0;;;:13:::1;:22;::::0;;;;;:29;;-1:-1:-1;;12220:29:3::1;::::0;::::1;;::::0;;::::1;::::0;;;12264;;12220;;:22;12264:29:::1;::::0;::::1;12103:197:::0;;:::o;11016:467::-;11071:10;984:42;11071:32;11063:64;;;;-1:-1:-1;;;11063:64:3;;;;;;;:::i;:::-;11166:16;;;11138:25;11192:20;;;11227:21;;11223:254;;11343:11;;11279:80;;11265:9;;984:42;;11319:17;;11265:9;11279:80;11265:9;11279:80;11319:17;984:42;11343:11;11279:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11264:95;;;11381:4;11373:26;;;;-1:-1:-1;;;11373:26:3;;;;;;;:::i;:::-;11431:35;;160:25:4;;;11431:35:3;;148:2:4;133:18;11431:35:3;14:177:4;5322:354:3;5464:10;5409:4;5452:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5452:32:3;;;;;;;;;;5502:35;;;;5494:78;;;;-1:-1:-1;;;5494:78:3;;8918:2:4;5494:78:3;;;8900:21:4;8957:2;8937:18;;;8930:30;8996:32;8976:18;;;8969:60;9046:18;;5494:78:3;8716:354:4;5494:78:3;5583:65;5592:10;5604:7;5613:34;5632:15;5613:16;:34;:::i;5583:65::-;-1:-1:-1;5665:4:3;;5322:354;-1:-1:-1;;;5322:354:3:o;10583:427::-;10634:10;814:42;10634:28;10626:60;;;;-1:-1:-1;;;10626:60:3;;;;;;;:::i;:::-;10721:12;;;10697:21;10743:16;;;10774:17;;10770:234;;10878:11;;10822:72;;10808:9;;814:42;;10858:13;;10808:9;10822:72;10808:9;10822:72;10858:13;814:42;10878:11;10822:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10807:87;;;10916:4;10908:26;;;;-1:-1:-1;;;10908:26:3;;;;;;;:::i;:::-;10966:27;;160:25:4;;;10966:27:3;;148:2:4;133:18;10966:27:3;14:177:4;4524:154:3;4604:4;4627:44;4641:10;4653:9;4664:6;4627:13;:44::i;13094:202::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;13184:5:::1;13174:6;:15;;:35;;;;;13203:6;13193;:16;;13174:35;13166:44;;;::::0;::::1;;13229:11;:20:::0;;;13264:25:::1;::::0;160::4;;;13264::3::1;::::0;148:2:4;133:18;13264:25:3::1;14:177:4::0;11489:298:3;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;11537:21:::1;11617:16;;11600:14;;11585:12;;11561:21;:36;;;;:::i;:::-;:53;;;;:::i;:::-;:72;;;;:::i;:::-;11699:11;::::0;11652:63:::1;::::0;11537:96;;-1:-1:-1;11638:9:3::1;::::0;-1:-1:-1;;;;;;;;;;;732:42:3;11699:11;11537:96;;11638:9;11652:63;11638:9;11652:63;11537:96;732:42;11699:11;11652:63:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11637:78;;;11727:4;11719:26;;;;-1:-1:-1::0;;;11719:26:3::1;;;;;;;:::i;:::-;11761:22;::::0;160:25:4;;;11761:22:3::1;::::0;148:2:4;133:18;11761:22:3::1;14:177:4::0;13413:83:3;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;13484:5:::1;13470:19:::0;;-1:-1:-1;;13470:19:3::1;::::0;;13413:83::o;12831:257::-;3053:10;-1:-1:-1;;;;;;;;;;;3053:19:3;3045:28;;;;;;12919:19:::1;12950:12;1346:2;12950;:12;:::i;:::-;12941:21;::::0;:6;:21:::1;:::i;:::-;12972:11;:21:::0;;-1:-1:-1;;12972:21:3::1;::::0;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;13003:27:3;;;13045:36:::1;::::0;160:25:4;;;13003:27:3;;-1:-1:-1;12972:21:3;13045:36:::1;::::0;148:2:4;133:18;13045:36:3::1;;;;;;;12909:179;12831:257:::0;;:::o;5897:174::-;-1:-1:-1;;;;;5981:18:3;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6032:32;;160:25:4;;;6032:32:3;;133:18:4;6032:32:3;;;;;;;5897:174;;;:::o;6077:753::-;-1:-1:-1;;;;;6187:19:3;;6168:4;6187:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;6210:22:3;;;;;;:11;:22;;;;;;;;6187:45;6184:102;;;6242:41;6257:6;6265:9;6276:6;6242:14;:41::i;:::-;6235:48;;;;6184:102;6303:14;;;;;;;6295:43;;;;-1:-1:-1;;;6295:43:3;;9277:2:4;6295:43:3;;;9259:21:4;9316:2;9296:18;;;9289:30;-1:-1:-1;;;9335:18:4;;;9328:46;9391:18;;6295:43:3;9075:340:4;6295:43:3;-1:-1:-1;;;;;6373:17:3;;6349:21;6373:17;;;:9;:17;;;;;;6408:23;;;;6400:67;;;;-1:-1:-1;;;6400:67:3;;9622:2:4;6400:67:3;;;9604:21:4;9661:2;9641:18;;;9634:30;9700:33;9680:18;;;9673:61;9751:18;;6400:67:3;9420:355:4;6400:67:3;6489:25;6504:9;6489:14;:25::i;:::-;6486:44;;;6517:10;:8;:10::i;:::-;6560:22;6576:6;6560:13;:22;:::i;:::-;-1:-1:-1;;;;;6540:17:3;;;;;;:9;:17;;;;;:42;;;;6617:32;6550:6;6639:9;6617:13;:32::i;:::-;:78;;6689:6;6617:78;;;6652:34;6660:6;6668:9;6679:6;6652:7;:34::i;:::-;-1:-1:-1;;;;;6705:20:3;;;;;;:9;:20;;;;;:38;;6592:103;;-1:-1:-1;6592:103:3;;6705:20;;;:38;;6592:103;;6705:38;:::i;:::-;;;;;;;;6776:9;-1:-1:-1;;;;;6759:43:3;6768:6;-1:-1:-1;;;;;6759:43:3;;6787:14;6759:43;;;;160:25:4;;148:2;133:18;;14:177;6759:43:3;;;;;;;;-1:-1:-1;6819:4:3;;6077:753;-1:-1:-1;;;;;6077:753:3:o;8821:1284::-;2951:7;:14;;-1:-1:-1;;2951:14:3;;;;;8892:16:::1;::::0;;8906:1:::1;8892:16:::0;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8892:16:3::1;8868:40;;8936:4;8918;8923:1;8918:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8918:23:3::1;;;-1:-1:-1::0;;;;;8918:23:3::1;;;::::0;::::1;2111:42;-1:-1:-1::0;;;;;8961:11:3::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8951:4;8956:1;8951:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8951:23:3::1;;;-1:-1:-1::0;;;;;8951:23:3::1;;;::::0;::::1;8985;9054:1;9042:9;;9027:12;;9011:13;;:28;;;;:::i;:::-;:40;;;;:::i;:::-;:44;;;;:::i;:::-;8985:70;;9065:20;9104:15;9088:13;;:31;;;;:::i;:::-;9185:153;::::0;-1:-1:-1;;;9185:153:3;;9065:54;;-1:-1:-1;9153:21:3::1;::::0;2111:42:::1;::::0;9185:28:::1;::::0;:153:::1;::::0;9065:54;;9129:21:::1;::::0;9268:4;;9294::::1;::::0;9313:15:::1;::::0;9185:153:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;9185:153:3::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;9349:17:3::1;9369:37;9393:13:::0;9369:21:::1;:37;:::i;:::-;9349:57;;9416:19;9465:1;9450:12;;:16;;;;:::i;:::-;9438:9;;:28;;;;:::i;:::-;9416:50;;9477:26;9547:1;9533:11;9518:12;;9506:9;:24;;;;:::i;:::-;:38;;;;:::i;:::-;:42;;;;:::i;:::-;9477:71;;9599:11;9586:10;;9574:9;:22;;;;:::i;:::-;:36;;;;:::i;:::-;9558:12;;:52;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9650:12:3::1;::::0;9665:11;;9638:24:::1;::::0;:9;:24:::1;:::i;:::-;:38;;;;:::i;:::-;9620:14;;:56;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9718:14:3::1;::::0;9735:11;;9706:26:::1;::::0;:9;:26:::1;:::i;:::-;:40;;;;:::i;:::-;9686:16;;:60;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;9761:19:3;;9757:342:::1;;9796:222;::::0;-1:-1:-1;;;9796:222:3;;9871:4:::1;9796:222;::::0;::::1;12958:34:4::0;13008:18;;;13001:34;;;9927:1:3::1;13051:18:4::0;;;13044:34;;;13094:18;;;13087:34;1058:42:3::1;13137:19:4::0;;;13130:44;9989:15:3::1;13190:19:4::0;;;13183:35;2111:42:3::1;::::0;9796:22:::1;::::0;9826:18;;12892:19:4;;9796:222:3::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10038:50:3::1;::::0;;13714:25:4;;;13770:2;13755:18;;13748:34;;;10038:50:3::1;::::0;-1:-1:-1;13687:18:4;10038:50:3::1;;;;;;;9757:342;-1:-1:-1::0;;2996:5:3;2986:15;;-1:-1:-1;;2986:15:3;;;-1:-1:-1;;;;;8821:1284:3:o;6836:397::-;-1:-1:-1;;;;;6968:17:3;;6928:4;6968:17;;;:9;:17;;;;;;7003:23;;;;6995:67;;;;-1:-1:-1;;;6995:67:3;;9622:2:4;6995:67:3;;;9604:21:4;9661:2;9641:18;;;9634:30;9700:33;9680:18;;;9673:61;9751:18;;6995:67:3;9420:355:4;6995:67:3;7093:22;7109:6;7093:13;:22;:::i;:::-;-1:-1:-1;;;;;7073:17:3;;;;;;;:9;:17;;;;;;:42;;;;7125:20;;;;;;;;:30;;7149:6;;7073:17;7125:30;;7149:6;;7125:30;:::i;:::-;;;;;;;;7187:9;-1:-1:-1;;;;;7170:35:3;7179:6;-1:-1:-1;;;;;7170:35:3;;7198:6;7170:35;;;;160:25:4;;148:2;133:18;;14:177;7170:35:3;;;;;;;;-1:-1:-1;7222:4:3;;6836:397;-1:-1:-1;;;;6836:397:3:o;8600:215::-;-1:-1:-1;;;;;8688:24:3;;8665:4;8688:24;;;:13;:24;;;;;;;;:44;;;;-1:-1:-1;8725:7:3;;;;;;;8724:8;8688:44;:67;;;;-1:-1:-1;8744:11:3;;;;8688:67;:120;;;;-1:-1:-1;8795:13:3;;8785:4;8767:24;;;;:9;:24;;;;;;:41;;8681:127;8600:215;-1:-1:-1;;8600:215:3:o;7239:217::-;-1:-1:-1;;;;;7349:24:3;;;7319:4;7349:24;;;:13;:24;;;;;;;7396:21;;;;;;;;7319:4;;7349:24;;;;;7396:21;;;7434:15;;;7443:6;7434:15;7427:22;7239:217;-1:-1:-1;;;;;7239:217:3:o;7462:628::-;-1:-1:-1;;;;;7579:21:3;;7547:7;7579:21;;;:13;:21;;;;;;;;7547:7;7579:21;7630:26;;7650:6;7630:26;;;7638:9;7630:26;7610:46;;7666:26;7695:27;7712:9;7695:16;:27::i;:::-;7666:56;;7733:21;1906:5;7789:18;7773:13;:11;:13::i;:::-;:34;;;;:::i;:::-;:52;;;;:::i;:::-;7757:13;:11;:13::i;:::-;:68;;;;:::i;:::-;7733:92;-1:-1:-1;7835:17:3;1906:5;7855:22;7733:92;7855:6;:22;:::i;:::-;:40;;;;:::i;:::-;7835:60;-1:-1:-1;7910:13:3;;7906:142;;7957:4;7939:24;;;;:9;:24;;;;;:37;;7967:9;;7939:24;:37;;7967:9;;7939:37;:::i;:::-;;;;-1:-1:-1;;7995:42:3;;160:25:4;;;8020:4:3;;-1:-1:-1;;;;;7995:42:3;;;;;148:2:4;133:18;7995:42:3;;;;;;;7906:142;8065:18;8074:9;8065:6;:18;:::i;:::-;8058:25;7462:628;-1:-1:-1;;;;;;;;;7462:628:3:o;8096:498::-;8221:31;;-1:-1:-1;;;8221:31:3;;-1:-1:-1;;;;;13993:32:4;;8221:31:3;;;13975:51:4;8250:1:3;14042:18:4;;;14035:34;8161:7:3;;;;1154:42;;8221:19;;13948:18:4;;8221:31:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8221:31:3;;;;;;;;-1:-1:-1;;8221:31:3;;;;;;;;;;;;:::i;:::-;;;8217:158;;;;;8305:19;;8301:55;;8349:4;8328:25;;8301:55;8253:113;8217:158;8389:31;;-1:-1:-1;;;8389:31:3;;-1:-1:-1;;;;;13993:32:4;;8389:31:3;;;13975:51:4;8418:1:3;14042:18:4;;;14035:34;1154:42:3;;8389:19;;13948:18:4;;8389:31:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8389:31:3;;;;;;;;-1:-1:-1;;8389:31:3;;;;;;;;;;;;:::i;:::-;;;8385:167;;;;;8472:18;;8468:65;;1906:5;8494:36;;8468:65;8421:122;8569:18;8096:498;-1:-1:-1;;8096:498:3:o;196:597:4:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:4;756:15;-1:-1:-1;;752:29:4;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:4:o;798:131::-;-1:-1:-1;;;;;873:31:4;;863:42;;853:70;;919:1;916;909:12;934:315;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:4:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:4;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:4;1877:18;;;;1864:32;;1446:456::o;1907:247::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;2799:160::-;2864:20;;2920:13;;2913:21;2903:32;;2893:60;;2949:1;2946;2939:12;2893:60;2799:160;;;:::o;2964:315::-;3029:6;3037;3090:2;3078:9;3069:7;3065:23;3061:32;3058:52;;;3106:1;3103;3096:12;3058:52;3145:9;3132:23;3164:31;3189:5;3164:31;:::i;:::-;3214:5;-1:-1:-1;3238:35:4;3269:2;3254:18;;3238:35;:::i;:::-;3228:45;;2964:315;;;;;:::o;3284:385::-;3370:6;3378;3386;3394;3447:3;3435:9;3426:7;3422:23;3418:33;3415:53;;;3464:1;3461;3454:12;3415:53;-1:-1:-1;;3487:23:4;;;3557:2;3542:18;;3529:32;;-1:-1:-1;3608:2:4;3593:18;;3580:32;;3659:2;3644:18;3631:32;;-1:-1:-1;3284:385:4;-1:-1:-1;3284:385:4:o;3882:180::-;3941:6;3994:2;3982:9;3973:7;3969:23;3965:32;3962:52;;;4010:1;4007;4000:12;3962:52;-1:-1:-1;4033:23:4;;3882:180;-1:-1:-1;3882:180:4:o;4067:388::-;4135:6;4143;4196:2;4184:9;4175:7;4171:23;4167:32;4164:52;;;4212:1;4209;4202:12;4164:52;4251:9;4238:23;4270:31;4295:5;4270:31;:::i;:::-;4320:5;-1:-1:-1;4377:2:4;4362:18;;4349:32;4390:33;4349:32;4390:33;:::i;:::-;4442:7;4432:17;;;4067:388;;;;;:::o;4460:248::-;4525:6;4533;4586:2;4574:9;4565:7;4561:23;4557:32;4554:52;;;4602:1;4599;4592:12;4554:52;4625:26;4641:9;4625:26;:::i;4713:127::-;4774:10;4769:3;4765:20;4762:1;4755:31;4805:4;4802:1;4795:15;4829:4;4826:1;4819:15;4845:422;4934:1;4977:5;4934:1;4991:270;5012:7;5002:8;4999:21;4991:270;;;5071:4;5067:1;5063:6;5059:17;5053:4;5050:27;5047:53;;;5080:18;;:::i;:::-;5130:7;5120:8;5116:22;5113:55;;;5150:16;;;;5113:55;5229:22;;;;5189:15;;;;4991:270;;;4995:3;4845:422;;;;;:::o;5272:806::-;5321:5;5351:8;5341:80;;-1:-1:-1;5392:1:4;5406:5;;5341:80;5440:4;5430:76;;-1:-1:-1;5477:1:4;5491:5;;5430:76;5522:4;5540:1;5535:59;;;;5608:1;5603:130;;;;5515:218;;5535:59;5565:1;5556:10;;5579:5;;;5603:130;5640:3;5630:8;5627:17;5624:43;;;5647:18;;:::i;:::-;-1:-1:-1;;5703:1:4;5689:16;;5718:5;;5515:218;;5817:2;5807:8;5804:16;5798:3;5792:4;5789:13;5785:36;5779:2;5769:8;5766:16;5761:2;5755:4;5752:12;5748:35;5745:77;5742:159;;;-1:-1:-1;5854:19:4;;;5886:5;;5742:159;5933:34;5958:8;5952:4;5933:34;:::i;:::-;6003:6;5999:1;5995:6;5991:19;5982:7;5979:32;5976:58;;;6014:18;;:::i;:::-;6052:20;;5272:806;-1:-1:-1;;;5272:806:4:o;6083:140::-;6141:5;6170:47;6211:4;6201:8;6197:19;6191:4;6170:47;:::i;6228:168::-;6268:7;6334:1;6330;6326:6;6322:14;6319:1;6316:21;6311:1;6304:9;6297:17;6293:45;6290:71;;;6341:18;;:::i;:::-;-1:-1:-1;6381:9:4;;6228:168::o;6803:125::-;6843:4;6871:1;6868;6865:8;6862:34;;;6876:18;;:::i;:::-;-1:-1:-1;6913:9:4;;6803:125::o;7292:343::-;7494:2;7476:21;;;7533:2;7513:18;;;7506:30;-1:-1:-1;;;7567:2:4;7552:18;;7545:49;7626:2;7611:18;;7292:343::o;7850:332::-;8052:2;8034:21;;;8091:1;8071:18;;;8064:29;-1:-1:-1;;;8124:2:4;8109:18;;8102:39;8173:2;8158:18;;7850:332::o;8187:128::-;8227:3;8258:1;8254:6;8251:1;8248:13;8245:39;;;8264:18;;:::i;:::-;-1:-1:-1;8300:9:4;;8187:128::o;9780:127::-;9841:10;9836:3;9832:20;9829:1;9822:31;9872:4;9869:1;9862:15;9896:4;9893:1;9886:15;9912:127;9973:10;9968:3;9964:20;9961:1;9954:31;10004:4;10001:1;9994:15;10028:4;10025:1;10018:15;10044:251;10114:6;10167:2;10155:9;10146:7;10142:23;10138:32;10135:52;;;10183:1;10180;10173:12;10135:52;10215:9;10209:16;10234:31;10259:5;10234:31;:::i;10300:217::-;10340:1;10366;10356:132;;10410:10;10405:3;10401:20;10398:1;10391:31;10445:4;10442:1;10435:15;10473:4;10470:1;10463:15;10356:132;-1:-1:-1;10502:9:4;;10300:217::o;10522:980::-;10784:4;10832:3;10821:9;10817:19;10863:6;10852:9;10845:25;10889:2;10927:6;10922:2;10911:9;10907:18;10900:34;10970:3;10965:2;10954:9;10950:18;10943:31;10994:6;11029;11023:13;11060:6;11052;11045:22;11098:3;11087:9;11083:19;11076:26;;11137:2;11129:6;11125:15;11111:29;;11158:1;11168:195;11182:6;11179:1;11176:13;11168:195;;;11247:13;;-1:-1:-1;;;;;11243:39:4;11231:52;;11338:15;;;;11303:12;;;;11279:1;11197:9;11168:195;;;-1:-1:-1;;;;;;;11419:32:4;;;;11414:2;11399:18;;11392:60;-1:-1:-1;;;11483:3:4;11468:19;11461:35;11380:3;10522:980;-1:-1:-1;;;10522:980:4:o;11507:1105::-;11602:6;11633:2;11676;11664:9;11655:7;11651:23;11647:32;11644:52;;;11692:1;11689;11682:12;11644:52;11725:9;11719:16;11754:18;11795:2;11787:6;11784:14;11781:34;;;11811:1;11808;11801:12;11781:34;11849:6;11838:9;11834:22;11824:32;;11894:7;11887:4;11883:2;11879:13;11875:27;11865:55;;11916:1;11913;11906:12;11865:55;11945:2;11939:9;11967:2;11963;11960:10;11957:36;;;11973:18;;:::i;:::-;12019:2;12016:1;12012:10;12051:2;12045:9;12114:2;12110:7;12105:2;12101;12097:11;12093:25;12085:6;12081:38;12169:6;12157:10;12154:22;12149:2;12137:10;12134:18;12131:46;12128:72;;;12180:18;;:::i;:::-;12216:2;12209:22;12266:18;;;12300:15;;;;-1:-1:-1;12342:11:4;;;12338:20;;;12370:19;;;12367:39;;;12402:1;12399;12392:12;12367:39;12426:11;;;;12446:135;12462:6;12457:3;12454:15;12446:135;;;12528:10;;12516:23;;12479:12;;;;12559;;;;12446:135;;;12600:6;11507:1105;-1:-1:-1;;;;;;;;11507:1105:4:o;13229:306::-;13317:6;13325;13333;13386:2;13374:9;13365:7;13361:23;13357:32;13354:52;;;13402:1;13399;13392:12;13354:52;13431:9;13425:16;13415:26;;13481:2;13470:9;13466:18;13460:25;13450:35;;13525:2;13514:9;13510:18;13504:25;13494:35;;13229:306;;;;;:::o;14080:184::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;-1:-1:-1;14242:16:4;;14080:184;-1:-1:-1;14080:184:4:o

Swarm Source

ipfs://0e949e32bff31de1faf7ca804c158f9ff82fd88a97c4845744d329cdf9e4d6ec
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.