Contract 0xd1d52246271ed5a7403c543ceea3344e39a8af29 1

 

Contract Overview

Balance:
1.710431443354932856 BNB

BNB Value:
$976.42 (@ $570.86/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x20de0948e3fcdd9cc3bfe468c209c843e4ac965a8ed9247063c53f6434b7a263Approve130864682021-11-30 21:14:454 days 8 hrs ago0x86fa43197f32f52c5daf5c719b2159115ecc7a8d IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000310037
0x7cb78eca59d94c8d0d0302e83d5412949df58c29edbe034cfe95c79a900f8926Approve130731532021-11-30 9:34:004 days 20 hrs ago0xe2134f581f9772e6bc774fe0573d60cf9732f3db IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x418445fdaf53c0d1b858d8a9d3c94f387673fc3ea87a36d960ebafd604f36609Transfer130638702021-11-30 1:10:145 days 4 hrs ago0x282076f96be14968115ae2f089b005977d3463fd IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.001879185
0x9de4845a20fa039631aa85acbd519c540878f9b3a7fecfdbfc10418472393fdcApprove130505582021-11-29 13:10:155 days 16 hrs ago0x4508c0d95a2c7a759e67e077a1e827fceb8f38d5 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x455b7a7fb287e6daeb465bb025b0922c749c070b933c3d14b293dbc56588fe5aApprove130004592021-11-27 15:49:577 days 13 hrs ago0x73735652c3bebe6c42723a30cdb8678ea58cfdc7 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000101178
0x599f9f5b5e4a8c490249d12ed562b97ef2a4a83b85a5ed990379a6a443ccdb21Approve129494782021-11-25 17:00:589 days 12 hrs ago0xc3248fd903d382afb0926cb74d877f8955c8841c IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.00007227
0x318424e31481e162e06f83785f1cc29c39e0c2f43529160de2168dade7097d26Approve129181362021-11-24 13:06:0710 days 16 hrs ago0x3512812db5244a8dac310b735ee70bb257ac28c0 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0xcb5720c144f61fb2e4019a8ecef6fd76d1c47f7ca1460ee7134fcd63d2a99c3fApprove129090812021-11-24 5:14:1611 days 33 mins ago0x31447b3a54f0a8994e8264a5e693977d090a8688 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000101178
0x1d400db2a897fe08b57f25ccbc9cda589d410a614ee4a6dcd1391d2d8e785b42Approve128998082021-11-23 21:14:4611 days 8 hrs ago0x6bf63743a1bf6d51e510ef717130d29639c2eac9 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x6eeb9335c178dc44d468ae30616db8d6353b44f1c8db1988678e91eca438cc3dApprove128651632021-11-22 15:14:3712 days 14 hrs ago0x640ff965bca72f94a50fb467de692732eb5c9f9a IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000101178
0x4e31181af2809fbaa4173fe74b0b1a22c8fd5e06f6ead0115ca2691679c95471Approve128302192021-11-21 9:15:4413 days 20 hrs ago0xf4c03307cc6563904ce904b11976e7b2771044cc IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.00007227
0xb9acf2a9f99abcd405fb03f0899c974d91d398b1e8ae772dff840bc04e10e921Transfer128094732021-11-20 15:42:5814 days 14 hrs ago0xe15146cc0c53baa167f6ba1e17fabd010b7a2628 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.001380175
0x457d5d3aed04f5630626ff3afce05e158c549de23876b329371b6006893708d3Approve128042732021-11-20 11:06:4214 days 18 hrs ago0xfa48ff42318656024dc1e2412785b205a00a5abc IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x9b755318c6ee2950ed949de9489652144d53caa051a1446860efe9d2689df919Approve127827112021-11-19 16:12:4015 days 13 hrs ago0x9193f248cf761fbef82b9408654f08f4df4e8bf8 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0xd5307a7de6bf47759b238e9903880098a3ca67f7d123685d19ea330dccf4c0fcApprove127778852021-11-19 11:58:3015 days 17 hrs ago0xcfbc9798191dc48d798b8b8410e982db4ee40939 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x583a4df317c3541a9931fa1b3ab0db6b764c39fac405b0906566c7bb041c681eApprove127767452021-11-19 10:58:2615 days 18 hrs ago0x25750040e79f78d9e7c645d5ddce1964e207adb3 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0xd67ccf7aae578e84aee657c495cf21cc178d901b35c387b45503f1877947c11aApprove127696902021-11-19 4:55:1716 days 52 mins ago0x7bcfae90e3d27b12009a5a375831bb29a5a0bf7d IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000265746
0x46f0adc76fc6bcd3012f3b2636c6cb9fb76e5f4b857dd9bfd1f0c3d26035c2d8Approve127599952021-11-18 20:37:4116 days 9 hrs ago0x653d0804b840791b1a6b249bf185b80eabbcd114 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000101178
0x9787c338ce24e4d3d5249d8c2d4c29865ec32b3ac07ae77eebe954caded4aea6Approve127240322021-11-17 13:11:1817 days 16 hrs ago0xd340bdc9fc1b5b33023365890e9e3a84394c419e IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0xaafdfc002cc4ec90eef45f323eaf5d2394d75b1eee69fd3211f90ae2f4d24e06Approve126947302021-11-16 10:53:1818 days 18 hrs ago0x39ca7360a4455e9a0b9b6c4f198c1ebcb1913978 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000310037
0x21025f9f00dc06493a85193fdfdfbbdd459be5b3e6edaa3804017cf88a245df0Approve126906602021-11-16 7:14:1518 days 22 hrs ago0xf17530964eeefd6a7631df7ac65e283c29e71f9b IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x84b0625dfccbe59bff21d1b79003c0f62c30717496bc1de949fcef12926d4048Approve126692302021-11-15 12:23:3619 days 17 hrs ago0x0708b0e5a7ee78b1cf8910dc2971c8bb8e03d615 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0x8b981b98354912ef555a34b753ed2466e1df1bfceedcd607913807c34b51924dApprove126681642021-11-15 11:27:0319 days 18 hrs ago0x9ce75ba393362524a4204471d424bdd714ea187e IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000221455
0xe52dc86d9af4a8f18b79215945f62d4d63c195a8f008386ba4df49387e44bfe8Approve126670312021-11-15 10:25:4919 days 19 hrs ago0x89de75fd886fde5cc2b0073bf7e8719af4a826c6 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.00007227
0x3b812c6d0416e27fabeea74546ab3b21febdea828ffd4a357193dd9f92133388Approve126651222021-11-15 8:43:5819 days 21 hrs ago0x89de75fd886fde5cc2b0073bf7e8719af4a826c6 IN  0xd1d52246271ed5a7403c543ceea3344e39a8af290 BNB0.000310037
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x67be9904beed5131289662b0de3ec2da8e2f7f0e07c9f9ec009bd6c646bc541e130506372021-11-29 13:14:385 days 16 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.032150550259441534 BNB
0x67be9904beed5131289662b0de3ec2da8e2f7f0e07c9f9ec009bd6c646bc541e130506372021-11-29 13:14:385 days 16 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.036743486010790324 BNB
0x67be9904beed5131289662b0de3ec2da8e2f7f0e07c9f9ec009bd6c646bc541e130506372021-11-29 13:14:385 days 16 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.068894036270231859 BNB
0xcebb7944de73aaacf313a0337f8b580aeb8df56ae47ef698322f9a37aa536bf7129181822021-11-24 13:08:4810 days 16 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.033846671325639318 BNB
0xcebb7944de73aaacf313a0337f8b580aeb8df56ae47ef698322f9a37aa536bf7129181822021-11-24 13:08:4810 days 16 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.038681910086444934 BNB
0xcebb7944de73aaacf313a0337f8b580aeb8df56ae47ef698322f9a37aa536bf7129181822021-11-24 13:08:4810 days 16 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.072528581412084253 BNB
0x10276ad1142bd93b942e81f73528f4e6305fa9e91f0dde4f23154a8f84f57987128042912021-11-20 11:07:4414 days 18 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.035537617611000882 BNB
0x10276ad1142bd93b942e81f73528f4e6305fa9e91f0dde4f23154a8f84f57987128042912021-11-20 11:07:4414 days 18 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.040614420126858151 BNB
0x10276ad1142bd93b942e81f73528f4e6305fa9e91f0dde4f23154a8f84f57987128042912021-11-20 11:07:4414 days 18 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.076152037737859034 BNB
0x826dbd3c5909a429f68d62075f170fd90010f4b9d23107e24c602da8ee2c817c126821702021-11-15 23:52:3319 days 5 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.036553897138645373 BNB
0x826dbd3c5909a429f68d62075f170fd90010f4b9d23107e24c602da8ee2c817c126821702021-11-15 23:52:3319 days 5 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.04177588244416614 BNB
0x826dbd3c5909a429f68d62075f170fd90010f4b9d23107e24c602da8ee2c817c126821702021-11-15 23:52:3319 days 5 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.078329779582811514 BNB
0x39921b77204d9295b659332222774bd4c667b2943531e794310dc4b739d3765c125813722021-11-12 8:33:4122 days 21 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.038309315181622876 BNB
0x39921b77204d9295b659332222774bd4c667b2943531e794310dc4b739d3765c125813722021-11-12 8:33:4122 days 21 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.043782074493283287 BNB
0x39921b77204d9295b659332222774bd4c667b2943531e794310dc4b739d3765c125813722021-11-12 8:33:4122 days 21 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.082091389674906164 BNB
0xaeefd583b02095969cb1c72392754f4b3e29bddd4e17ce06bd2f761baa6297e9125813692021-11-12 8:33:3222 days 21 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.038309315181622876 BNB
0xaeefd583b02095969cb1c72392754f4b3e29bddd4e17ce06bd2f761baa6297e9125813692021-11-12 8:33:3222 days 21 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.043782074493283287 BNB
0xaeefd583b02095969cb1c72392754f4b3e29bddd4e17ce06bd2f761baa6297e9125813692021-11-12 8:33:3222 days 21 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.082091389674906164 BNB
0xa69901b34a04ab09b046a72bc73c20347edd60279dda84f2c2288ba23b7cb765125333232021-11-10 15:21:1124 days 14 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.0404706475113343 BNB
0xa69901b34a04ab09b046a72bc73c20347edd60279dda84f2c2288ba23b7cb765125333232021-11-10 15:21:1124 days 14 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.046252168584382058 BNB
0xa69901b34a04ab09b046a72bc73c20347edd60279dda84f2c2288ba23b7cb765125333232021-11-10 15:21:1124 days 14 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.086722816095716359 BNB
0x88d71b1306c944023759fd4821b79a25829f211538573fa0b301a65dc3bd9924125327432021-11-10 14:45:3124 days 15 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.0404706475113343 BNB
0x88d71b1306c944023759fd4821b79a25829f211538573fa0b301a65dc3bd9924125327432021-11-10 14:45:3124 days 15 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af29 0xb80cef1e487c52c70ee42689f920466a3a01a2a90.046252168584382058 BNB
0x88d71b1306c944023759fd4821b79a25829f211538573fa0b301a65dc3bd9924125327432021-11-10 14:45:3124 days 15 hrs ago PancakeSwap: Router v2 0xd1d52246271ed5a7403c543ceea3344e39a8af290.086722816095716359 BNB
0x9222a720ae96ae197c7abc7dbc151d99de65d3f0c86d9e0c9ad63761a1fd952c124595532021-11-08 0:29:2427 days 5 hrs ago 0xd1d52246271ed5a7403c543ceea3344e39a8af290xcef9a3eb657742468416e64f706a4b29e502c0080.040479779167271469 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CardanoMini

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 800 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-07-29
*/

/**
 *

 █████╗ ██████╗ ██████╗ ██████╗  █████╗ ███╗  ██╗ █████╗   ███╗   ███╗██╗███╗  ██╗██╗
██╔══██╗██╔══██ ██╔══██╗██╔══██╗██╔══██╗████╗ ██║██╔══██╗  ████╗ ████║██║████╗ ██║██║
██║  ╚═╝██████╝ ██████╔╝██║  ██║███████║██╔██╗██║██║  ██║  ██╔████╔██║██║██╔██╗██║██║
██║  ██╗██╔══██╗██╔══██╗██║  ██║██╔══██║██║╚████║██║  ██║  ██║╚██╔╝██║██║██║╚████║██║
╚█████╔╝██║  ██║██║  ██║██████╔╝██║  ██║██║ ╚███║╚█████╔╝  ██║ ╚═╝ ██║██║██║ ╚███║██║
 ╚════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═════╝ ╚═╝  ╚═╝╚═╝  ╚══╝ ╚════╝   ╚═╝     ╚═╝╚═╝╚═╝  ╚══╝╚═╝
                                                                      
Website: https://cardanomini.io/
Telegram: https://t.me/cardanomini/
Twitter: https://twitter.com/CardanoMini/

YouOnlyLiveOnce.finance has audited our project! The Anti-Rug community on the Binance Smart Chain.
In exchange for their quick audit, we have given them 4% of the total supply of tokens (To their DAO fund) and
5% of the transaction fee.

The Concept is simple, earn CARDANO, for hodling CARDANOMINI!

Tokenomics:

  1 % Liq + Burn Fee
  2 % YOLO DAO Fee
  12 % Redistributed
  
MORE INFO can be found on our WEBSITE & SUPPORT can be found on our TELEGRAM.
 * 
*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.4;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address _token;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    IBEP20 ADA = IBEP20(0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47);
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    IDEXRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    //SETMEUP, change this to 1 hour instead of 10mins
    uint256 public minPeriod = 45 minutes;
    uint256 public minDistribution = 1 * (10 ** 18);

    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
            ? IDEXRouter(_router)
            : IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override onlyToken {
        uint256 balanceBefore = ADA.balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(ADA);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = ADA.balanceOf(address(this)).sub(balanceBefore);

        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            ADA.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract CardanoMini is IBEP20, Auth {
    using SafeMath for uint256;

    address ADA = 0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "CardanoMini";
    string constant _symbol = "ADAMini";
    uint8 constant _decimals = 4;

    uint256 _totalSupply = 1 * 10**9 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply * 1 / 100;

    //max wallet holding of 2% 
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) isDividendExempt;

    uint256 liquidityFee    = 1;
    uint256 reflectionFee   = 12;
    uint256 marketingFee    = 2;
    uint256 public totalFee = 15;
    uint256 feeDenominator  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;

    uint256 targetLiquidity = 20;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    // Cooldown & timer functionality
    bool public buyCooldownEnabled = true;
    uint8 public cooldownTimerInterval = 45;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 10 / 10000; // 0.01% of supply
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        marketingFeeReceiver = 0x4E3406eE06275FDC22749295Db59085dF8D4a1C4;
        //Testnet: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
        //Mainet: 0x10ED43C718714eb63d5aA57B78B54704E256024E
        router = IDEXRouter(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new DividendDistributor(address(router));

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;

        // No timelock for these people
        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[marketingFeeReceiver] = true;

        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        // TO DO, manually whitelist this
        //isFeeExempt[_presaleContract] = true;
        //isTxLimitExempt[_presaleContract] = true;
        //isDividendExempt[_presaleContract] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        // NICE!
        autoLiquidityReceiver = DEAD;

        uint marketingFee = _totalSupply.div(20); //5% of total supply to YOLO DAO

        _balances[msg.sender] = _totalSupply.sub(marketingFee);
        emit Transfer(address(0), msg.sender, _totalSupply.sub(marketingFee));
        
        _balances[marketingFeeReceiver] = marketingFee;
        emit Transfer(address(0), marketingFeeReceiver, marketingFee);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

    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) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    //settting the maximum permitted wallet holding (percent of total supply)
     function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        // max wallet code
        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && recipient != autoLiquidityReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}
        

        
        // cooldown timer, so a bot doesnt do quick trades! 1min gap between 2 trades.
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for cooldown between buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }


        // Checks max transaction limit
        checkTxLimit(sender, amount);

        // Liquidity, Maintained at 25%
        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try distributor.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        try distributor.process(distributorGas) {} catch {}

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(marketingFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }


    // switch Trading
    function tradingStatus(bool _status) public onlyOwner {
        tradingOpen = _status;
    }

    // enable cooldown between trades
    function cooldownEnabled(bool _status, uint8 _interval) public onlyOwner {
        buyCooldownEnabled = _status;
        cooldownTimerInterval = _interval;
    }



    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBReflection = amountBNB.mul(reflectionFee).div(totalBNBFee);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        
        // only to supress warning msg
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }


    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setIsTimelockExempt(address holder, bool exempt) external authorized {
        isTimelockExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/4);
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external authorized {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }



/* Airdrop Begins */


 function airdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

    uint256 SCCC = 0;

    require(addresses.length == tokens.length,"Mismatch between Address and token count");

    for(uint i=0; i < addresses.length; i++){
        SCCC = SCCC + tokens[i];
    }

    require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens[i]);
        if(!isDividendExempt[addresses[i]]) {
            try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {} 
        }
    }

    // Dividend tracker
    if(!isDividendExempt[from]) {
        try distributor.setShare(from, _balances[from]) {} catch {}
    }
}

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);

}

