Contract 0x25096f414C11A41C802A01bFa4210D76c88dA838

 

Contract Overview

Balance:
11.657056931416170753 BNB

BNB Value:
$6,533.66 (@ $560.49/BNB)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x74431837c4086da765a7cbab03285c83254230fd2f9f1b1611568f3de2ea0d39Transfer131040872021-12-01 13:19:334 days 19 hrs ago0xcbbdd25ec155d0b7db5d37f76dd7c5d82133ae66 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00468205
0xff0cb0248750dd70667a8a248cf45c0ec2524501924c7f99f402c736f31be1faApprove130145092021-11-28 4:20:578 days 4 hrs ago0x33b37fa5c7ec986fdfd52edd16597d287ef0d88a IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00007238
0xf568d89f72feafa308419032f931b7ba1eefa7cfc12b67f0f67f9db9e1a70468Approve129659062021-11-26 8:39:2710 days 24 mins ago0x806b7d3f59a199cb2b599e11d00e11abf18e81cf IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000083555472
0x6c47ceb662b9640ef003a6a92f5a2b956977496ddd676b290ba2322070068e45Approve129121802021-11-24 7:53:4312 days 1 hr ago0xde4ffc688b31f36a1a595ac05fb987d1d5044b13 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00007238
0x43ab5760984ceac10388bad768aaf1e7e6970414fc719249cb114713d338f4dcApprove128625582021-11-22 12:54:3513 days 20 hrs ago0xcc764379c51c711a0dd3054664d6f6470089cfea IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x558cb351208dfb607452f9d3ef6b4b5f0c4ef33cc8ee6186189a7af554b3794eApprove128322562021-11-21 11:00:0214 days 22 hrs ago0x11ef72795691570b28277043d344d969f749a837 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xfdcee74117bfc0ef592bdbe0cde4af9d9d60bb9266218dfd81cf914353fb3435Approve126101262021-11-13 9:18:5622 days 23 hrs ago0x71ae088c3eae2c982f428b6845eeecfccc6015be IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xa5d825c3004e40f39d417789acd80556744b8a7350f0870de3a92da76f5180d7Approve125514502021-11-11 6:42:5925 days 2 hrs ago0xb7a732b47adbaac808e599b4b3c22f8f7dadcf70 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x8935b92c9677e4115f3506000a8b383e338b7e0cd81ca33f57ed01b52d5e6079Approve124891152021-11-09 1:22:3527 days 7 hrs ago0xf29d2392b86c12898b8215b51f84ba455cb69df2 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xd4a97d7f65040ce89a4344d06751b13b7bf739639985d30e69f587afe76ae5a1Approve124743942021-11-08 12:53:2827 days 20 hrs ago0x5a73ddd5090b60d9f0f35886a2fea55f9ceb7d74 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x7432358131271f44e731d1c03341a1e750e7a93f539c1e91c8395000cfc708c7Approve124630262021-11-08 3:23:2628 days 5 hrs ago0xc336c970e5fa27d1f72e4e9939ee09dae68ed97b IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x668705c81be765a673edc0de5776a7eeb0de93cde03c529024005cdf56e7a50eApprove124062182021-11-06 3:41:1930 days 5 hrs ago0x91a8add0f3ffb9eef31b60eb8e66465d559d02e2 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000310345
0xa138d2debae5f7fd352ea0b6e2787789e49cc436300c2a273dff7c0d2bf3bd34Approve123626392021-11-04 14:56:2531 days 18 hrs ago0x3eca2e8640c1d66011910c04883e0f2d39389744 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000310345
0x60eb5232a805bb45119a0b625ca9d3ed93994fab6e8c47b1a5840496eb38adf4Approve123513722021-11-04 4:52:1132 days 4 hrs ago0x806b7d3f59a199cb2b599e11d00e11abf18e81cf IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x39b2376ccc14a196171160607df953d21d2a348b8a39c28f834017642d9b5e8fApprove122717062021-11-01 8:15:4435 days 48 mins ago0xdd5c7ea2f57fdadc5322fb013e75e8697c9b72e7 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x2d39a18590348d7460c5a55b7cf823899e54b0752f13963749710f384b583bb2Approve121177552021-10-26 21:37:2440 days 11 hrs ago0x92ff1b84caecc5d89dc62c838076c9c9550c4191 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00017601
0x1ecee13b56b6fbbad360efeb490589b5137c5d54da4720e2fd3897b5f4fc8816Approve119425842021-10-20 17:40:1246 days 15 hrs ago0x02100194a72da4092500a2aa153e109b45a9f134 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000086856
0xdb6c266b9ebc6155bc6c98550039aba9f9c8920b9c83e72d536a6eb08ba400c0Approve118815922021-10-18 14:06:2848 days 18 hrs ago0xcf0f3caae5d08661a4fae267ca2386ba6974a9a0 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xcb85b6a8d8eb20d99c416e933531289d489a3bd2b57111142a91abb1d295c26bApprove117071742021-10-12 11:40:2654 days 21 hrs ago0x1ace19f447723b16eb2892277b538d41e17dd489 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0x6ad73bee452a2957582bb3748c0adcf229e7a215fe7e7734d0340c5e9c385ec6Approve115933902021-10-08 11:52:5658 days 21 hrs ago0x4368f87aaad716da27d41e5f2364f72a1aad4539 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xc2f2d6995ca230713c1a629ca47656f536a24672e3e04b0d3ca50216827187b9Approve115684132021-10-07 15:03:2859 days 18 hrs ago0x7360542f859422a58727f407d0fa0877855f09b6 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xfd168d9e70c738b7a10260be708453bdda6f887cce30890a1fa6ee520cde4966Approve115084392021-10-05 13:00:3261 days 20 hrs ago0x7eb5893c4507844a4497751d374d0733658fca4c IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00007238
0xb504c6e4ff9d9cca74ebbb6da1bcf0ddf8517ae23ad200ddec232493fb466694Approve115076732021-10-05 12:22:1461 days 20 hrs ago0x93ed33ecd6d886bce9488668f6088bb738508405 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.00026601
0x9b1ee8a6c86b9a2fed5eacedf5c625566f9a41650d3451361ee7dd3d864ce515Approve114184602021-10-02 9:42:0364 days 23 hrs ago0x070e6154e78c525aa2b31c7aa6c9b990653f5cd6 IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
0xa793ada0ea34944507fedef9b1b7bc7d958108ee779b9f965c47a6e99c389b32Approve112057742021-09-24 22:43:3872 days 10 hrs ago0x2a92e2189c698c041084d100849ec80d177392af IN  0x25096f414c11a41c802a01bfa4210d76c88da8380 BNB0.000221675
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x64422565c68e871743c084fa723c57e1787416fa33621b1f084ce744208d39f7131041732021-12-01 13:24:204 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008689855655100188 BNB
0x64422565c68e871743c084fa723c57e1787416fa33621b1f084ce744208d39f7131041732021-12-01 13:24:204 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004344927827550094 BNB
0x64422565c68e871743c084fa723c57e1787416fa33621b1f084ce744208d39f7131041732021-12-01 13:24:204 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013034783482650282 BNB
0x64422565c68e871743c084fa723c57e1787416fa33621b1f084ce744208d39f7131041732021-12-01 13:24:204 days 19 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052139133930601131 BNB
0x74431837c4086da765a7cbab03285c83254230fd2f9f1b1611568f3de2ea0d39131040872021-12-01 13:19:334 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008699009033086628 BNB
0x74431837c4086da765a7cbab03285c83254230fd2f9f1b1611568f3de2ea0d39131040872021-12-01 13:19:334 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004349504516543314 BNB
0x74431837c4086da765a7cbab03285c83254230fd2f9f1b1611568f3de2ea0d39131040872021-12-01 13:19:334 days 19 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013048513549629943 BNB
0x74431837c4086da765a7cbab03285c83254230fd2f9f1b1611568f3de2ea0d39131040872021-12-01 13:19:334 days 19 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052194054198519772 BNB
0x5b094bb1dfee953eb4c3bbd045e2cdaf25d3f5d4ad15e5dd60ab1479e57e092a130794642021-11-30 15:13:265 days 17 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008714239985295082 BNB
0x5b094bb1dfee953eb4c3bbd045e2cdaf25d3f5d4ad15e5dd60ab1479e57e092a130794642021-11-30 15:13:265 days 17 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004357119992647541 BNB
0x5b094bb1dfee953eb4c3bbd045e2cdaf25d3f5d4ad15e5dd60ab1479e57e092a130794642021-11-30 15:13:265 days 17 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013071359977942623 BNB
0x5b094bb1dfee953eb4c3bbd045e2cdaf25d3f5d4ad15e5dd60ab1479e57e092a130794642021-11-30 15:13:265 days 17 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052285439911770492 BNB
0x8e4a5c46b2eb512e9fd05b8660418bf117e40ee2b08d81b409e3f0b0038c745b128961202021-11-23 17:55:1712 days 15 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008698137877830374 BNB
0x8e4a5c46b2eb512e9fd05b8660418bf117e40ee2b08d81b409e3f0b0038c745b128961202021-11-23 17:55:1712 days 15 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004349068938915187 BNB
0x8e4a5c46b2eb512e9fd05b8660418bf117e40ee2b08d81b409e3f0b0038c745b128961202021-11-23 17:55:1712 days 15 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013047206816745562 BNB
0x8e4a5c46b2eb512e9fd05b8660418bf117e40ee2b08d81b409e3f0b0038c745b128961202021-11-23 17:55:1712 days 15 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052188827266982248 BNB
0x8fa34fe01d96c088e17e18fb8e8b319f472e135d60a5ef6a8dd6c03b83a0740b128625712021-11-22 12:55:2313 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008698137877830374 BNB
0x8fa34fe01d96c088e17e18fb8e8b319f472e135d60a5ef6a8dd6c03b83a0740b128625712021-11-22 12:55:2313 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004349068938915187 BNB
0x8fa34fe01d96c088e17e18fb8e8b319f472e135d60a5ef6a8dd6c03b83a0740b128625712021-11-22 12:55:2313 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013047206816745562 BNB
0x8fa34fe01d96c088e17e18fb8e8b319f472e135d60a5ef6a8dd6c03b83a0740b128625712021-11-22 12:55:2313 days 20 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052188827266982248 BNB
0x2366e85966f6c1148e87974d6913c4de87ca3d2b5aa617dbe45b749783847c02128625672021-11-22 12:55:0413 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008718720245999642 BNB
0x2366e85966f6c1148e87974d6913c4de87ca3d2b5aa617dbe45b749783847c02128625672021-11-22 12:55:0413 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380xc336c970e5fa27d1f72e4e9939ee09dae68ed97b0.004359360122999821 BNB
0x2366e85966f6c1148e87974d6913c4de87ca3d2b5aa617dbe45b749783847c02128625672021-11-22 12:55:0413 days 20 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da838 0x9763f995a754831da07ad109ea385e0505bd84c00.013078080368999463 BNB
0x2366e85966f6c1148e87974d6913c4de87ca3d2b5aa617dbe45b749783847c02128625672021-11-22 12:55:0413 days 20 hrs ago PancakeSwap: Router v2 0x25096f414c11a41c802a01bfa4210d76c88da8380.052312321475997852 BNB
0x9da4b0cd8852334b4f433e13fd4345bf094a4f82509c73f3374a55158e9fa077128322652021-11-21 11:00:3414 days 22 hrs ago 0x25096f414c11a41c802a01bfa4210d76c88da8380x5d8fd08356cf3c2ac3fbec29826731f288df454f0.008752694952247328 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ONELOVE

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyys/:-..-:/oyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyy+.    ``    -yyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyy-   :oyyyyo/+yyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyy/  `oyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyo/-.`  .yyyyyyyyyy+//oyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyy+.   `..`.yyyyyyyyys`  :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyy:   :syyyyyyyyyyyys/`   :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyo   oyyyyyyyyyyyy.`      :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyy/  .yyyyyyyyyyyyy..-/o:  :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyo   +yyyyyyyyyyyyyyyyy:  :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyy:   :oyyyyyyyyyyyyyyy:  :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyo.    ```````````````  :yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyys/:-................./yyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
*/