// ps: hail  YOLO

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint8","name":"_interval","type":"uint8"}],"name":"cooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTimelockExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","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":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b0319908116733ee2200efb3400fabb9aacf31297cbdd1d435d471790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead1790556005805490911690556509184e72a00060065564174876e80060075560646512309ce54000046008556001600f818155600c6010556002601155601255606460138190556014601655601755601b805460ff199081169091556207a120601c55601d80548216831761ff001916612d00179055601f8054909116909117905560065461271090600a0204602055348015620000f157600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601580548316734e3406ee06275fdc22749295db59085df8d4a1c4179055601880549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200019f57600080fd5b505afa158015620001b4573d6000803e3d6000fd5b505050506040513d6020811015620001cb57600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200022357600080fd5b505af115801562000238573d6000803e3d6000fd5b505050506040513d60208110156200024f57600080fd5b5051601980546001600160a01b0319166001600160a01b03928316179055306000908152600a6020908152604080832060188054861685529252918290206000199055549051911690620002a3906200065a565b6001600160a01b03909116815260405190819003602001906000f080158015620002d1573d6000803e3d6000fd5b50601b80546001600160a01b0392831661010002610100600160a81b0319909116179055336000818152600b60209081526040808320805460ff19908116600190811790925560158054881686528386208054831684179055868652600c855283862080548316841790558054881686528386208054831684179055958552600d8452828520805482168317905594548616845281842080548616821790556004805487168552828520805487168317905530808652838620805488168417905560195488168652600e85528386208054881684179055855282852080548716831790558054871685529184208054909516179093559154601480546001600160a01b031916919094161783556006549092620003f79262001ba7620004bb821b17901c565b905062000415816006546200050c60201b62001be91790919060201c565b3360008181526009602090815260408220939093556006549192909160008051602062003fcc83398151915291620004599190869062001be96200050c821b17901c565b60408051918252519081900360200190a3601580546001600160a01b039081166000908152600960209081526040808320869055935484518681529451931693919260008051602062003fcc8339815191529281900390910190a35062000668565b60006200050583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200055660201b60201c565b9392505050565b60006200050583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620005fd60201b60201c565b60008183620005e65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620005aa57818101518382015260200162000590565b50505050905090810190601f168015620005d85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620005f357fe5b0495945050505050565b60008184841115620006525760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315620005aa57818101518382015260200162000590565b505050900390565b610ee780620030e583390190565b612a6d80620006786000396000f3fe6080604052600436106103175760003560e01c8063722b62ad1161019a578063ca33e64c116100e1578063f2fde38b1161008a578063f887ea4011610064578063f887ea4014610bb0578063fe9fbb8014610bc5578063ffb54a9914610bf85761031e565b8063f2fde38b14610b07578063f708a64f14610b3a578063f84ba65d14610b755761031e565b8063df20fd49116100bb578063df20fd4914610a8d578063e96fada214610abf578063f0b37c0414610ad45761031e565b8063ca33e64c14610a13578063d51ed1c814610a28578063dd62ed3e14610a525761031e565b80639d1944f511610143578063a9059cbb1161011d578063a9059cbb14610992578063b6a5d7de146109cb578063bf56b371146109fe5761031e565b80639d1944f514610918578063a4b45c0014610942578063a8aa1b311461097d5761031e565b806382bf293c1161017457806382bf293c146108a8578063893d20e8146108d257806395d89b41146109035761031e565b8063722b62ad1461086957806378109e541461087e5780637d1db4a5146108935761031e565b80632d48e8961161025e5780635c85974f116102075780636ddd1713116101e15780636ddd1713146107e55780636fcba377146107fa57806370a08231146108365761031e565b80635c85974f1461076b578063617fe0ed14610795578063658d4b7f146107aa5761031e565b8063313ce56711610238578063313ce567146106d257806350db71fb146106fd578063571ac8b0146107385761031e565b80632d48e8961461063a5780632d5945671461066a5780632f54bf6e1461069f5761031e565b806318160ddd116102c0578063201e79911161029a578063201e7991146105b257806323b872dd146105e25780632b112e49146106255761031e565b806318160ddd1461055e5780631da1db5e146105735780631df4ccfc1461059d5761031e565b8063095ea7b3116102f1578063095ea7b3146104b55780630d295980146105025780631161ae391461052e5761031e565b8063025ff12f146103235780630445b6671461040457806306fdde031461042b5761031e565b3661031e57005b600080fd5b34801561032f57600080fd5b506104026004803603606081101561034657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037157600080fd5b82018360208201111561038357600080fd5b803590602001918460208302840111640100000000831117156103a557600080fd5b9193909290916020810190356401000000008111156103c357600080fd5b8201836020820111156103d557600080fd5b803590602001918460208302840111640100000000831117156103f757600080fd5b509092509050610c0d565b005b34801561041057600080fd5b50610419610f0f565b60408051918252519081900360200190f35b34801561043757600080fd5b50610440610f15565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561047a578181015183820152602001610462565b50505050905090810190601f1680156104a75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104c157600080fd5b506104ee600480360360408110156104d857600080fd5b506001600160a01b038135169060200135610f4c565b604080519115158252519081900360200190f35b34801561050e57600080fd5b506104026004803603602081101561052557600080fd5b50351515610fb3565b34801561053a57600080fd5b506104ee6004803603604081101561055157600080fd5b5080359060200135611009565b34801561056a57600080fd5b5061041961101d565b34801561057f57600080fd5b506104026004803603602081101561059657600080fd5b5035611023565b3480156105a957600080fd5b506104196110a9565b3480156105be57600080fd5b50610402600480360360408110156105d557600080fd5b50803590602001356110af565b3480156105ee57600080fd5b506104ee6004803603606081101561060557600080fd5b506001600160a01b03813581169160208101359091169060400135611102565b34801561063157600080fd5b506104196111cb565b34801561064657600080fd5b506104026004803603604081101561065d57600080fd5b5080359060200135611214565b34801561067657600080fd5b506104026004803603604081101561068d57600080fd5b5080351515906020013560ff166112d3565b3480156106ab57600080fd5b506104ee600480360360208110156106c257600080fd5b50356001600160a01b031661133c565b3480156106de57600080fd5b506106e7611350565b6040805160ff9092168252519081900360200190f35b34801561070957600080fd5b506104026004803603604081101561072057600080fd5b506001600160a01b0381351690602001351515611355565b34801561074457600080fd5b506104ee6004803603602081101561075b57600080fd5b50356001600160a01b03166113c8565b34801561077757600080fd5b506104026004803603602081101561078e57600080fd5b50356113d6565b3480156107a157600080fd5b506104ee611423565b3480156107b657600080fd5b50610402600480360360408110156107cd57600080fd5b506001600160a01b038135169060200135151561142c565b3480156107f157600080fd5b506104ee61149f565b34801561080657600080fd5b506104026004803603608081101561081d57600080fd5b50803590602081013590604081013590606001356114a8565b34801561084257600080fd5b506104196004803603602081101561085957600080fd5b50356001600160a01b0316611532565b34801561087557600080fd5b506106e761154d565b34801561088a57600080fd5b5061041961155b565b34801561089f57600080fd5b50610419611561565b3480156108b457600080fd5b50610402600480360360208110156108cb57600080fd5b5035611567565b3480156108de57600080fd5b506108e76115bf565b604080516001600160a01b039092168252519081900360200190f35b34801561090f57600080fd5b506104406115ce565b34801561092457600080fd5b506104026004803603602081101561093b57600080fd5b5035611605565b34801561094e57600080fd5b506104026004803603604081101561096557600080fd5b506001600160a01b0381358116916020013516611661565b34801561098957600080fd5b506108e76116e4565b34801561099e57600080fd5b506104ee600480360360408110156109b557600080fd5b506001600160a01b0381351690602001356116f3565b3480156109d757600080fd5b50610402600480360360208110156109ee57600080fd5b50356001600160a01b0316611700565b348015610a0a57600080fd5b5061041961176a565b348015610a1f57600080fd5b506108e7611770565b348015610a3457600080fd5b5061041960048036036020811015610a4b57600080fd5b503561177f565b348015610a5e57600080fd5b5061041960048036036040811015610a7557600080fd5b506001600160a01b03813581169160200135166117bf565b348015610a9957600080fd5b5061040260048036036040811015610ab057600080fd5b508035151590602001356117ea565b348015610acb57600080fd5b506108e7611849565b348015610ae057600080fd5b5061040260048036036020811015610af757600080fd5b50356001600160a01b0316611858565b348015610b1357600080fd5b5061040260048036036020811015610b2a57600080fd5b50356001600160a01b03166118bc565b348015610b4657600080fd5b5061040260048036036040811015610b5d57600080fd5b506001600160a01b038135169060200135151561197a565b348015610b8157600080fd5b5061040260048036036040811015610b9857600080fd5b506001600160a01b0381351690602001351515611afe565b348015610bbc57600080fd5b506108e7611b71565b348015610bd157600080fd5b506104ee60048036036020811015610be857600080fd5b50356001600160a01b0316611b80565b348015610c0457600080fd5b506104ee611b9e565b610c163361133c565b610c50576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6000838214610c905760405162461bcd60e51b815260040180806020018281038252602881526020018061298c6028913960400191505060405180910390fd5b60005b84811015610cbd57838382818110610ca757fe5b6020029190910135929092019150600101610c93565b5080610cc887611532565b1015610d1b576040805162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000604482015290519081900360640190fd5b60005b84811015610e6d57610d5e87878784818110610d3657fe5b905060200201356001600160a01b0316868685818110610d5257fe5b90506020020135611c2b565b50600e6000878784818110610d6f57fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16610e6557601b5461010090046001600160a01b03166314b6ca96878784818110610dbb57fe5b905060200201356001600160a01b0316600960008a8a87818110610ddb57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610e5257600080fd5b505af1925050508015610e63575060015b505b600101610d1e565b506001600160a01b0386166000908152600e602052604090205460ff16610f0757601b546001600160a01b03878116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b158015610ef457600080fd5b505af1925050508015610f05575060015b505b505050505050565b60205481565b60408051808201909152600b81527f43617264616e6f4d696e69000000000000000000000000000000000000000000602082015290565b336000818152600a602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610fbc3361133c565b610ff6576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601b805460ff1916911515919091179055565b6000826110158361177f565b119392505050565b60065490565b61102c3361133c565b611066576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60155460405147916001600160a01b03169060648484020480156108fc02916000818181858888f193505050501580156110a4573d6000803e3d6000fd5b505050565b60125481565b6110b833611b80565b6110f7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601691909155601755565b6001600160a01b0383166000908152600a60209081526040808320338452909152812054600019146111b657604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e6365000000000000000000006020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054611191918490611d15565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b6111c1848484611dac565b90505b9392505050565b60055460009061120f906111e7906001600160a01b0316611532565b60045461120990611200906001600160a01b0316611532565b60065490611be9565b90611be9565b905090565b61121d33611b80565b61125c576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601b60019054906101000a90046001600160a01b03166001600160a01b0316632d48e89683836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b1580156112bf57600080fd5b505af1158015610f07573d6000803e3d6000fd5b6112dc3361133c565b611316576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b601d805460ff19169215159290921761ff00191661010060ff9290921691909102179055565b6000546001600160a01b0390811691161490565b600490565b61135e33611b80565b61139d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000610fad82600019610f4c565b6113df33611b80565b61141e576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600755565b601d5460ff1681565b61143533611b80565b611474576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b601f5460ff1681565b6114b133611b80565b6114f0576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600f849055601083905560118290556115138261150d8686612306565b90612306565b6012556013819055600481046012541061152c57600080fd5b50505050565b6001600160a01b031660009081526009602052604090205490565b601d54610100900460ff1681565b60085481565b60075481565b6115703361133c565b6115aa576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b60648160065402816115b857fe5b0460085550565b6000546001600160a01b031690565b60408051808201909152600781527f4144414d696e6900000000000000000000000000000000000000000000000000602082015290565b61160e33611b80565b61164d576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b0811061165c57600080fd5b601c55565b61166a33611b80565b6116a9576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601480546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560158054929093169116179055565b6019546001600160a01b031681565b60006111c4338484611dac565b6117093361133c565b611743576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601a5481565b6014546001600160a01b031681565b6000610fad61178c6111cb565b6019546117b9906117b2906002906117ac906001600160a01b0316611532565b90612360565b8590612360565b90611ba7565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b6117f333611b80565b611832576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601f805460ff191692151592909217909155602055565b6015546001600160a01b031681565b6118613361133c565b61189b576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b6118c53361133c565b6118ff576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61198333611b80565b6119c2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906119e957506019546001600160a01b03838116911614155b6119f257600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155611a9457601b5460408051630a5b654b60e11b81526001600160a01b038581166004830152600060248301819052925161010090940416926314b6ca969260448084019391929182900301818387803b158015611a7757600080fd5b505af1158015611a8b573d6000803e3d6000fd5b50505050611afa565b601b546001600160a01b03838116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b1580156112bf57600080fd5b5050565b611b0733611b80565b611b46576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6018546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b601b5460ff1681565b60006111c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123b9565b60006111c483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d15565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b0386166000908152600990915291822054611c85918490611d15565b6001600160a01b038086166000908152600960205260408082209390935590851681522054611cb49083612306565b6001600160a01b0380851660008181526009602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115611da45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d69578181015183820152602001611d51565b50505050905090810190601f168015611d965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60215460009060ff1615611dcc57611dc5848484611c2b565b90506111c4565b6001600160a01b03841660009081526001602052604090205460ff16158015611e0e57506001600160a01b03831660009081526001602052604090205460ff16155b15611e6a57601b5460ff16611e6a576040805162461bcd60e51b815260206004820152601460248201527f54726164696e67206e6f74206f70656e20796574000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015611e9c57506001600160a01b0383163014155b8015611eb657506004546001600160a01b03848116911614155b8015611ed057506019546001600160a01b03848116911614155b8015611eea57506015546001600160a01b03848116911614155b8015611f0457506014546001600160a01b03848116911614155b15611f5b576000611f1484611532565b90506008548382011115611f595760405162461bcd60e51b815260040180806020018281038252603e8152602001806129fa603e913960400191505060405180910390fd5b505b6019546001600160a01b038581169116148015611f7a5750601d5460ff165b8015611f9f57506001600160a01b0383166000908152600d602052604090205460ff16155b15612023576001600160a01b0383166000908152601e60205260409020544211611ffa5760405162461bcd60e51b81526004018080602001828103825260258152602001806129b46025913960400191505060405180910390fd5b601d546001600160a01b0384166000908152601e6020526040902061010090910460ff16420190555b61202d848361241e565b612035612498565b15612042576120426124e9565b604080518082018252601481527f496e73756666696369656e742042616c616e63650000000000000000000000006020808301919091526001600160a01b03871660009081526009909152919091205461209d918490611d15565b6001600160a01b0385166000908152600960205260408120919091556120c2856128ca565b6120cc57826120d6565b6120d685846128e9565b6001600160a01b0385166000908152600960205260409020549091506120fc9082612306565b6001600160a01b038086166000908152600960209081526040808320949094559188168152600e909152205460ff166121a857601b546001600160a01b03868116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561219557600080fd5b505af19250505080156121a6575060015b505b6001600160a01b0384166000908152600e602052604090205460ff1661224157601b546001600160a01b03858116600081815260096020526040808220548151630a5b654b60e11b81526004810194909452602484015251610100909404909216926314b6ca969260448084019391929182900301818387803b15801561222e57600080fd5b505af192505050801561223f575060015b505b601b60019054906101000a90046001600160a01b03166001600160a01b031663ffb2c479601c546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561229e57600080fd5b505af19250505080156122af575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000828201838110156111c4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261236f57506000610fad565b8282028284828161237c57fe5b04146111c45760405162461bcd60e51b81526004018080602001828103825260218152602001806129d96021913960400191505060405180910390fd5b600081836124085760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d69578181015183820152602001611d51565b50600083858161241457fe5b0495945050505050565b6007548111158061244757506001600160a01b0382166000908152600c602052604090205460ff165b611afa576040805162461bcd60e51b815260206004820152601160248201527f5458204c696d6974204578636565646564000000000000000000000000000000604482015290519081900360640190fd5b6019546000906001600160a01b031633148015906124b9575060215460ff16155b80156124c75750601f5460ff165b801561120f575050602080543060009081526009909252604090912054101590565b6021805460ff1916600117905560165460175460009161250891611009565b61251457600f54612517565b60005b9050600061253b60026117b96012546117b98660205461236090919063ffffffff16565b9050600061255482602054611be990919063ffffffff16565b604080516002808252606080830184529394509091602083019080368337019050509050308160008151811061258657fe5b6001600160a01b0392831660209182029290920101526003548251911690829060019081106125b157fe5b6001600160a01b0392831660209182029290920181019190915260185460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561264b578181015183820152602001612633565b505050509050019650505050505050600060405180830381600087803b15801561267457600080fd5b505af1158015612688573d6000803e3d6000fd5b5050505060006126a18247611be990919063ffffffff16565b905060006126bc6126b3886002611ba7565b60125490611be9565b905060006126d160026117b98481878d612360565b905060006126ee836117b96010548761236090919063ffffffff16565b9050600061270b846117b96011548861236090919063ffffffff16565b9050601b60019054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561275d57600080fd5b505af19350505050801561276f575060015b506015546040516000916001600160a01b03169061753090849084818181858888f193505050503d80600081146127c2576040519150601f19603f3d011682016040523d82523d6000602084013e6127c7565b606091505b5060009250508a1590506128b3576018546014546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561284a57600080fd5b505af115801561285e573d6000803e3d6000fd5b50505050506040513d606081101561287557600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b50506021805460ff19169055505050505050505050565b6001600160a01b03166000908152600b602052604090205460ff161590565b6000806129076013546117b96012548661236090919063ffffffff16565b306000908152600960205260409020549091506129249082612306565b30600081815260096020908152604091829020939093558051848152905191926001600160a01b038816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36129838382611be9565b94935050505056fe4d69736d61746368206265747765656e204164647265737320616e6420746f6b656e20636f756e74506c65617365207761697420666f7220636f6f6c646f776e206265747765656e2062757973536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77546f74616c20486f6c64696e672069732063757272656e746c79206c696d697465642c20796f752063616e206e6f74206275792074686174206d7563682ea2646970667358221220617d73cc6d6a87c0ff4754221104fbf152c2ea849bebb640bf7bd1fdcfa5ae0564736f6c634300070400336080604052600180546001600160a01b0319908116733ee2200efb3400fabb9aacf31297cbdd1d435d47179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610ee7380380610ee7833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca577310ed43c718714eb63d5aa57b78b54704e256024e6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610de1806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f7610759565b34801561026057600080fd5b506100f761075f565b34801561027557600080fd5b50610142610765565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610770565b3480156102b457600080fd5b506100f7610852565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260076020526040902054156103015761030182610858565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610980565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109ee565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610af5565b90610b40565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b9a565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b9a565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610af5565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060025482519293506001600160a01b03169183915060009061059557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105bf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610651578181015183820152602001610639565b50505050905001955050505050506000604051808303818588803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e557600080fd5b505afa1580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b505190610af5565b6009549091506107279082610b40565b600955600854600c5461075191610748916107429085610bb7565b90610c10565b600b5490610b40565b600b55505050565b600b5481565b600a5481565b61076e33610858565b565b6000546001600160a01b0316331461078757600080fd5b60045480610795575061084f565b6000805a905060005b84831080156107ac57508381105b1561084a5783600f54106107c0576000600f555b6107ec6004600f54815481106107d257fe5b6000918252602090912001546001600160a01b0316610c52565b1561081d5761081d6004600f548154811061080357fe5b6000918252602090912001546001600160a01b0316610858565b61083261082b5a8490610af5565b8490610b40565b92505a600f805460019081019091559092500161079e565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087a5761084f565b6000610885826103e8565b9050801561097c57600a5461089a9082610b40565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109529082610b40565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b9a565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600480546000198101908110610a0057fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a3857fe5b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a9357fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610ac357fe5b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905550565b6000610b3783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c8e565b90505b92915050565b600082820183811015610b37576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b3a600c54610742600b5485610bb790919063ffffffff16565b600082610bc657506000610b3a565b82820282848281610bd357fe5b0414610b375760405162461bcd60e51b8152600401808060200182810382526021815260200180610d8b6021913960400191505060405180910390fd5b6000610b3783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d25565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b3a5750600e54610c87836103e8565b1192915050565b60008184841115610d1d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ce2578181015183820152602001610cca565b50505050905090810190601f168015610d0f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d745760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610ce2578181015183820152602001610cca565b506000838581610d8057fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220539bc9ff65b022ab24146bee28999c2f576fe5f91d6fb40665f8e096bcf0a66b64736f6c63430007040033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed ByteCode Sourcemap