//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 BUSD = IBEP20(0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56);
    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;

    uint256 public minPeriod = 1 hours;
    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 = BUSD.balanceOf(address(this));

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

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

        uint256 amount = BUSD.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);
            BUSD.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 ONELOVE is IBEP20, Auth {
    using SafeMath for uint256;

    address BUSD = 0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56;
    address WBNB = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ONELOVE";
    string constant _symbol = "1LOVE";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100000000000000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply / 1000;

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

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

    uint256 liquidityFee = 300;
    uint256 buybackFee = 300;
    uint256 reflectionFee = 300;
    uint256 charityFee = 200;
    uint256 marketingFee = 100;
    uint256 totalFee = 1200;
    uint256 feeDenominator = 10000;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public charityFeeReceiver;

    uint256 targetLiquidity = 25;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;

    uint256 buybackMultiplierNumerator = 200;
    uint256 buybackMultiplierDenominator = 100;
    uint256 buybackMultiplierTriggeredAt;
    uint256 buybackMultiplierLength = 30 minutes;

    bool public autoBuybackEnabled = false;
    uint256 autoBuybackCap;
    uint256 autoBuybackAccumulator;
    uint256 autoBuybackAmount;
    uint256 autoBuybackBlockPeriod;
    uint256 autoBuybackBlockLast;

    DividendDistributor distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 20000; // 0.005%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        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;
        isTxLimitExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;
        isTxLimitExempt[marketingFeeReceiver] = true;
        isFeeExempt[charityFeeReceiver] = true;
        isTxLimitExempt[charityFeeReceiver] = true;
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0xC336C970e5fA27D1F72e4e9939Ee09DAe68Ed97b;
        charityFeeReceiver = 0x5D8FD08356CF3C2aC3fBEC29826731F288Df454F;

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

    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) {
        require(!isBlacklisted[recipient] && !isBlacklisted[msg.sender], 'You are blacklisted');
        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);
    }

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

        if(shouldSwapBack()){ swapBack(); }
        if(shouldAutoBuyback()){ triggerAutoBuyback(); }

        if(!launched() && recipient == pair){ require(_balances[sender] > 0); launch(); }

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

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

        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 blacklistAddress(address account, bool value) external onlyOwner{
        isBlacklisted[account] = value;
    }
    
    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 getTotalFee(bool selling) public view returns (uint256) {
        if(launchedAt + 1 >= block.number){ return feeDenominator.sub(1); }
        if(selling && buybackMultiplierTriggeredAt.add(buybackMultiplierLength) > block.timestamp){ return getMultipliedFee(); }
        return totalFee;
    }

    function getMultipliedFee() public view returns (uint256) {
        uint256 remainingTime = buybackMultiplierTriggeredAt.add(buybackMultiplierLength).sub(block.timestamp);
        uint256 feeIncrease = totalFee.mul(buybackMultiplierNumerator).div(buybackMultiplierDenominator).sub(totalFee);
        return totalFee.add(feeIncrease.mul(remainingTime).div(buybackMultiplierLength));
    }

    function takeFee(address sender, address receiver, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(getTotalFee(receiver == pair)).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 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);
        uint256 amountBNBCharity = amountBNB.mul(charityFee).div(totalBNBFee);

        try distributor.deposit{value: amountBNBReflection}() {} catch {}
        payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        payable(charityFeeReceiver).call{value: amountBNBCharity, gas: 30000}("");


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

    function shouldAutoBuyback() internal view returns (bool) {
        return msg.sender != pair
            && !inSwap
            && autoBuybackEnabled
            && autoBuybackBlockLast + autoBuybackBlockPeriod <= block.number
            && address(this).balance >= autoBuybackAmount;
    }

    function triggerLoveBuyback(uint256 amount, bool triggerBuybackMultiplier) external authorized {
        buyTokens(amount, DEAD);
        if(triggerBuybackMultiplier){
            buybackMultiplierTriggeredAt = block.timestamp;
            emit BuybackMultiplierActive(buybackMultiplierLength);
        }
    }
    
    function clearBuybackMultiplier() external authorized {
        buybackMultiplierTriggeredAt = 0;
    }

    function triggerAutoBuyback() internal {
        buyTokens(autoBuybackAmount, DEAD);
        autoBuybackBlockLast = block.number;
        autoBuybackAccumulator = autoBuybackAccumulator.add(autoBuybackAmount);
        if(autoBuybackAccumulator > autoBuybackCap){ autoBuybackEnabled = false; }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = WBNB;
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function setAutoBuybackSettings(bool _enabled, uint256 _cap, uint256 _amount, uint256 _period) external authorized {
        autoBuybackEnabled = _enabled;
        autoBuybackCap = _cap;
        autoBuybackAccumulator = 0;
        autoBuybackAmount = _amount;
        autoBuybackBlockPeriod = _period;
        autoBuybackBlockLast = block.number;
    }

    function setBuybackMultiplierSettings(uint256 numerator, uint256 denominator, uint256 length) external authorized {
        require(numerator / denominator <= 2 && numerator > denominator);
        buybackMultiplierNumerator = numerator;
        buybackMultiplierDenominator = denominator;
        buybackMultiplierLength = length;
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function setTxLimit(uint256 amount) external authorized {
        require(amount >= _totalSupply / 1000);
        _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 setFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _charityFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        buybackFee = _buybackFee;
        reflectionFee = _reflectionFee;
        marketingFee = _marketingFee;
        charityFee = _charityFee;
        totalFee = _liquidityFee.add(_buybackFee).add(_reflectionFee).add(_marketingFee).add(_charityFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/4);
    }

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

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

    event AutoLiquify(uint256 amountBNB, uint256 amountBOG);
    event BuybackMultiplierActive(uint256 duration);
}

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":"uint256","name":"duration","type":"uint256"}],"name":"BuybackMultiplierActive","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":[{"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":"autoBuybackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"charityFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearBuybackMultiplier","outputs":[],"stateMutability":"nonpayable","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":"getMultipliedFee","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":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_cap","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"}],"name":"setAutoBuybackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"setBuybackMultiplierSettings","outputs":[],"stateMutability":"nonpayable","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"},{"internalType":"address","name":"_charityFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buybackFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_charityFee","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":"setIsTxLimitExempt","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"triggerBuybackMultiplier","type":"bool"}],"name":"triggerLoveBuyback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811673e9e7cea3dedca5984780bafc599bd69add087d561790915560038054821673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c17905560048054821661dead17905560058054909116905569152d02c7e14af680000060065568056bc75e2d6310000060075561012c600e819055600f81905560105560c86011819055606460128190556104b060135561271060145560196018819055819055601d91909155601e556107086020556021805460ff199081169091556207a120602855602980549091166001179055674563918244f40000602a55348015620000f757600080fd5b50600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff1916909217909155601a80549092167310ed43c718714eb63d5aa57b78b54704e256024e1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b1580156200018757600080fd5b505afa1580156200019c573d6000803e3d6000fd5b505050506040513d6020811015620001b357600080fd5b5051600354604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200020b57600080fd5b505af115801562000220573d6000803e3d6000fd5b505050506040513d60208110156200023757600080fd5b5051601b80546001600160a01b0319166001600160a01b03928316179055306000908152600960209081526040808320601a80548616855292529182902060001990555490519116906200028b9062000426565b6001600160a01b03909116815260405190819003602001906000f080158015620002b9573d6000803e3d6000fd5b50602780546001600160a01b039283166001600160a01b031991821617909155336000818152600a60208181526040808420805460ff199081166001908117909255600b8085528387208054831684179055601680548b168852868652848820805484168517905580548b1688528186528488208054841685179055601780548c168952968652848820805484168517905586548b1688529085528387208054831684179055601b548a168752600c855283872080548316841790553087528387208054831684179055600454909916865282862080549091169091179055601580548716861790558654861673c336c970e5fa27d1f72e4e9939ee09dae68ed97b179096558154909416735d8fd08356cf3c2ac3fbec29826731f288df454f1790556006548282526008845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a362000434565b610ec28062002b6c83390190565b61272880620004446000396000f3fe6080604052600436106102815760003560e01c8063893d20e81161014f578063d7c01032116100c1578063f1f3bca31161007a578063f1f3bca314610999578063f2fde38b146109c5578063f708a64f146109f8578063f84ba65d14610a33578063f887ea4014610a6e578063fe9fbb8014610a8357610288565b8063d7c010321461088a578063d806d12f146108cf578063dd62ed3e146108e4578063df20fd491461091f578063e96fada214610951578063f0b37c041461096657610288565b8063aaa224e811610113578063aaa224e8146107d9578063b210b06d146107ee578063b6a5d7de14610803578063bf56b37114610836578063ca33e64c1461084b578063d51ed1c81461086057610288565b8063893d20e81461071b57806395d89b411461074c5780639d1944f514610761578063a8aa1b311461078b578063a9059cbb146107a057610288565b80632f54bf6e116101f3578063658d4b7f116101ac578063658d4b7f146106095780636ddd17131461064457806370a08231146106595780637a2a96801461068c5780637d1db4a5146106be57806386f6c3c1146106d357610288565b80632f54bf6e146104fe578063313ce567146105315780633bb8a8d41461055c578063455a439614610571578063571ac8b0146105ac5780635c85974f146105df57610288565b806318160ddd1161024557806318160ddd146103fb578063201e7991146104105780632375ce401461044057806323b872dd146104765780632b112e49146104b95780632d48e896146104ce57610288565b80630445b6671461028d578063048c7baf146102b457806306fdde03146102f4578063095ea7b31461037e5780631161ae39146103cb57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610ab6565b60408051918252519081900360200190f35b3480156102c057600080fd5b506102f2600480360360808110156102d757600080fd5b50803515159060208101359060408101359060600135610abc565b005b34801561030057600080fd5b50610309610b2d565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034357818101518382015260200161032b565b50505050905090810190601f1680156103705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038a57600080fd5b506103b7600480360360408110156103a157600080fd5b506001600160a01b038135169060200135610b4e565b604080519115158252519081900360200190f35b3480156103d757600080fd5b506103b7600480360360408110156103ee57600080fd5b5080359060200135610bb5565b34801561040757600080fd5b506102a2610bc9565b34801561041c57600080fd5b506102f26004803603604081101561043357600080fd5b5080359060200135610bcf565b34801561044c57600080fd5b506102f26004803603606081101561046357600080fd5b5080359060208101359060400135610c22565b34801561048257600080fd5b506103b76004803603606081101561049957600080fd5b506001600160a01b03813581169160208101359091169060400135610c9a565b3480156104c557600080fd5b506102a2610d5c565b3480156104da57600080fd5b506102f2600480360360408110156104f157600080fd5b5080359060200135610da5565b34801561050a57600080fd5b506103b76004803603602081101561052157600080fd5b50356001600160a01b0316610e5d565b34801561053d57600080fd5b50610546610e74565b6040805160ff9092168252519081900360200190f35b34801561056857600080fd5b506103b7610e79565b34801561057d57600080fd5b506102f26004803603604081101561059457600080fd5b506001600160a01b0381351690602001351515610e82565b3480156105b857600080fd5b506103b7600480360360208110156105cf57600080fd5b50356001600160a01b0316610ef0565b3480156105eb57600080fd5b506102f26004803603602081101561060257600080fd5b5035610efe565b34801561061557600080fd5b506102f26004803603604081101561062c57600080fd5b506001600160a01b0381351690602001351515610f65565b34801561065057600080fd5b506103b7610fd8565b34801561066557600080fd5b506102a26004803603602081101561067c57600080fd5b50356001600160a01b0316610fe1565b34801561069857600080fd5b506102f2600480360360408110156106af57600080fd5b50803590602001351515610ffc565b3480156106ca57600080fd5b506102a26110a1565b3480156106df57600080fd5b506102f2600480360360c08110156106f657600080fd5b5080359060208101359060408101359060608101359060808101359060a001356110a7565b34801561072757600080fd5b50610730611139565b604080516001600160a01b039092168252519081900360200190f35b34801561075857600080fd5b50610309611148565b34801561076d57600080fd5b506102f26004803603602081101561078457600080fd5b5035611167565b34801561079757600080fd5b506107306111c3565b3480156107ac57600080fd5b506103b7600480360360408110156107c357600080fd5b506001600160a01b0381351690602001356111d2565b3480156107e557600080fd5b5061073061125d565b3480156107fa57600080fd5b506102f261126c565b34801561080f57600080fd5b506102f26004803603602081101561082657600080fd5b50356001600160a01b03166112bb565b34801561084257600080fd5b506102a2611325565b34801561085757600080fd5b5061073061132b565b34801561086c57600080fd5b506102a26004803603602081101561088357600080fd5b503561133a565b34801561089657600080fd5b506102f2600480360360608110156108ad57600080fd5b506001600160a01b03813581169160208101358216916040909101351661137a565b3480156108db57600080fd5b506102a2611401565b3480156108f057600080fd5b506102a26004803603604081101561090757600080fd5b506001600160a01b0381358116916020013516611474565b34801561092b57600080fd5b506102f26004803603604081101561094257600080fd5b5080351515906020013561149f565b34801561095d57600080fd5b506107306114fe565b34801561097257600080fd5b506102f26004803603602081101561098957600080fd5b50356001600160a01b031661150d565b3480156109a557600080fd5b506102a2600480360360208110156109bc57600080fd5b50351515611571565b3480156109d157600080fd5b506102f2600480360360208110156109e857600080fd5b50356001600160a01b03166115cb565b348015610a0457600080fd5b506102f260048036036040811015610a1b57600080fd5b506001600160a01b038135169060200135151561167c565b348015610a3f57600080fd5b506102f260048036036040811015610a5657600080fd5b506001600160a01b03813516906020013515156117ef565b348015610a7a57600080fd5b50610730611862565b348015610a8f57600080fd5b506103b760048036036020811015610aa657600080fd5b50356001600160a01b0316611871565b602a5481565b610ac533611871565b610b04576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6021805460ff191694151594909417909355602291909155600060235560245560255543602655565b6040805180820190915260078152664f4e454c4f564560c81b602082015290565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b600082610bc18361133a565b119392505050565b60065490565b610bd833611871565b610c17576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601891909155601955565b610c2b33611871565b610c6a576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6002828481610c7557fe5b0411158015610c8357508183115b610c8c57600080fd5b601d92909255601e55602055565b6001600160a01b038316600090815260096020908152604080832033845290915281205460001914610d47576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610d2291849061188f565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b610d52848484611926565b90505b9392505050565b600554600090610da090610d78906001600160a01b0316610fe1565b600454610d9a90610d91906001600160a01b0316610fe1565b60065490611c6d565b90611c6d565b905090565b610dae33611871565b610ded576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b602754604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b158015610e4157600080fd5b505af1158015610e55573d6000803e3d6000fd5b505050505050565b6000546001600160a01b038281169116145b919050565b600990565b60215460ff1681565b610e8b33610e5d565b610ec5576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6000610baf82600019610b4e565b610f0733611871565b610f46576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6103e860065481610f5357fe5b04811015610f6057600080fd5b600755565b610f6e33611871565b610fad576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60295460ff1681565b6001600160a01b031660009081526008602052604090205490565b61100533611871565b611044576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b60045461105b9083906001600160a01b0316611caf565b801561109d5742601f556020805460408051918252517f39d2389ec5c1fa77b2c0d374bc61b6d7bd97ccba280fcdeb4e9c7644898d7c3a929181900390910190a15b5050565b60075481565b6110b033611871565b6110ef576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b600e869055600f8590556010849055601283905560118290556111208261111a858188818c8c611e06565b90611e06565b60135560148190556004810460135410610e5557600080fd5b6000546001600160a01b031690565b604080518082019091526005815264314c4f564560d81b602082015290565b61117033611871565b6111af576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b620b71b081106111be57600080fd5b602855565b601b546001600160a01b031681565b6001600160a01b0382166000908152600d602052604081205460ff1615801561120b5750336000908152600d602052604090205460ff16155b611252576040805162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b604482015290519081900360640190fd5b610d55338484611926565b6017546001600160a01b031681565b61127533611871565b6112b4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6000601f55565b6112c433610e5d565b6112fe576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b601c5481565b6015546001600160a01b031681565b6000610baf611347610d5c565b601b546113749061136d90600290611367906001600160a01b0316610fe1565b90611e60565b8590611e60565b90611eb9565b61138333611871565b6113c2576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b601580546001600160a01b039485166001600160a01b031991821617909155601680549385169382169390931790925560178054919093169116179055565b60008061141f42610d9a602054601f54611e0690919063ffffffff16565b90506000611446601354610d9a601e54611374601d54601354611e6090919063ffffffff16565b905061146d6114646020546113748585611e6090919063ffffffff16565b60135490611e06565b9250505090565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6114a833611871565b6114e7576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6029805460ff191692151592909217909155602a55565b6016546001600160a01b031681565b61151633610e5d565b611550576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b600043601c54600101106115945760145461158d906001611c6d565b9050610e6f565b8180156115b65750426115b4602054601f54611e0690919063ffffffff16565b115b156115c35761158d611401565b505060135490565b6115d433610e5d565b61160e576040805162461bcd60e51b815260206004820152600660248201526510a7aba722a960d11b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61168533611871565b6116c4576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03821630148015906116eb5750601b546001600160a01b03838116911614155b6116f457600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556117915760275460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b15801561177457600080fd5b505af1158015611788573d6000803e3d6000fd5b5050505061109d565b6027546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015610e4157600080fd5b6117f833611871565b611837576040805162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b601a546001600160a01b031681565b6001600160a01b031660009081526001602052604090205460ff1690565b6000818484111561191e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118e35781810151838201526020016118cb565b50505050905090810190601f1680156119105780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b602b5460009060ff16156119465761193f848484611efb565b9050610d55565b6119508483611fdc565b61195861204a565b1561196557611965612099565b61196d6124ef565b1561197a5761197a612541565b611982612588565b15801561199c5750601b546001600160a01b038481169116145b156119cb576001600160a01b0384166000908152600860205260409020546119c357600080fd5b6119cb612590565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260089091529190912054611a1d91849061188f565b6001600160a01b038516600090815260086020526040812091909155611a4285612596565b611a4c5782611a57565b611a578585856125b5565b6001600160a01b038516600090815260086020526040902054909150611a7d9082611e06565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600c909152205460ff16611b21576027546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611b0e57600080fd5b505af1925050508015611b1f575060015b505b6001600160a01b0384166000908152600c602052604090205460ff16611bb2576027546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b158015611b9f57600080fd5b505af1925050508015611bb0575060015b505b602754602854604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b158015611c0557600080fd5b505af1925050508015611c16575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000610d5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061188f565b602b805460ff19166001179055604080516002808252606082018352600092602083019080368337505060035482519293506001600160a01b031691839150600090611cf757fe5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110611d2557fe5b6001600160a01b03928316602091820292909201810191909152601a5460405163b6f9de9560e01b815260006004820181815287861660448401524260648401819052608060248501908152885160848601528851959097169663b6f9de95968b9694958a958c95939260a49092019187810191028083838b5b83811015611db7578181015183820152602001611d9f565b50505050905001955050505050506000604051808303818588803b158015611dde57600080fd5b505af1158015611df2573d6000803e3d6000fd5b5050602b805460ff19169055505050505050565b600082820183811015610d55576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082611e6f57506000610baf565b82820282848281611e7c57fe5b0414610d555760405162461bcd60e51b81526004018080602001828103825260218152602001806126d26021913960400191505060405180910390fd5b6000610d5583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061266c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600890915291822054611f4c91849061188f565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611f7b9083611e06565b6001600160a01b0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b6007548111158061200557506001600160a01b0382166000908152600b602052604090205460ff165b61109d576040805162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015290519081900360640190fd5b601b546000906001600160a01b0316331480159061206b5750602b5460ff16155b8015612079575060295460ff165b8015610da0575050602a5430600090815260086020526040902054101590565b602b805460ff191660011790556018546019546000916120b891610bb5565b6120c457600e546120c7565b60005b905060006120eb600261137460135461137486602a54611e6090919063ffffffff16565b9050600061210482602a54611c6d90919063ffffffff16565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061213857fe5b6001600160a01b03928316602091820292909201015260035482519116908290600190811061216357fe5b6001600160a01b03928316602091820292909201810191909152601a5460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b838110156121fd5781810151838201526020016121e5565b505050509050019650505050505050600060405180830381600087803b15801561222657600080fd5b505af115801561223a573d6000803e3d6000fd5b5050505060006122538247611c6d90919063ffffffff16565b9050600061226e612265886002611eb9565b60135490611c6d565b9050600061228360026113748481878d611e60565b905060006122a08361137460105487611e6090919063ffffffff16565b905060006122bd8461137460125488611e6090919063ffffffff16565b905060006122da8561137460115489611e6090919063ffffffff16565b9050602760009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561232c57600080fd5b505af19350505050801561233e575060015b506016546040516001600160a01b03909116906175309084906000818181858888f193505050503d8060008114612391576040519150601f19603f3d011682016040523d82523d6000602084013e612396565b606091505b50506017546040516001600160a01b0390911691506175309083906000818181858888f193505050503d80600081146123eb576040519150601f19603f3d011682016040523d82523d6000602084013e6123f0565b606091505b50508a1590506124d857601a546015546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561246f57600080fd5b505af1158015612483573d6000803e3d6000fd5b50505050506040513d606081101561249a57600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050602b805460ff19169055505050505050505050565b601b546000906001600160a01b031633148015906125105750602b5460ff16155b801561251e575060215460ff165b80156125305750436025546026540111155b8015610da057505060245447101590565b60245460045461255a91906001600160a01b0316611caf565b4360265560245460235461256d91611e06565b60238190556022541015612586576021805460ff191690555b565b601c54151590565b43601c55565b6001600160a01b03166000908152600a602052604090205460ff161590565b601454601b5460009182916125e79190611374906125e0906001600160a01b03898116911614611571565b8690611e60565b306000908152600860205260409020549091506126049082611e06565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b038916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36126638382611c6d565b95945050505050565b600081836126bb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156118e35781810151838201526020016118cb565b5060008385816126c757fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212202e5a079c9759aee37939d4d085b9e0491aec33dcbac98fb4e1d341d417d38bb164736f6c634300070600336080604052600180546001600160a01b031990811673e9e7cea3dedca5984780bafc599bd69add087d56179091556002805490911673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790556ec097ce7bc90715b34b9f1000000000600c55610e10600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610ec2380380610ec2833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca577310ed43c718714eb63d5aa57b78b54704e256024e6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610dbc806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f761075b565b34801561026057600080fd5b506100f7610761565b34801561027557600080fd5b50610142610767565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610772565b3480156102b457600080fd5b506100f7610854565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b03821660009081526007602052604090205415610301576103018261085a565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610982565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e3565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ad0565b90610b1b565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b75565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b75565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ad0565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b50516040805160028082526060820183529293506000929091602083019080368337505060025482519293506001600160a01b03169183915060009061059757fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105c157fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b8381101561065357818101518382015260200161063b565b50505050905001955050505050506000604051808303818588803b15801561067a57600080fd5b505af115801561068e573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071994508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e757600080fd5b505afa1580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b505190610ad0565b6009549091506107299082610b1b565b600955600854600c546107539161074a916107449085610b92565b90610beb565b600b5490610b1b565b600b55505050565b600b5481565b600a5481565b6107703361085a565b565b6000546001600160a01b0316331461078957600080fd5b600454806107975750610851565b6000805a905060005b84831080156107ae57508381105b1561084c5783600f54106107c2576000600f555b6107ee6004600f54815481106107d457fe5b6000918252602090912001546001600160a01b0316610c2d565b1561081f5761081f6004600f548154811061080557fe5b6000918252602090912001546001600160a01b031661085a565b61083461082d5a8490610ad0565b8490610b1b565b92505a600f80546001908101909155909250016107a0565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087c57610851565b6000610887826103e8565b9050801561097e57600a5461089c9082610b1b565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f557600080fd5b505af1158015610909573d6000803e3d6000fd5b505050506040513d602081101561091f57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109549082610b1b565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b75565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f557fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2d57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7b57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aab57fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610b1283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c69565b90505b92915050565b600082820183811015610b12576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610b15600c54610744600b5485610b9290919063ffffffff16565b600082610ba157506000610b15565b82820282848281610bae57fe5b0414610b125760405162461bcd60e51b8152600401808060200182810382526021815260200180610d666021913960400191505060405180910390fd5b6000610b1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d00565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610b155750600e54610c62836103e8565b1192915050565b60008184841115610cf85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cbd578181015183820152602001610ca5565b50505050905090810190601f168015610cea5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610d4f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610cbd578181015183820152602001610ca5565b506000838581610d5b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212203c057d1a621802adcbf74e3687d82e893cc2576963a9908c8c6cf84c520d311464736f6c63430007060033

Deployed ByteCode Sourcemap

12734:15122:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14670:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;24007:359;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24007:359:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16198:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16620:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16620:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;27585:150;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27585:150:0;;;;;;;:::i;15928:88::-;;;;;;;;;;;;;:::i;26730:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26730:183:0;;;;;;;:::i;24374:342::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24374:342:0;;;;;;;;;;;;:::i;17230:364::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17230:364:0;;;;;;;;;;;;;;;;;:::i;27260:142::-;;;;;;;;;;;;;:::i;26921:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26921:183:0;;;;;;;:::i;4606:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4606:103:0;-1:-1:-1;;;;;4606:103:0;;:::i;16022:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14338:38;;;;;;;;;;;;;:::i;18674:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18674:122:0;;;;;;;;;;:::i;16844:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16844:116:0;-1:-1:-1;;;;;16844:116:0;;:::i;24901:145::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24901:145:0;;:::i;25409:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25409:120:0;;;;;;;;;;:::i;14633:30::-;;;;;;;;;;;;;:::i;16368:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16368:105:0;-1:-1:-1;;;;;16368:105:0;;:::i;22886:316::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22886:316:0;;;;;;;;;:::i;13249:49::-;;;;;;;;;;;;;:::i;25673:569::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25673:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16284:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;16284:78:0;;;;;;;;;;;;;;16108:84;;;;;;;;;;;;;:::i;27112:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27112:136:0;;:::i;14084:19::-;;;;;;;;;;;;;:::i;16968:254::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16968:254:0;;;;;;;;:::i;13927:33::-;;;;;;;;;;;;;:::i;23214:105::-;;;;;;;;;;;;;:::i;4279:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4279:94:0;-1:-1:-1;;;;;4279:94:0;;:::i;14112:25::-;;;;;;;;;;;;;:::i;13842:36::-;;;;;;;;;;;;;:::i;27410:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27410:167:0;;:::i;26250:308::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26250:308:0;;;;;;;;;;;;;;;;;;;:::i;19756:391::-;;;;;;;;;;;;;:::i;16479:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16479:133:0;;;;;;;;;;:::i;26566:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26566:156:0;;;;;;;;;:::i;13885:35::-;;;;;;;;;;;;;:::i;4449:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4449:97:0;-1:-1:-1;;;;;4449:97:0;;:::i;19442:306::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19442:306:0;;;;:::i;5006:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5006:173:0;-1:-1:-1;;;;;5006:173:0;;:::i;25054:347::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25054:347:0;;;;;;;;;;:::i;25537:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25537:128:0;;;;;;;;;;:::i;14053:24::-;;;;;;;;;;;;;:::i;4780:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4780:107:0;-1:-1:-1;;;;;4780:107:0;;:::i;14670:51::-;;;;:::o;24007:359::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;24133:18:::1;:29:::0;;-1:-1:-1;;24133:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;24173:14:::1;:21:::0;;;;-1:-1:-1;24205:22:0::1;:26:::0;24242:17:::1;:27:::0;24280:22:::1;:32:::0;24346:12:::1;24323:20;:35:::0;24007:359::o;16198:80::-;16270:5;;;;;;;;;;;;-1:-1:-1;;;16270:5:0;;;;16198:80;:::o;16620:216::-;16724:10;16695:4;16712:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;16712:32:0;;;;;;;;;;;:41;;;16769:37;;;;;;;16695:4;;16712:32;;16724:10;;16769:37;;;;;;;;-1:-1:-1;16824:4:0;16620:216;;;;;:::o;27585:150::-;27665:4;27721:6;27689:29;27709:8;27689:19;:29::i;:::-;:38;;27585:150;-1:-1:-1;;;27585:150:0:o;15928:88::-;16001:12;;15928:88;:::o;26730:183::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;26828:15:::1;:25:::0;;;;26864:26:::1;:41:::0;26730:183::o;24374:342::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;24534:1:::1;24519:11;24507:9;:23;;;;;;:28;;:55;;;;;24551:11;24539:9;:23;24507:55;24499:64;;;::::0;::::1;;24574:26;:38:::0;;;;24623:28:::1;:42:::0;24676:23:::1;:32:::0;24374:342::o;17230:364::-;-1:-1:-1;;;;;17350:19:0;;17330:4;17350:19;;;:11;:19;;;;;;;;17370:10;17350:31;;;;;;;;-1:-1:-1;;17350:46:0;17347:180;;17446:69;;;;;;;;;;;-1:-1:-1;;;17446:69:0;;;;;;;;-1:-1:-1;;;;;17446:19:0;;-1:-1:-1;17446:19:0;;;:11;:19;;;;;17466:10;17446:31;;;;;;;;;;:69;;17482:6;;17446:35;:69::i;:::-;-1:-1:-1;;;;;17412:19:0;;;;;;:11;:19;;;;;;;;17432:10;17412:31;;;;;;;:103;17347:180;17546:40;17560:6;17568:9;17579:6;17546:13;:40::i;:::-;17539:47;;17230:364;;;;;;:::o;27260:142::-;27388:4;;27313:7;;27340:54;;27378:15;;-1:-1:-1;;;;;27388:4:0;27378:9;:15::i;:::-;27367:4;;27340:33;;27357:15;;-1:-1:-1;;;;;27367:4:0;27357:9;:15::i;:::-;27340:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;27333:61;;27260:142;:::o;26921:183::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;27031:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;27031:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;27031:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26921:183:::0;;:::o;4606:103::-;4661:4;4696:5;-1:-1:-1;;;;;4685:16:0;;;4696:5;;4685:16;4606:103;;;;:::o;16022:80::-;13174:1;16022:80;:::o;14338:38::-;;;;;;:::o;18674:122::-;3995:19;4003:10;3995:7;:19::i;:::-;3987:38;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18758:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;18758:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18674:122::o;16844:116::-;16899:4;16923:29;16931:7;-1:-1:-1;;16923:7:0;:29::i;24901:145::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;25001:4:::1;24986:12;;:19;;;;;;24976:6;:29;;24968:38;;;::::0;::::1;;25017:12;:21:::0;24901:145::o;25409:120::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25493:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;25493:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25409:120::o;14633:30::-;;;;;;:::o;16368:105::-;-1:-1:-1;;;;;16452:18:0;16434:7;16452:18;;;:9;:18;;;;;;;16368:105::o;22886:316::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;23010:4:::1;::::0;22992:23:::1;::::0;23002:6;;-1:-1:-1;;;;;23010:4:0::1;22992:9;:23::i;:::-;23029:24;23026:169;;;23100:15;23069:28;:46:::0;23159:23:::1;::::0;;23135:48:::1;::::0;;;;;;::::1;::::0;;;;;;;;;::::1;23026:169;22886:316:::0;;:::o;13249:49::-;;;;:::o;25673:569::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;25858:12:::1;:28:::0;;;25897:10:::1;:24:::0;;;25932:13:::1;:30:::0;;;25973:12:::1;:28:::0;;;26012:10:::1;:24:::0;;;26058:86:::1;26025:11:::0;26058:69:::1;25988:13:::0;26058:69;25948:14;26058:69;25873:13;25910:11;26058:17:::1;:30::i;:::-;:34:::0;::::1;:50::i;:86::-;26047:8;:97:::0;26155:14:::1;:32:::0;;;26232:1:::1;26172:15:::0;26217:16:::1;26206:8;;:27;26198:36;;;::::0;::::1;16284:78:::0;16336:7;16354:5;-1:-1:-1;;;;;16354:5:0;16284:78;:::o;16108:84::-;16182:7;;;;;;;;;;;;-1:-1:-1;;;16182:7:0;;;;16108:84;:::o;27112:136::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;27202:6:::1;27196:3;:12;27188:21;;;::::0;::::1;;27220:14;:20:::0;27112:136::o;14084:19::-;;;-1:-1:-1;;;;;14084:19:0;;:::o;16968:254::-;-1:-1:-1;;;;;17074:24:0;;17048:4;17074:24;;;:13;:24;;;;;;;;17073:25;:55;;;;-1:-1:-1;17117:10:0;17103:25;;;;:13;:25;;;;;;;;17102:26;17073:55;17065:87;;;;;-1:-1:-1;;;17065:87:0;;;;;;;;;;;;-1:-1:-1;;;17065:87:0;;;;;;;;;;;;;;;17170:44;17184:10;17196:9;17207:6;17170:13;:44::i;13927:33::-;;;-1:-1:-1;;;;;13927:33:0;;:::o;23214:105::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;23310:1:::1;23279:28;:32:::0;23214:105::o;4279:94::-;3995:19;4003:10;3995:7;:19::i;:::-;3987:38;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4339:19:0::1;;::::0;;;4361:4:::1;4339:19;::::0;;;;;;;:26;;-1:-1:-1;;4339:26:0::1;::::0;;::::1;::::0;;4279:94::o;14112:25::-;;;;:::o;13842:36::-;;;-1:-1:-1;;;;;13842:36:0;;:::o;27410:167::-;27478:7;27505:64;27546:22;:20;:22::i;:::-;27528:4;;27505:36;;27518:22;;27538:1;;27518:15;;-1:-1:-1;;;;;27528:4:0;27518:9;:15::i;:::-;:19;;:22::i;:::-;27505:8;;:12;:36::i;:::-;:40;;:64::i;26250:308::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;26398:21:::1;:46:::0;;-1:-1:-1;;;;;26398:46:0;;::::1;-1:-1:-1::0;;;;;;26398:46:0;;::::1;;::::0;;;26455:20:::1;:44:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;26510:18:::1;:40:::0;;;;;::::1;::::0;::::1;;::::0;;26250:308::o;19756:391::-;19805:7;19825:21;19849:78;19911:15;19849:57;19882:23;;19849:28;;:32;;:57;;;;:::i;:78::-;19825:102;;19938:19;19960:88;20039:8;;19960:74;20005:28;;19960:40;19973:26;;19960:8;;:12;;:40;;;;:::i;:88::-;19938:110;;20066:73;20079:59;20114:23;;20079:30;20095:13;20079:11;:15;;:30;;;;:::i;:59::-;20066:8;;;:12;:73::i;:::-;20059:80;;;;19756:391;:::o;16479:133::-;-1:-1:-1;;;;;16581:19:0;;;16563:7;16581:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;16479:133::o;26566:156::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;26658:11:::1;:22:::0;;-1:-1:-1;;26658:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;26691:13:::1;:23:::0;26566:156::o;13885:35::-;;;-1:-1:-1;;;;;13885:35:0;;:::o;4449:97::-;3995:19;4003:10;3995:7;:19::i;:::-;3987:38;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;4511:19:0::1;4533:5;4511:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;4511:27:0::1;::::0;;4449:97::o;19442:306::-;19498:7;19539:12;19521:10;;19534:1;19521:14;:30;19518:67;;19561:14;;:21;;19580:1;19561:18;:21::i;:::-;19554:28;;;;19518:67;19598:7;:86;;;;;19669:15;19609:57;19642:23;;19609:28;;:32;;:57;;;;:::i;:::-;:75;19598:86;19595:120;;;19694:18;:16;:18::i;19595:120::-;-1:-1:-1;;19732:8:0;;;19442:306::o;5006:173::-;3995:19;4003:10;3995:7;:19::i;:::-;3987:38;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;-1:-1:-1;;;3987:38:0;;;;;;;;;;;;;;;5082:5:::1;:11:::0;;-1:-1:-1;;;;;;5082:11:0::1;-1:-1:-1::0;;;;;5082:11:0;::::1;::::0;;::::1;::::0;;5104:19;;;-1:-1:-1;5104:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;5104:26:0::1;::::0;;::::1;::::0;;;5146:25;;;;;;;::::1;::::0;;;;;;;;;::::1;5006:173:::0;:::o;25054:347::-;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25151:23:0;::::1;25169:4;25151:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;25188:4:0::1;::::0;-1:-1:-1;;;;;25178:14:0;;::::1;25188:4:::0;::::1;25178:14;;25151:41;25143:50;;;::::0;::::1;;-1:-1:-1::0;;;;;25204:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;25204:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;25248:146:::1;;25273:11;::::0;:31:::1;::::0;;-1:-1:-1;;;25273:31:0;;-1:-1:-1;;;;;25273:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;25248:146;;;25335:11;::::0;-1:-1:-1;;;;;25364:17:0;;::::1;25335:11;25364:17:::0;;;:9:::1;:17;::::0;;;;;;25335:47;;-1:-1:-1;;;25335:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:47;;;;;;;;;;:11;;:47;::::1;;::::0;::::1;;;;::::0;::::1;25537:128:::0;4164:24;4177:10;4164:12;:24::i;:::-;4156:48;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;-1:-1:-1;;;4156:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;25625:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;25625:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;25537:128::o;14053:24::-;;;-1:-1:-1;;;;;14053:24:0;;:::o;4780:107::-;-1:-1:-1;;;;;4860:19:0;4836:4;4860:19;;;:14;:19;;;;;;;;;4780:107::o;1665:192::-;1751:7;1787:12;1779:6;;;;1771:29;;;;-1:-1:-1;;;1771:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1823:5:0;;;1665:192::o;17602:1060::-;17714:6;;17694:4;;17714:6;;17711:63;;;17730:41;17745:6;17753:9;17764:6;17730:14;:41::i;:::-;17723:48;;;;17711:63;17794:28;17807:6;17815;17794:12;:28::i;:::-;17838:16;:14;:16::i;:::-;17835:35;;;17857:10;:8;:10::i;:::-;17883:19;:17;:19::i;:::-;17880:48;;;17905:20;:18;:20::i;:::-;17944:10;:8;:10::i;:::-;17943:11;:32;;;;-1:-1:-1;17971:4:0;;-1:-1:-1;;;;;17958:17:0;;;17971:4;;17958:17;17943:32;17940:81;;;-1:-1:-1;;;;;17986:17:0;;18006:1;17986:17;;;:9;:17;;;;;;17978:30;;;;;;18010:8;:6;:8::i;:::-;18053:53;;;;;;;;;;;-1:-1:-1;;;18053:53:0;;;;;;;;-1:-1:-1;;;;;18053:17:0;;-1:-1:-1;18053:17:0;;;:9;:17;;;;;;;;:53;;18075:6;;18053:21;:53::i;:::-;-1:-1:-1;;;;;18033:17:0;;;;;;:9;:17;;;;;:73;;;;18144:21;18043:6;18144:13;:21::i;:::-;:67;;18205:6;18144:67;;;18168:34;18176:6;18184:9;18195:6;18168:7;:34::i;:::-;-1:-1:-1;;;;;18245:20:0;;;;;;:9;:20;;;;;;18119:92;;-1:-1:-1;18245:40:0;;18119:92;18245:24;:40::i;:::-;-1:-1:-1;;;;;18222:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;18302:24;;;;;:16;:24;;;;;;;18298:96;;18333:11;;-1:-1:-1;;;;;18362:17:0;;;18333:11;18362:17;;;:9;:17;;;;;;;18333:47;;-1:-1:-1;;;18333:47:0;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;18329:63;;-1:-1:-1;;;;;18408:27:0;;;;;;:16;:27;;;;;;;;18404:105;;18442:11;;-1:-1:-1;;;;;18474:20:0;;;18442:11;18474:20;;;:9;:20;;;;;;;18442:53;;-1:-1:-1;;;18442:53:0;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;18438:69;;18525:11;;18545:14;;18525:35;;;-1:-1:-1;;;;;;18525:35:0;;;;;;;;;;-1:-1:-1;;;;;18525:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;18521:51;18606:9;-1:-1:-1;;;;;18589:43:0;18598:6;-1:-1:-1;;;;;18589:43:0;;18617:14;18589:43;;;;;;;;;;;;;;;;;;-1:-1:-1;18650:4:0;;17602:1060;-1:-1:-1;;;;17602:1060:0:o;1523:136::-;1581:7;1608:43;1612:1;1615;1608:43;;;;;;;;;;;;;;;;;:3;:43::i;23638:361::-;14778:6;:13;;-1:-1:-1;;14778:13:0;14787:4;14778:13;;;23738:16:::1;::::0;;23752:1:::1;23738:16:::0;;;;;::::1;::::0;;-1:-1:-1;;23738:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;23775:4:0::1;::::0;23765:7;;;;-1:-1:-1;;;;;;23775:4:0::1;::::0;23765:7;;-1:-1:-1;23775:4:0::1;::::0;23765:7:::1;;;;;;;;;:14;-1:-1:-1::0;;;;;23765:14:0::1;;;-1:-1:-1::0;;;;;23765:14:0::1;;;::::0;::::1;23808:4;23790;23795:1;23790:7;;;;;;;;-1:-1:-1::0;;;;;23790:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;23826:6:::1;::::0;:165:::1;::::0;-1:-1:-1;;;23826:165:0;;:6:::1;:165;::::0;::::1;::::0;;;;;::::1;::::0;;;;23965:15:::1;23826:165:::0;;;;;;;;;;;;;;;;;;;;;:6;;;::::1;::::0;:57:::1;::::0;23891:6;;23826;;23929:4;;23948:2;;23826:165;;;;;;;;;::::1;::::0;::::1;::::0;;;:6;:165:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14796:6:0;:14;;-1:-1:-1;;14796:14:0;;;-1:-1:-1;;;;;;23638:361:0:o;1336:181::-;1394:7;1426:5;;;1450:6;;;;1442:46;;;;;-1:-1:-1;;;1442:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1863:250;1921:7;1945:6;1941:47;;-1:-1:-1;1975:1:0;1968:8;;1941:47;2012:5;;;2016:1;2012;:5;:1;2036:5;;;;;:10;2028:56;;;;-1:-1:-1;;;2028:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:132;2177:7;2204:39;2208:1;2211;2204:39;;;;;;;;;;;;;;;;;:3;:39::i;18808:330::-;18938:53;;;;;;;;;;;-1:-1:-1;;;18938:53:0;;;;;;;;-1:-1:-1;;;;;18938:17:0;;18901:4;18938:17;;;:9;:17;;;;;;;:53;;18960:6;;18938:21;:53::i;:::-;-1:-1:-1;;;;;18918:17:0;;;;;;;:9;:17;;;;;;:73;;;;19025:20;;;;;;;:32;;19050:6;19025:24;:32::i;:::-;-1:-1:-1;;;;;19002:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;19073:35;;;;;;;19002:20;;19073:35;;;;;;;;;;;;;-1:-1:-1;19126:4:0;18808:330;;;;;:::o;19146:166::-;19243:12;;19233:6;:22;;:49;;;-1:-1:-1;;;;;;19259:23:0;;;;;;:15;:23;;;;;;;;19233:49;19225:79;;;;;-1:-1:-1;;;19225:79:0;;;;;;;;;;;;-1:-1:-1;;;19225:79:0;;;;;;;;;;;;;;20535:197;20622:4;;20584;;-1:-1:-1;;;;;20622:4:0;20608:10;:18;;;;:38;;-1:-1:-1;20640:6:0;;;;20639:7;20608:38;:62;;;;-1:-1:-1;20659:11:0;;;;20608:62;:116;;;;-1:-1:-1;;20711:13:0;;20701:4;20683:24;;;;:9;:24;;;;;;:41;;;20535:197::o;20740:1832::-;14778:6;:13;;-1:-1:-1;;14778:13:0;14787:4;14778:13;;;20835:15:::1;::::0;20852:26:::1;::::0;14778:6;;20819:60:::1;::::0;:15:::1;:60::i;:::-;:79;;20886:12;;20819:79;;;20882:1;20819:79;20789:109;;20909:23;20935:59;20992:1;20935:52;20978:8;;20935:38;20953:19;20935:13;;:17;;:38;;;;:::i;:59::-;20909:85;;21005:20;21028:34;21046:15;21028:13;;:17;;:34;;;;:::i;:::-;21099:16;::::0;;21113:1:::1;21099:16:::0;;;;;::::1;::::0;;21005:57;;-1:-1:-1;21075:21:0::1;::::0;21099:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21099:16:0::1;21075:40;;21144:4;21126;21131:1;21126:7;;;;;;;;-1:-1:-1::0;;;;;21126:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;21170:4:::1;::::0;21160:7;;21170:4;::::1;::::0;21160;;21170;;21160:7;::::1;;;;;-1:-1:-1::0;;;;;21160:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;21245:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;21245:188:0;;::::1;::::0;::::1;::::0;;;21187:21:::1;21245:188:::0;;;;;;21387:4:::1;21245:188:::0;;;;;;21407:15:::1;21245:188:::0;;;;;;;;;;;;;;;;;;;;;21211:21:::1;::::0;21245:6;;;::::1;::::0;:57:::1;::::0;21317:12;;21187:21;;21360:4;;21245:188;;;;;;;;;;::::1;::::0;::::1;::::0;;;21187:21;21245:188:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21446:17;21466:40;21492:13;21466:21;:25;;:40;;;;:::i;:::-;21446:60:::0;-1:-1:-1;21519:19:0::1;21541:40;21554:26;:19:::0;21578:1:::1;21554:23;:26::i;:::-;21541:8;::::0;;:12:::1;:40::i;:::-;21519:62:::0;-1:-1:-1;21602:26:0::1;21631:58;21687:1;21631:51;21519:62:::0;21631:51;:9;21645:19;21631:13:::1;:34::i;:58::-;21602:87;;21700:27;21730:45;21763:11;21730:28;21744:13;;21730:9;:13;;:28;;;;:::i;:45::-;21700:75;;21786:26;21815:44;21847:11;21815:27;21829:12;;21815:9;:13;;:27;;;;:::i;:44::-;21786:73;;21870:24;21897:42;21927:11;21897:25;21911:10;;21897:9;:13;;:25;;;;:::i;:42::-;21870:69;;21956:11;;;;;;;;;-1:-1:-1::0;;;;;21956:11:0::1;-1:-1:-1::0;;;;;21956:19:0::1;;21983;21956:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21952:65:::0;22035:20:::1;::::0;22027:77:::1;::::0;-1:-1:-1;;;;;22035:20:0;;::::1;::::0;22094:5:::1;::::0;22069:18;;22035:20:::1;22027:77:::0;22035:20;22027:77;22069:18;22035:20;22094:5;22027:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22123:18:0::1;::::0;22115:73:::1;::::0;-1:-1:-1;;;;;22123:18:0;;::::1;::::0;-1:-1:-1;22178:5:0::1;::::0;22155:16;;22123:18:::1;22115:73:::0;22123:18;22115:73;22155:16;22123:18;22178:5;22115:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;22206:19:0;;;-1:-1:-1;22203:362:0::1;;22241:6;::::0;22415:21:::1;::::0;22241:244:::1;::::0;;-1:-1:-1;;;22241:244:0;;22317:4:::1;22241:244;::::0;::::1;::::0;;;;;;;:6:::1;:244:::0;;;;;;;;;;-1:-1:-1;;;;;22415:21:0;;::::1;22241:244:::0;;;;22455:15:::1;22241:244:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;22271:18;;22241:244;;;;;::::1;::::0;;;;;;;;;22271:18;22241:6;:244;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;22241:244:0;22505:48;;;;;22241:244:::1;22505:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;22203:362;-1:-1:-1::0;;14796:6:0;:14;;-1:-1:-1;;14796:14:0;;;-1:-1:-1;;;;;;;;;20740:1832:0:o;22580:298::-;22670:4;;22632;;-1:-1:-1;;;;;22670:4:0;22656:10;:18;;;;:42;;-1:-1:-1;22692:6:0;;;;22691:7;22656:42;:77;;;;-1:-1:-1;22715:18:0;;;;22656:77;:155;;;;;22799:12;22773:22;;22750:20;;:45;:61;;22656:155;:214;;;;-1:-1:-1;;22853:17:0;;22828:21;:42;;;22580:298::o;23327:303::-;23387:17;;23406:4;;23377:34;;23387:17;-1:-1:-1;;;;;23406:4:0;23377:9;:34::i;:::-;23445:12;23422:20;:35;23520:17;;23493:22;;:45;;:26;:45::i;:::-;23468:22;:70;;;23577:14;;-1:-1:-1;23549:74:0;;;23594:18;:26;;-1:-1:-1;;23594:26:0;;;23549:74;23327:303::o;24724:90::-;24791:10;;:15;;24724:90;:::o;24822:71::-;24873:12;24860:10;:25;24822:71::o;19320:114::-;-1:-1:-1;;;;;19407:19:0;19382:4;19407:19;;;:11;:19;;;;;;;;19406:20;;19320:114::o;20155:372::-;20326:14;;20315:4;;20240:7;;;;20280:61;;20326:14;20280:41;;20291:29;;-1:-1:-1;;;;;20303:16:0;;;20315:4;;20303:16;20291:11;:29::i;:::-;20280:6;;:10;:41::i;:61::-;20399:4;20381:24;;;;:9;:24;;;;;;20260:81;;-1:-1:-1;20381:39:0;;20260:81;20381:28;:39::i;:::-;20372:4;20354:24;;;;:9;:24;;;;;;;;;:66;;;;20436:42;;;;;;;20372:4;;-1:-1:-1;;;;;20436:42:0;;;;;;;;;;;;;20498:21;:6;20509:9;20498:10;:21::i;:::-;20491:28;20155:372;-1:-1:-1;;;;;20155:372:0:o;2257:345::-;2343:7;2445:12;2438:5;2430:28;;;;-1:-1:-1;;;2430:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2469:9;2485:1;2481;:5;;;;;;;2257:345;-1:-1:-1;;;;;2257:345:0:o

Swarm Source

ipfs://3c057d1a621802adcbf74e3687d82e893cc2576963a9908c8c6cf84c520d3114
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.