13605:14685:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27432:789;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27432:789:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27432:789:0;;-1:-1:-1;27432:789:0;-1:-1:-1;27432:789:0;:::i;:::-;;15370:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17573:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17995:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17995:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;22607:94;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22607:94:0;;;;:::i;27247:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27247:150:0;;;;;;;:::i;17303:88::-;;;;;;;;;;;;;:::i;22357:217::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22357:217:0;;:::i;14695:28::-;;;;;;;;;;;;;:::i;26392:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26392:183:0;;;;;;;:::i;18507:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18507:364:0;;;;;;;;;;;;;;;;;:::i;26922:142::-;;;;;;;;;;;;;:::i;26583:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26583:183:0;;;;;;;:::i;22748:164::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22748:164:0;;;;;;;;;;;:::i;5423:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5423:103:0;-1:-1:-1;;;;;5423:103:0;;:::i;17397:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25423:130;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25423:130:0;;;;;;;;;;:::i;18219:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18219:116:0;-1:-1:-1;;;;;18219:116:0;;:::i;24700:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24700:96:0;;:::i;15187:37::-;;;;;;;;;;;;;:::i;25159:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25159:120:0;;;;;;;;;;:::i;15333:30::-;;;;;;;;;;;;;:::i;25561:423::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25561:423:0;;;;;;;;;;;;;;;;;:::i;17743:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17743:105:0;-1:-1:-1;;;;;17743:105:0;;:::i;15231:39::-;;;;;;;;;;;;;:::i;14217:59::-;;;;;;;;;;;;;:::i;14123:52::-;;;;;;;;;;;;;:::i;18959:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18959:149:0;;:::i;17659:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17659:78:0;;;;;;;;;;;;;;17483:84;;;;;;;;;;;;;:::i;26774:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26774:136:0;;:::i;25992:228::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25992:228:0;;;;;;;;;;:::i;14970:19::-;;;;;;;;;;;;;:::i;18343:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18343:156:0;;;;;;;;:::i;5096:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5096:94:0;-1:-1:-1;;;;;5096:94:0;;:::i;14998:25::-;;;;;;;;;;;;;:::i;14768:36::-;;;;;;;;;;;;;:::i;27072:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27072:167:0;;:::i;17854:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17854:133:0;;;;;;;;;;:::i;26228:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26228:156:0;;;;;;;;;:::i;14811:35::-;;;;;;;;;;;;;:::i;5266:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5266:97:0;-1:-1:-1;;;;;5266:97:0;;:::i;5823:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5823:173:0;-1:-1:-1;;;;;5823:173:0;;:::i;24804:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24804:347:0;;;;;;;;;;:::i;25287:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25287:128:0;;;;;;;;;;:::i;14939:24::-;;;;;;;;;;;;;:::i;5597:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5597:107:0;-1:-1:-1;;;;;5597:107:0;;:::i;15030:31::-;;;;;;;;;;;;;:::i;27432:789::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;27548:12:::1;27581:33:::0;;::::1;27573:85;;;;-1:-1:-1::0;;;27573:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27671:6;27667:82;27681:20:::0;;::::1;27667:82;;;27732:6;;27739:1;27732:9;;;;;;;;;::::0;;;::::1;;27725:16:::0;;;::::1;::::0;-1:-1:-1;27703:3:0::1;;27667:82;;;;27784:4;27765:15;27775:4;27765:9;:15::i;:::-;:23;;27757:64;;;::::0;;-1:-1:-1;;;27757:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27834:6;27830:250;27844:20:::0;;::::1;27830:250;;;27881:43;27896:4;27901:9;;27911:1;27901:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;27901:12:0::1;27914:6;;27921:1;27914:9;;;;;;;;;;;;;27881:14;:43::i;:::-;;27939:16;:30;27956:9;;27966:1;27956:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;27956:12:0::1;27939:30:::0;;-1:-1:-1;27939:30:0;::::1;::::0;;;;;;-1:-1:-1;27939:30:0;;::::1;;27935:138;;27990:11;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;27990:11:0::1;:20;28011:9:::0;;28021:1;28011:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;28011:12:0::1;28025:9;:23;28035:9;;28045:1;28035:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;28035:12:0::1;-1:-1:-1::0;;;;;28025:23:0::1;-1:-1:-1::0;;;;;28025:23:0::1;;;;;;;;;;;;;27990:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;27990:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;27986:75:::0;::::1;27866:3;;27830:250;;;-1:-1:-1::0;;;;;;28117:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;28113:105;;28156:11;::::0;-1:-1:-1;;;;;28183:15:0;;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;28156:43;;-1:-1:-1;;;28156:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:43;;;;;28183:15;;28156:43;;;;;;28183:15;28156:11;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;28152:59:::0;::::1;4844:1;27432:789:::0;;;;;:::o;15370:56::-;;;;:::o;17573:80::-;17645:5;;;;;;;;;;;;;;;;;17573:80;:::o;17995:216::-;18099:10;18070:4;18087:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18087:32:0;;;;;;;;;;;:41;;;18144:37;;;;;;;18070:4;;18087:32;;18099:10;;18144:37;;;;;;;;-1:-1:-1;18199:4:0;17995:216;;;;;:::o;22607:94::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;22672:11:::1;:21:::0;;-1:-1:-1;;22672:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22607:94::o;27247:150::-;27327:4;27383:6;27351:29;27371:8;27351:19;:29::i;:::-;:38;;27247:150;-1:-1:-1;;;27247:150:0:o;17303:88::-;17376:12;;17303:88;:::o;22357:217::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;22500:20:::1;::::0;22492:74:::1;::::0;22460:21:::1;::::0;-1:-1:-1;;;;;22500:20:0::1;::::0;22562:3:::1;22531:28:::0;;::::1;:34;22492:74:::0;::::1;;;::::0;::::1;::::0;;;22531:34;22500:20;22492:74;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4844:1;22357:217:::0;:::o;14695:28::-;;;;:::o;26392:183::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;26490:15:::1;:25:::0;;;;26526:26:::1;:41:::0;26392:183::o;18507:364::-;-1:-1:-1;;;;;18627:19:0;;18607:4;18627:19;;;:11;:19;;;;;;;;18647:10;18627:31;;;;;;;;-1:-1:-1;;18627:46:0;18624:180;;18723:69;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18723:19:0;;-1:-1:-1;18723:19:0;;;:11;:19;;;;;18743:10;18723:31;;;;;;;;;;:69;;18759:6;;18723:35;:69::i;:::-;-1:-1:-1;;;;;18689:19:0;;;;;;:11;:19;;;;;;;;18709:10;18689:31;;;;;;;:103;18624:180;18823:40;18837:6;18845:9;18856:6;18823:13;:40::i;:::-;18816:47;;18507:364;;;;;;:::o;26922:142::-;27050:4;;26975:7;;27002:54;;27040:15;;-1:-1:-1;;;;;27050:4:0;27040:9;:15::i;:::-;27029:4;;27002:33;;27019:15;;-1:-1:-1;;;;;27029:4:0;27019:9;:15::i;:::-;27002:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;26995:61;;26922:142;:::o;26583:183::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;26693:11:::1;;;;;;;;;-1:-1:-1::0;;;;;26693:11:0::1;-1:-1:-1::0;;;;;26693:35:0::1;;26729:10;26741:16;26693:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;22748:164:::0;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;22832:18:::1;:28:::0;;-1:-1:-1;;22832:28:0::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;22871:33:0::1;22832:28;;22871:33:::0;;;::::1;::::0;;;::::1;;::::0;;22748:164::o;5423:103::-;5478:4;5513:5;-1:-1:-1;;;;;5513:5:0;;;5502:16;;;;5423:103::o;17397:80::-;14054:1;17397:80;:::o;25423:130::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25512:24:0;;;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;25512:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25423:130::o;18219:116::-;18274:4;18298:29;18306:7;-1:-1:-1;;18298:7:0;:29::i;24700:96::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;24767:12:::1;:21:::0;24700:96::o;15187:37::-;;;;;;:::o;25159:120::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25243:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;25243:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25159:120::o;15333:30::-;;;;;;:::o;25561:423::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;25704:12:::1;:28:::0;;;25743:13:::1;:30:::0;;;25784:12:::1;:28:::0;;;25834:52:::1;25799:13:::0;25834:33:::1;25719:13:::0;25759:14;25834:17:::1;:33::i;:::-;:37:::0;::::1;:52::i;:::-;25823:8;:63:::0;25897:14:::1;:32:::0;;;25974:1:::1;25914:15:::0;25959:16:::1;25948:8;;:27;25940:36;;;::::0;::::1;;25561:423:::0;;;;:::o;17743:105::-;-1:-1:-1;;;;;17827:18:0;17809:7;17827:18;;;:9;:18;;;;;;;17743:105::o;15231:39::-;;;;;;;;;:::o;14217:59::-;;;;:::o;14123:52::-;;;;:::o;18959:149::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;19097:3:::1;19078:14;19063:12;;:29;19062:38;;;;;;19044:15;:56:::0;-1:-1:-1;18959:149:0:o;17659:78::-;17711:7;17729:5;-1:-1:-1;;;;;17729:5:0;17659:78;:::o;17483:84::-;17557:7;;;;;;;;;;;;;;;;;17483:84;:::o;26774:136::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;26864:6:::1;26858:3;:12;26850:21;;;::::0;::::1;;26882:14;:20:::0;26774:136::o;25992:228::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;26111:21:::1;:46:::0;;-1:-1:-1;;;;;26111:46:0;;::::1;-1:-1:-1::0;;26111:46:0;;::::1;;::::0;;;26168:20:::1;:44:::0;;;;;::::1;::::0;::::1;;::::0;;25992:228::o;14970:19::-;;;-1:-1:-1;;;;;14970:19:0;;:::o;18343:156::-;18423:4;18447:44;18461:10;18473:9;18484:6;18447:13;:44::i;5096:94::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5156:19:0::1;;::::0;;;5178:4:::1;5156:19;::::0;;;;;;;:26;;-1:-1:-1;;5156:26:0::1;::::0;;::::1;::::0;;5096:94::o;14998:25::-;;;;:::o;14768:36::-;;;-1:-1:-1;;;;;14768:36:0;;:::o;27072:167::-;27140:7;27167:64;27208:22;:20;:22::i;:::-;27190:4;;27167:36;;27180:22;;27200:1;;27180:15;;-1:-1:-1;;;;;27190:4:0;27180:9;:15::i;:::-;:19;;:22::i;:::-;27167:8;;:12;:36::i;:::-;:40;;:64::i;17854:133::-;-1:-1:-1;;;;;17956:19:0;;;17938:7;17956:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17854:133::o;26228:156::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;26320:11:::1;:22:::0;;-1:-1:-1;;26320:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;26353:13:::1;:23:::0;26228:156::o;14811:35::-;;;-1:-1:-1;;;;;14811:35:0;;:::o;5266:97::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5328:19:0::1;5350:5;5328:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;5328:27:0::1;::::0;;5266:97::o;5823:173::-;4812:19;4820:10;4812:7;:19::i;:::-;4804:38;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;-1:-1:-1;;;4804:38:0;;;;;;;;;;;;;;;5899:5:::1;:11:::0;;-1:-1:-1;;5899:11:0::1;-1:-1:-1::0;;;;;5899:11:0;::::1;::::0;;::::1;::::0;;5921:19;;;-1:-1:-1;5921:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;5921:26:0::1;::::0;;::::1;::::0;;;5963:25;;;;;;;::::1;::::0;;;;;;;;;::::1;5823:173:::0;:::o;24804:347::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24901:23:0;::::1;24919:4;24901:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;24938:4:0::1;::::0;-1:-1:-1;;;;;24928:14:0;;::::1;24938:4:::0;::::1;24928:14;;24901:41;24893:50;;;::::0;::::1;;-1:-1:-1::0;;;;;24954:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;24954:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;24998:146:::1;;25023:11;::::0;:31:::1;::::0;;-1:-1:-1;;;25023:31:0;;-1:-1:-1;;;;;25023:31:0;;::::1;;::::0;::::1;::::0;25052:1:::1;25023:31:::0;;;;;;;;:11:::1;::::0;;::::1;;::::0;:20:::1;::::0;:31;;;;;25052:1;;25023:31;;;;;;25052:1;25023:11;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24998:146;;;25085:11;::::0;-1:-1:-1;;;;;25114:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;25085:47;;-1:-1:-1;;;25085:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11:::1;::::0;;::::1;::::0;;::::1;::::0;:20:::1;::::0;:47;;;;;25114:17;;25085:47;;;;;;25114:17;25085:11;:47;::::1;;::::0;::::1;;;;::::0;::::1;24998:146;24804:347:::0;;:::o;25287:128::-;4981:24;4994:10;4981:12;:24::i;:::-;4973:48;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;-1:-1:-1;;;4973:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25375:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;25375:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25287:128::o;14939:24::-;;;-1:-1:-1;;;;;14939:24:0;;:::o;5597:107::-;-1:-1:-1;;;;;5677:19:0;5653:4;5677:19;;;:14;:19;;;;;;;;;5597:107::o;15030:31::-;;;;;;:::o;2936:132::-;2994:7;3021:39;3025:1;3028;3021:39;;;;;;;;;;;;;;;;;:3;:39::i;2340:136::-;2398:7;2425:43;2429:1;2432;2425:43;;;;;;;;;;;;;;;;;:3;:43::i;21177:330::-;21307:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21307:17:0;;21270:4;21307:17;;;:9;:17;;;;;;;:53;;21329:6;;21307:21;:53::i;:::-;-1:-1:-1;;;;;21287:17:0;;;;;;;:9;:17;;;;;;:73;;;;21394:20;;;;;;;:32;;21419:6;21394:24;:32::i;:::-;-1:-1:-1;;;;;21371:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;21442:35;;;;;;;21371:20;;21442:35;;;;;;;;;;;;;-1:-1:-1;21495:4:0;21177:330;;;;;:::o;2482:192::-;2568:7;2604:12;2596:6;;;;2588:29;;;;-1:-1:-1;;;2588:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2640:5:0;;;2482:192::o;19116:2049::-;19228:6;;19208:4;;19228:6;;19225:63;;;19244:41;19259:6;19267:9;19278:6;19244:14;:41::i;:::-;19237:48;;;;19225:63;-1:-1:-1;;;;;19304:22:0;;;;;;:14;:22;;;;;;;;19303:23;:53;;;;-1:-1:-1;;;;;;19331:25:0;;;;;;:14;:25;;;;;;;;19330:26;19303:53;19300:127;;;19380:11;;;;19372:43;;;;;-1:-1:-1;;;19372:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19472:22:0;;;;;;:14;:22;;;;;;;;19471:23;:53;;;;-1:-1:-1;;;;;;19498:26:0;;19519:4;19498:26;;19471:53;:84;;;;-1:-1:-1;19550:4:0;;-1:-1:-1;;;;;19529:26:0;;;19550:4;;19529:26;;19471:84;:105;;;;-1:-1:-1;19572:4:0;;-1:-1:-1;;;;;19559:17:0;;;19572:4;;19559:17;;19471:105;:142;;;;-1:-1:-1;19593:20:0;;-1:-1:-1;;;;;19580:33:0;;;19593:20;;19580:33;;19471:142;:180;;;;-1:-1:-1;19630:21:0;;-1:-1:-1;;;;;19617:34:0;;;19630:21;;19617:34;;19471:180;19467:372;;;19667:18;19688:20;19698:9;19688;:20::i;:::-;19667:41;;19756:15;;19745:6;19732:10;:19;19731:40;;19723:114;;;;-1:-1:-1;;;19723:114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19467:372;;19973:4;;-1:-1:-1;;;;;19963:14:0;;;19973:4;;19963:14;:49;;;;-1:-1:-1;19994:18:0;;;;19963:49;:94;;;;-1:-1:-1;;;;;;20030:27:0;;;;;;:16;:27;;;;;;;;20029:28;19963:94;19959:299;;;-1:-1:-1;;;;;20082:24:0;;;;;;:13;:24;;;;;;20109:15;-1:-1:-1;20074:91:0;;;;-1:-1:-1;;;20074:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20225:21;;-1:-1:-1;;;;;20180:24:0;;;;;;:13;:24;;;;;20225:21;;;;;;20207:15;:39;20180:66;;19959:299;20313:28;20326:6;20334;20313:12;:28::i;:::-;20398:16;:14;:16::i;:::-;20395:35;;;20417:10;:8;:10::i;:::-;20489:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20489:17:0;;-1:-1:-1;20489:17:0;;;:9;:17;;;;;;;;:53;;20511:6;;20489:21;:53::i;:::-;-1:-1:-1;;;;;20469:17:0;;;;;;:9;:17;;;;;:73;;;;20580:21;20479:6;20580:13;:21::i;:::-;:56;;20630:6;20580:56;;;20604:23;20612:6;20620;20604:7;:23::i;:::-;-1:-1:-1;;;;;20670:20:0;;;;;;:9;:20;;;;;;20555:81;;-1:-1:-1;20670:40:0;;20555:81;20670:24;:40::i;:::-;-1:-1:-1;;;;;20647:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;20756:24;;;;;:16;:24;;;;;;;20752:119;;20801:11;;-1:-1:-1;;;;;20830:17:0;;;;;;;:9;:17;;;;;;;20801:47;;-1:-1:-1;;;20801:47:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:47;;;;;20830:17;;20801:47;;;;;;20830:17;20801:11;:47;;;;;;;;;;;;;;;;;;;;;;;;;20797:63;;-1:-1:-1;;;;;20887:27:0;;;;;;:16;:27;;;;;;;;20883:129;;20935:11;;-1:-1:-1;;;;;20967:20:0;;;;;;;:9;:20;;;;;;;20935:53;;-1:-1:-1;;;20935:53:0;;;;;;;;;;;;;;:11;;;;;;;;:20;;:53;;;;;20967:20;;20935:53;;;;;;20967:20;20935:11;:53;;;;;;;;;;;;;;;;;;;;;;;;;20931:69;;21028:11;;;;;;;;;-1:-1:-1;;;;;21028:11:0;-1:-1:-1;;;;;21028:19:0;;21048:14;;21028:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21024:51;21109:9;-1:-1:-1;;;;;21092:43:0;21101:6;-1:-1:-1;;;;;21092:43:0;;21120:14;21092:43;;;;;;;;;;;;;;;;;;-1:-1:-1;21153:4:0;;19116:2049;-1:-1:-1;;;;19116:2049:0:o;2153:181::-;2211:7;2243:5;;;2267:6;;;;2259:46;;;;;-1:-1:-1;;;2259:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2680:250;2738:7;2762:6;2758:47;;-1:-1:-1;2792:1:0;2785:8;;2758:47;2829:5;;;2833:1;2829;:5;:1;2853:5;;;;;:10;2845:56;;;;-1:-1:-1;;;2845:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3074:345;3160:7;3262:12;3255:5;3247:28;;;;-1:-1:-1;;;3247:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:9;3302:1;3298;:5;;;;;;;3074:345;-1:-1:-1;;;;;3074:345:0:o;21515:166::-;21612:12;;21602:6;:22;;:49;;;-1:-1:-1;;;;;;21628:23:0;;;;;;:15;:23;;;;;;;;21602:49;21594:79;;;;;-1:-1:-1;;;21594:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;22152:197;22239:4;;22201;;-1:-1:-1;;;;;22239:4:0;22225:10;:18;;;;:38;;-1:-1:-1;22257:6:0;;;;22256:7;22225:38;:62;;;;-1:-1:-1;22276:11:0;;;;22225:62;:116;;;;-1:-1:-1;;22328:13:0;;;22318:4;22300:24;;;;:9;:24;;;;;;;;:41;;;22152:197::o;22924:1766::-;15492:6;:13;;-1:-1:-1;;15492:13:0;15501:4;15492:13;;;23019:15:::1;::::0;23036:26:::1;::::0;15492:6;;23003:60:::1;::::0;:15:::1;:60::i;:::-;:79;;23070:12;;23003:79;;;23066:1;23003:79;22973:109;;23093:23;23119:59;23176:1;23119:52;23162:8;;23119:38;23137:19;23119:13;;:17;;:38;;;;:::i;:59::-;23093:85;;23189:20;23212:34;23230:15;23212:13;;:17;;:34;;;;:::i;:::-;23283:16;::::0;;23297:1:::1;23283:16:::0;;;23259:21:::1;23283:16:::0;;::::1;::::0;;23189:57;;-1:-1:-1;23283:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23283:16:0::1;23259:40;;23328:4;23310;23315:1;23310:7;;;;;;;;-1:-1:-1::0;;;;;23310:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23354:4:::1;::::0;23344:7;;23354:4;::::1;::::0;23344;;23354;;23344:7;::::1;;;;;-1:-1:-1::0;;;;;23344:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;23429:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;23429:188:0;;::::1;::::0;::::1;::::0;;;23371:21:::1;23429:188:::0;;;;;;23571:4:::1;23429:188:::0;;;;;;23591:15:::1;23429:188:::0;;;;;;;;;;;;;;;;;;;;;23395:21:::1;::::0;23429:6;;;::::1;::::0;:57:::1;::::0;23501:12;;23371:21;;23544:4;;23429:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;23371:21;23429:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23630:17;23650:40;23676:13;23650:21;:25;;:40;;;;:::i;:::-;23630:60:::0;-1:-1:-1;23703:19:0::1;23725:40;23738:26;:19:::0;23762:1:::1;23738:23;:26::i;:::-;23725:8;::::0;;:12:::1;:40::i;:::-;23703:62:::0;-1:-1:-1;23786:26:0::1;23815:58;23871:1;23815:51;23703:62:::0;23815:51;:9;23829:19;23815:13:::1;:34::i;:58::-;23786:87;;23884:27;23914:45;23947:11;23914:28;23928:13;;23914:9;:13;;:28;;;;:::i;:45::-;23884:75;;23970:26;23999:44;24031:11;23999:27;24013:12;;23999:9;:13;;:27;;;;:::i;:44::-;23970:73;;24060:11;;;;;;;;;-1:-1:-1::0;;;;;24060:11:0::1;-1:-1:-1::0;;;;;24060:19:0::1;;24087;24060:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;24056:65:::0;24160:20:::1;::::0;24152:77:::1;::::0;24132:15:::1;::::0;-1:-1:-1;;;;;24160:20:0::1;::::0;24219:5:::1;::::0;24194:18;;24132:15;24152:77;24132:15;24152:77;24194:18;24160:20;24219:5;24152:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;24303:5:0::1;::::0;-1:-1:-1;;24324:19:0;;;-1:-1:-1;24321:362:0::1;;24359:6;::::0;24533:21:::1;::::0;24359:244:::1;::::0;;-1:-1:-1;;;24359:244:0;;24435:4:::1;24359:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;24533:21:0;;::::1;24359:244:::0;;;;24573:15:::1;24359:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;24389:18;;24359:244;;;;;::::1;::::0;;;;;;;;;24389:18;24359:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;24359:244:0;24623:48;;;;;24359:244:::1;24623:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;24321:362;-1:-1:-1::0;;15510:6:0;:14;;-1:-1:-1;;15510:14:0;;;-1:-1:-1;;;;;;;;;22924:1766:0:o;21689:114::-;-1:-1:-1;;;;;21776:19:0;21751:4;21776:19;;;:11;:19;;;;;;;;21775:20;;21689:114::o;21811:333::-;21878:7;21898:17;21918:40;21943:14;;21918:20;21929:8;;21918:6;:10;;:20;;;;:::i;:40::-;22016:4;21998:24;;;;:9;:24;;;;;;21898:60;;-1:-1:-1;21998:39:0;;21898:60;21998:28;:39::i;:::-;21989:4;21971:24;;;;:9;:24;;;;;;;;;:66;;;;22053:42;;;;;;;21989:4;;-1:-1:-1;;;;;22053:42:0;;;;;;;;;;;;;22115:21;:6;22126:9;22115:10;:21::i;:::-;22108:28;21811:333;-1:-1:-1;;;;21811:333:0:o

Swarm Source

ipfs://539bc9ff65b022ab24146bee28999c2f576fe5f91d6fb40665f8e096bcf0a66b
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.