Contract 0xc3f069d7439baf6d4d6e9478d9cc77778e62d147 2

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf263283bf5e3da1138954ff09f443a741290a936be456cfa2da428bc49c8d44aApprove384341682022-05-17 10:13:291 hr 22 mins ago0xca896200189a65d8cce70bb89efb2799d98233bb IN  Fantom Libero: FLIBERO Token0 FTM0.013686347028
0x20ce4b80abbd3015b133b5ed49aa5922638a158ccd6981b1aec2ab942f343e18Transfer384320882022-05-17 9:35:232 hrs ago0x958df822fb2a7f657ba13aae2c8c471ee69117b6 IN  Fantom Libero: FLIBERO Token0 FTM0.026749358972
0x8f391384f5561cb5d2bf0e405afde28593a16db4948d08be5879ee500f6260a3Transfer384319162022-05-17 9:32:192 hrs 3 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.023081154218
0x5942d16e3c8a5f8b5100c08d6c81f608e692cedced1778f8d31272f7ef668121Transfer384318912022-05-17 9:31:552 hrs 4 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.023179448322
0x27e41c90dba1800b290b7c2eee7e6b83f2ccd07b6c8df6e59fb63e0fde635892Transfer384318672022-05-17 9:31:302 hrs 4 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.023283960573
0x57229672668e294622b0ef90628655547855fe84117eb30b3a77f0c08a4ddf60Transfer384318382022-05-17 9:31:012 hrs 5 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.023508477145
0xb858cd3ede66daabb93759285d3a94aca4eecb624506f019da1c1e4a7e29cf31Transfer384318212022-05-17 9:30:412 hrs 5 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.022841797002
0x720763eb0666715576e32865ecd74d464130c54b40ccf4949c2aabbb0b37c13fTransfer384317962022-05-17 9:30:182 hrs 5 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.022935389002
0x9857b8fabe9e480cc2951ae5ca01f9a30d9b62a064a53cfcfd3bc73b8639db59Transfer384317592022-05-17 9:29:412 hrs 6 mins ago0x24f7cf808ba408f4a76b1a4c74f943ef5344dd45 IN  Fantom Libero: FLIBERO Token0 FTM0.023107542851
0x568b3b3c315a7c5a852eb520797ff6095ae6376ceaea4efe730ac8b03381936bApprove384237122022-05-17 6:51:454 hrs 44 mins ago0xe2de8f7ecedb2e603426a54f767efad239a7a94e IN  Fantom Libero: FLIBERO Token0 FTM0.01595803478
0xa75aa79442a8b548e02ad48e49ad652b531401185af177c747def02320bc66f1Approve384194542022-05-17 5:31:526 hrs 4 mins ago0x5002bb9eaeda14ffafc6ae2c551880ec839c0acd IN  Fantom Libero: FLIBERO Token0 FTM0.02474324165
0xd03a93a973c25e4e844117ccb2ec92017c84e2884f1bb96e7fcd2e4906f7acd3Approve384194542022-05-17 5:31:526 hrs 4 mins ago0xaaaadb91b3ecced699ddc7d93a62640148ba0136 IN  Fantom Libero: FLIBERO Token0 FTM0.022503096
0x438a7ae79059e16d28d5ca78562c94573546add5f53b6f3b9f78be243589524dApprove384193742022-05-17 5:30:276 hrs 5 mins ago0xaaaadb91b3ecced699ddc7d93a62640148ba0136 IN  Fantom Libero: FLIBERO Token0 FTM0.021986397559
0x1f5040cc4ee51e867372536a39a0488e5b72955f90781277f97192d84fc7058dApprove384192202022-05-17 5:27:176 hrs 8 mins ago0xaaaadb91b3ecced699ddc7d93a62640148ba0136 IN  Fantom Libero: FLIBERO Token0 FTM0.022609253163
0xd4334bcedd32da3935a46473a47aa7626ef84e04164c365e1e221e303c0dc1a8Approve384130522022-05-17 3:27:108 hrs 9 mins ago0xefec1bab9cded61dbd899f4a8cfe3c0af72348db IN  Fantom Libero: FLIBERO Token0 FTM0.01457209448
0x34df61252632b2aab4efb25046862aafe76b971996ca26f1dca07fc8776aad02Approve384087862022-05-17 2:13:159 hrs 22 mins ago0xfadcab03734c1d081f9d6c297df4711973741d9d IN  Fantom Libero: FLIBERO Token0 FTM0.022829031124
0x8fb66ef0e164a8a0273b24ffe2e73c143fee828904eb73458e93aaa45291114eApprove384075102022-05-17 1:50:449 hrs 45 mins ago0xfc6c276dfbecc270c1b2b7ee256ac886aa3e6b26 IN  Fantom Libero: FLIBERO Token0 FTM0.014351640861
0x0f20ffbb9571986bc8cfaaf5fe25966ce701a773764dcfd41adeea4f08209b54Approve384075042022-05-17 1:50:399 hrs 45 mins ago0xfc6c276dfbecc270c1b2b7ee256ac886aa3e6b26 IN  Fantom Libero: FLIBERO Token0 FTM0.023331806859
0xb7cb675d68ed5962d836f732f01ae60f720049f7106c126f91ca96d02523455aApprove384035562022-05-17 0:36:5810 hrs 59 mins ago0x05814d17dcfce0d209ddf7900d0353a2ba4f882f IN  Fantom Libero: FLIBERO Token0 FTM0.018651809453
0x022c22c0355b163f168dbff7a2a218b2c173be625e96ca205bec61acb395a098Approve384034762022-05-17 0:35:3711 hrs ago0x05814d17dcfce0d209ddf7900d0353a2ba4f882f IN  Fantom Libero: FLIBERO Token0 FTM0.032963032513
0x0f2926e1711efbb840d682902b2a8b1ad7233f063b299dd07bc798883638b3f0Approve384022232022-05-17 0:09:1911 hrs 26 mins ago0xed899b959f2ffc0ccaff59a771e1299abefac7a7 IN  Fantom Libero: FLIBERO Token0 FTM0.024441233335
0xc56ff3589e0c8255e0239f4d652aabf686867156747bb6d7bf35f8db87731d49Approve383930092022-05-16 21:20:2714 hrs 15 mins ago0x6e054b0b80fd06ada55eaaf09c625e7d2833d9a6 IN  Fantom Libero: FLIBERO Token0 FTM0.021778956748
0xf8e11f294e0a06aa547c96aaa5e89eb738d7d0b6445d2fee46bdd3fa1fc7501aApprove383908242022-05-16 20:41:2314 hrs 54 mins ago0x5b251ef5bb109725817fdab7c72eeb6a48ac4c63 IN  Fantom Libero: FLIBERO Token0 FTM0.016064968277
0xb05bdc9c6708aaa69b29e1648da537f45de559c5786625b59e43be7a7f6b4007Approve383894672022-05-16 20:16:0715 hrs 20 mins ago0x3ade4d370f6058cac63990a6bd8b351fda381d7c IN  Fantom Libero: FLIBERO Token0 FTM0.016886612364
0x47186cc2df5a4979ab54442d0b43e21d08fb0bc81d7a39c86caa3d5bbf5989daApprove383856652022-05-16 19:08:5616 hrs 27 mins ago0x32830e0b8c6f1097d2dc592fb4992feda6d47520 IN  Fantom Libero: FLIBERO Token0 FTM0.031529952663
[ Download CSV Export 

OVERVIEW

From the creator of Libero: FLibero-Fantom Libero Financial is a dual reward, auto-staking token, making a fixed APY of 159,058.06% plus 7% USDC passive income from trading volume. FLibero is also a DeFi 3.0 Farming as a Service protocol with FLibero Treasury.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x172ce8cae5d1d2130f36c86d56a7226353a1806f6fe2ef5b3f999ca7a355599a354605862022-04-07 12:37:5539 days 22 hrs ago 0xebf4fbb9c81b84dd5cf89bc75588e5d0018501b3 Fantom Libero: FLIBERO Token160.81822837 FTM
0x2b5c5eabb735f144549e72b30358eef2461460349ed9673985eb15b06c66e6c9348027902022-03-30 14:54:0947 days 20 hrs ago 0x0a10753cac8b635ee4e049814984cfaffa367c7b Fantom Libero: FLIBERO Token384.79 FTM
0x68dd9d80138c9ac6d1903729e6c845e5238eae47ed0dd3bc95fedb187352011f348002222022-03-30 14:09:1647 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router452.162736207984053959 FTM
0x68dd9d80138c9ac6d1903729e6c845e5238eae47ed0dd3bc95fedb187352011f348002222022-03-30 14:09:1647 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token452.162736207984053959 FTM
0x8ad5b9bb62f8110ec1119e82f28488db117a7cebe45e99213636819b10a378c2348002222022-03-30 14:09:1647 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router493.691212109948054437 FTM
0x8ad5b9bb62f8110ec1119e82f28488db117a7cebe45e99213636819b10a378c2348002222022-03-30 14:09:1647 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token493.691212109948054437 FTM
0x7843452f5a6ec49a4ad230fcfa7b0e7712c86a40a12dd4352f260af385de4fdb348002222022-03-30 14:09:1647 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router493.691212109948054437 FTM
0x7843452f5a6ec49a4ad230fcfa7b0e7712c86a40a12dd4352f260af385de4fdb348002222022-03-30 14:09:1647 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token493.691212109948054437 FTM
0x56adae8a4e80d82be26ff42aefc4aefd2ac582d31909a2a66baeefbd7b1889de348002222022-03-30 14:09:1647 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token452.162736207984053959 FTM
0xb97d4f922028b696f4e35c2def1cb46d4e8bf933e1770720ceab8a09ab84e80d348002212022-03-30 14:09:1547 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0xb97d4f922028b696f4e35c2def1cb46d4e8bf933e1770720ceab8a09ab84e80d348002212022-03-30 14:09:1547 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x8506d9422ce5d79d0419635961723ddc7b37e5ac240878e3c21afa22a6b84894348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router489.305588936365676743 FTM
0x8506d9422ce5d79d0419635961723ddc7b37e5ac240878e3c21afa22a6b84894348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token489.305588936365676743 FTM
0x4f96b4394a08ea817eeb2724132aede73d25f107d0f7a6d925abbd4e75cb32f1348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0x4f96b4394a08ea817eeb2724132aede73d25f107d0f7a6d925abbd4e75cb32f1348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x65d702580ba15a56a8c04d5f3f0f3cab46bb02925ad256d76d6390758ce1eab3348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0x65d702580ba15a56a8c04d5f3f0f3cab46bb02925ad256d76d6390758ce1eab3348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x7cad1140619922f7168844e071637b434e5d138e1ac339f3ccbc4736464266e6348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0x7cad1140619922f7168844e071637b434e5d138e1ac339f3ccbc4736464266e6348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x09ebf3b37a22e31be838c4bda1017788305145a768eb7e12adee6b44b5e024e9348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0x09ebf3b37a22e31be838c4bda1017788305145a768eb7e12adee6b44b5e024e9348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x19eb81928b0fb54cf6bff4c429aff482e8bf57372623d39046d43dd15fd6a739348002202022-03-30 14:09:1447 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router490.253003074758373152 FTM
0x19eb81928b0fb54cf6bff4c429aff482e8bf57372623d39046d43dd15fd6a739348002202022-03-30 14:09:1447 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token490.253003074758373152 FTM
0x33f550d6de145e2a05ece68bdf5617fbbf8b1f0605008c801b59a0597a1f30f5348002192022-03-30 14:09:1247 days 21 hrs ago Fantom Libero: FLIBERO Token SpookySwap: Router489.305588936365676743 FTM
0x33f550d6de145e2a05ece68bdf5617fbbf8b1f0605008c801b59a0597a1f30f5348002192022-03-30 14:09:1247 days 21 hrs ago SpookySwap: Router Fantom Libero: FLIBERO Token489.305588936365676743 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLiberoToken

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 25000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2022-03-29
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.7.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

abstract contract Auth is Context{
    address owner;
    mapping (address => bool) private authorizations;

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

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

    modifier authorized() {
        require(isAuthorized(msg.sender)); _;
    }

    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
        emit Authorized(adr);
    }

    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
        emit Unauthorized(adr);
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
    event Authorized(address adr);
    event Unauthorized(address adr);
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }
}

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

}

interface InterfaceLP {
    function sync() external;
}

library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor(
        string memory _tokenName,
        string memory _tokenSymbol,
        uint8 _tokenDecimals
    ) {
        _name = _tokenName;
        _symbol = _tokenSymbol;
        _decimals = _tokenDecimals;
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
    external
    returns (
        uint256 amountA,
        uint256 amountB,
        uint256 liquidity
    );

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

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

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

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

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

contract FLiberoToken is ERC20Detailed, Auth {
    using SafeMath for uint256;
    using SafeMathInt for int256;

    bool public initialDistributionFinished = false;
    bool public autoRebase = false;
    bool public feesOnNormalTransfers = true;
    bool public isLiquidityInFtm = true;
    bool public isRfvInFtm = true;
    bool public isLiquidityEnabled = true;

    uint256 public rewardYield = 1402777;
    uint256 public rebaseFrequency = 600;
    uint256 public nextRebase = block.timestamp + 31536000;
    uint256 public maxSellTransactionAmount = 2000000 * 10 ** 18;
    uint256 public swapThreshold = 400000 * 10**18;

    mapping(address => bool) _isFeeExempt;
    address[] private _makerPairs;
    mapping (address => bool) public automatedMarketMakerPairs;

    uint256 private constant REWARD_YIELD_DENOMINATOR = 10000000000;
    uint256 private constant MAX_TOTAL_BUY_FEE_RATE = 250;
    uint256 private constant MAX_TOTAL_SELL_FEE_RATE = 500;
    uint256 private constant FEE_DENOMINATOR = 1000;
    uint256 private constant MIN_MAX_SELL_AMOUNT = 1000 * 10**18;
    uint256 private constant MAX_REBASE_FREQUENCY = 1800;
    uint256 private constant DECIMALS = 18;
    uint256 private constant MAX_UINT256 = ~uint256(0);
    uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 15 * 10**8 * 10**DECIMALS;
    uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY);
    uint256 private constant MAX_SUPPLY = ~uint128(0);

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address public constant usdcToken = 0x04068DA6C83AFCFA0e13ba15A6696662335D5B75;
    
    address public liquidityReceiver = 0x730736E3cdffc531b74eb8B30bD2CC50beb8Ab3c;
    address public treasuryReceiver = 0x3ff8970f17d463b83D289827B7B8E5Eed61Cc3e8;
    address public riskFreeValueReceiver = 0x14c02711A4678fc7De388e77e99B07753C856e84;
    address public xLiberoReceiver = 0x8689EDAb5Bdb17b11273a5C9412C4BBC8f2Ec4F8;

    IDEXRouter public router;
    address public pair;

    uint256 public liquidityFee = 40;
    uint256 public treasuryFee = 30;
    uint256 public buyFeeRFV = 50;
    uint256 public buyBurnFee = 20;
    uint256 public buyxLiberoFee = 0;
    uint256 public sellFeeTreasuryAdded = 20;
    uint256 public sellFeeRFVAdded = 40;
    uint256 public sellBurnFeeAdded = 0;
    uint256 public sellxLiberoFeeAdded = 0;
    uint256 public totalBuyFee = liquidityFee.add(treasuryFee).add(buyFeeRFV).add(buyBurnFee).add(buyxLiberoFee);
    uint256 public totalSellFee = totalBuyFee.add(sellFeeTreasuryAdded).add(sellFeeRFVAdded).add(sellBurnFeeAdded).add(sellxLiberoFeeAdded);

    bool inSwap;

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

    modifier validRecipient(address to) {
        require(to != address(0x0));
        _;
    }

    uint256 private _totalSupply;
    uint256 private _gonsPerFragment;

    mapping(address => uint256) private _gonBalances;
    mapping(address => mapping(address => uint256)) private _allowedFragments;

    constructor() ERC20Detailed("Fantom Libero Financial Freedom", "FLIBERO", uint8(DECIMALS)) Auth(msg.sender) {
        router = IDEXRouter(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());
        address pairUsdc = IDEXFactory(router.factory()).createPair(address(this), usdcToken);

        _allowedFragments[address(this)][address(router)] = uint256(-1);
        _allowedFragments[address(this)][pair] = uint256(-1);
        _allowedFragments[address(this)][address(this)] = uint256(-1);
        _allowedFragments[address(this)][pairUsdc] = uint256(-1);

        setAutomatedMarketMakerPair(pair, true);
        setAutomatedMarketMakerPair(pairUsdc, true);

        _totalSupply = INITIAL_FRAGMENTS_SUPPLY;
        _gonBalances[msg.sender] = TOTAL_GONS;
        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        _isFeeExempt[treasuryReceiver] = true;
        _isFeeExempt[riskFreeValueReceiver] = true;
        _isFeeExempt[address(this)] = true;
        _isFeeExempt[msg.sender] = true;

        IERC20(usdcToken).approve(address(router), uint256(-1));
        IERC20(usdcToken).approve(address(pairUsdc), uint256(-1));
        IERC20(usdcToken).approve(address(this), uint256(-1));

        emit Transfer(address(0x0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function allowance(address owner_, address spender) external view override returns (uint256){
        return _allowedFragments[owner_][spender];
    }

    function balanceOf(address who) public view override returns (uint256) {
        return _gonBalances[who].div(_gonsPerFragment);
    }

    function checkFeeExempt(address _addr) external view returns (bool) {
        return _isFeeExempt[_addr];
    }

    function shouldRebase() internal view returns (bool) {
        return nextRebase <= block.timestamp;
    }

    function shouldTakeFee(address from, address to) internal view returns (bool) {
        if(_isFeeExempt[from] || _isFeeExempt[to]){
            return false;
        }else if (feesOnNormalTransfers){
            return true;
        }else{
            return (automatedMarketMakerPairs[from] || automatedMarketMakerPairs[to]);
        }
    }

    function shouldSwapBack() internal view returns (bool) {
        return
        !automatedMarketMakerPairs[msg.sender] &&
        !inSwap &&
        swapThreshold > 0 &&
        totalBuyFee.add(totalSellFee) > 0 &&
        balanceOf(address(this)) >= swapThreshold;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (TOTAL_GONS.sub(_gonBalances[DEAD]).sub(_gonBalances[ZERO])).div(_gonsPerFragment);
    }

    function manualSync() public {
        for(uint i = 0; i < _makerPairs.length; i++){
            try InterfaceLP(_makerPairs[i]).sync() {

            }catch Error (string memory reason) {
                emit GenericErrorEvent("manualSync(): _makerPairs.sync() Failed");
                emit GenericErrorEvent(reason);
            }
        }
    }

    function transfer(address to, uint256 value) external override validRecipient(to) returns (bool){
        _transferFrom(msg.sender, to, value);
        return true;
    }

    function _basicTransfer(address from, address to, uint256 amount) internal returns (bool) {
        uint256 gonAmount = amount.mul(_gonsPerFragment);
        _gonBalances[from] = _gonBalances[from].sub(gonAmount);
        _gonBalances[to] = _gonBalances[to].add(gonAmount);

        emit Transfer(from, to, amount);

        return true;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        bool excludedAccount = _isFeeExempt[sender] || _isFeeExempt[recipient];

        require(initialDistributionFinished || excludedAccount, "Trading not started");

        if (
            automatedMarketMakerPairs[recipient] &&
            !excludedAccount
        ) {
            require(amount <= maxSellTransactionAmount, "Error amount");
        }

        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }

        uint256 gonAmount = amount.mul(_gonsPerFragment);

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

        _gonBalances[sender] = _gonBalances[sender].sub(gonAmount);

        uint256 gonAmountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, gonAmount) : gonAmount;
        _gonBalances[recipient] = _gonBalances[recipient].add(gonAmountReceived);

        emit Transfer(
            sender,
            recipient,
            gonAmountReceived.div(_gonsPerFragment)
        );

        if(
            shouldRebase() &&
            autoRebase &&
            !automatedMarketMakerPairs[sender] &&
            !automatedMarketMakerPairs[recipient]
        ) {
            _rebase();
            manualSync();
        }

        return true;
    }

    function transferFrom(address from, address to, uint256 value) external override validRecipient(to) returns (bool) {
        if (_allowedFragments[from][msg.sender] != uint256(-1)) {
            _allowedFragments[from][msg.sender] = _allowedFragments[from][
            msg.sender
            ].sub(value, "Insufficient Allowance");
        }

        _transferFrom(from, to, value);
        return true;
    }

    function _swapAndLiquify(uint256 contractTokenBalance) private {
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        if(isLiquidityInFtm){
            uint256 initialBalance = address(this).balance;

            _swapTokensForFTM(half, address(this));

            uint256 newBalance = address(this).balance.sub(initialBalance);

            _addLiquidity(otherHalf, newBalance);

            emit SwapAndLiquify(half, newBalance, otherHalf);
        }else{
            uint256 initialBalance = IERC20(usdcToken).balanceOf(address(this));

            _swapTokensForUsdc(half, address(this));

            uint256 newBalance = IERC20(usdcToken).balanceOf(address(this)).sub(initialBalance);

            addLiquidityUsdc(otherHalf, newBalance);

            emit SwapAndLiquifyUsdc(half, newBalance, otherHalf);
        }
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ftmAmount) private {
        router.addLiquidityETH{value: ftmAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }

    function addLiquidityUsdc(uint256 tokenAmount, uint256 usdcAmount) private {
        router.addLiquidity(
            address(this),
            usdcToken,
            tokenAmount,
            usdcAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }

    function _swapTokensForFTM(uint256 tokenAmount, address receiver) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            receiver,
            block.timestamp
        );
    }
    function _swapTokensForUsdc(uint256 tokenAmount, address receiver) private {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = router.WETH();
        path[2] = usdcToken;

        router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            receiver,
            block.timestamp
        );
    }

    function swapBack() internal swapping {
        uint256 realTotalFee = totalBuyFee.add(totalSellFee);

        uint256 dynamicLiquidityFee = isLiquidityEnabled ? liquidityFee : 0;
        uint256 contractTokenBalance = _gonBalances[address(this)].div(_gonsPerFragment);

        uint256 amountToLiquify = contractTokenBalance.mul(dynamicLiquidityFee.mul(2)).div(realTotalFee);
        uint256 amountToBurn = contractTokenBalance.mul(buyBurnFee.mul(2).add(sellBurnFeeAdded)).div(realTotalFee);
        uint256 amountToRFV = contractTokenBalance.mul(buyFeeRFV.mul(2).add(sellFeeRFVAdded)).div(realTotalFee);
        uint256 amountToxLibero = contractTokenBalance.mul(buyxLiberoFee.mul(2).add(sellxLiberoFeeAdded)).div(realTotalFee);
        uint256 amountToTreasury = contractTokenBalance.sub(amountToLiquify).sub(amountToBurn).sub(amountToRFV).sub(amountToxLibero);

        if(amountToLiquify > 0){
            _swapAndLiquify(amountToLiquify);
        }

        if(amountToBurn > 0){
            _basicTransfer(address(this), DEAD, amountToBurn);
        }

        if(amountToRFV > 0){
            if(isRfvInFtm){
                _swapTokensForFTM(amountToRFV, riskFreeValueReceiver);
            }else{
                _swapTokensForUsdc(amountToRFV, riskFreeValueReceiver);
            }
        }

        if(amountToxLibero > 0){
            _swapTokensForUsdc(amountToxLibero, xLiberoReceiver);
        }

        if(amountToTreasury > 0){
            _swapTokensForFTM(amountToTreasury, treasuryReceiver);
        }

        emit SwapBack(contractTokenBalance, amountToLiquify, amountToRFV, amountToTreasury);
    }

    function takeFee(address sender, address recipient, uint256 gonAmount) internal returns (uint256){
        uint256 _realFee = totalBuyFee;
        if(automatedMarketMakerPairs[recipient]) _realFee = totalSellFee;

        uint256 feeAmount = gonAmount.mul(_realFee).div(FEE_DENOMINATOR);

        _gonBalances[address(this)] = _gonBalances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount.div(_gonsPerFragment));

        return gonAmount.sub(feeAmount);
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool){
        uint256 oldValue = _allowedFragments[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            _allowedFragments[msg.sender][spender] = 0;
        } else {
            _allowedFragments[msg.sender][spender] = oldValue.sub(
                subtractedValue
            );
        }
        emit Approval(
            msg.sender,
            spender,
            _allowedFragments[msg.sender][spender]
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external returns (bool){
        _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][
        spender
        ].add(addedValue);
        emit Approval(
            msg.sender,
            spender,
            _allowedFragments[msg.sender][spender]
        );
        return true;
    }

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

    function _rebase() private {
        if(!inSwap) {
            int256 supplyDelta = int256(_totalSupply.mul(rewardYield).div(REWARD_YIELD_DENOMINATOR));

            coreRebase(supplyDelta);
        }
    }

    function coreRebase(int256 supplyDelta) private returns (uint256) {
        uint256 epoch = block.timestamp;

        if (supplyDelta == 0) {
            emit LogRebase(epoch, _totalSupply);
            return _totalSupply;
        }

        if (supplyDelta < 0) {
            _totalSupply = _totalSupply.sub(uint256(-supplyDelta));
        } else {
            _totalSupply = _totalSupply.add(uint256(supplyDelta));
        }

        if (_totalSupply > MAX_SUPPLY) {
            _totalSupply = MAX_SUPPLY;
        }

        _gonsPerFragment = TOTAL_GONS.div(_totalSupply);

        nextRebase = epoch + rebaseFrequency;

        emit LogRebase(epoch, _totalSupply);
        return _totalSupply;
    }

    function manualRebase() external authorized{
        require(!inSwap, "Try again");
        require(nextRebase <= block.timestamp, "Not in time");

        int256 supplyDelta = int256(_totalSupply.mul(rewardYield).div(REWARD_YIELD_DENOMINATOR));

        coreRebase(supplyDelta);
        manualSync();
    }

    function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner {
        require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

        automatedMarketMakerPairs[_pair] = _value;

        if(_value){
            _makerPairs.push(_pair);
        }else{
            require(_makerPairs.length > 1, "Required 1 pair");
            for (uint256 i = 0; i < _makerPairs.length; i++) {
                if (_makerPairs[i] == _pair) {
                    _makerPairs[i] = _makerPairs[_makerPairs.length - 1];
                    _makerPairs.pop();
                    break;
                }
            }
        }

        emit SetAutomatedMarketMakerPair(_pair, _value);
    }

    function setInitialDistributionFinished(bool _value) external onlyOwner {
        require(initialDistributionFinished != _value, "Not changed");
        initialDistributionFinished = _value;
    }

    function setFeeExempt(address _addr, bool _value) external onlyOwner {
        require(_isFeeExempt[_addr] != _value, "Not changed");
        _isFeeExempt[_addr] = _value;
    }

    function setSwapThreshold(uint256 _value) external onlyOwner {
        require(swapThreshold != _value, "Not changed");
        swapThreshold = _value;
    }

    function setFeeReceivers(
        address _liquidityReceiver,
        address _treasuryReceiver,
        address _riskFreeValueReceiver,
        address _xLiberoReceiver
    ) external onlyOwner {
        require(_liquidityReceiver != address(0), "Invalid _liquidityReceiver");
        require(_treasuryReceiver != address(0), "Invalid _treasuryReceiver");
        require(_riskFreeValueReceiver != address(0), "Invalid _riskFreeValueReceiver");
        require(_xLiberoReceiver != address(0), "Invalid _xLiberoReceiver");

        liquidityReceiver = _liquidityReceiver;
        treasuryReceiver = _treasuryReceiver;
        riskFreeValueReceiver = _riskFreeValueReceiver;
        xLiberoReceiver = _xLiberoReceiver;
    }

    function setFees(
        uint256 _liquidityFee,
        uint256 _riskFreeValue,
        uint256 _treasuryFee,
        uint256 _burnFee,
        uint256 _xLiberoFee,
        uint256 _sellFeeTreasuryAdded,
        uint256 _sellFeeRFVAdded,
        uint256 _sellBurnFeeAdded,
        uint256 _sellxLiberoFeeAdded
    ) external onlyOwner {
        liquidityFee = _liquidityFee;
        buyFeeRFV = _riskFreeValue;
        treasuryFee = _treasuryFee;
        buyBurnFee = _burnFee;
        buyxLiberoFee = _xLiberoFee;
        sellFeeTreasuryAdded = _sellFeeTreasuryAdded;
        sellFeeRFVAdded = _sellFeeRFVAdded;
        sellBurnFeeAdded = _sellBurnFeeAdded;
        sellxLiberoFeeAdded = _sellxLiberoFeeAdded;

        totalBuyFee = liquidityFee.add(treasuryFee).add(buyFeeRFV).add(buyBurnFee).add(buyxLiberoFee);
        totalSellFee = totalBuyFee.add(sellFeeTreasuryAdded).add(sellFeeRFVAdded).add(sellBurnFeeAdded).add(sellxLiberoFeeAdded);

        require(totalBuyFee < MAX_TOTAL_BUY_FEE_RATE, "Total buy fee too high");
        require(totalSellFee < MAX_TOTAL_SELL_FEE_RATE, "Total sell fee too high");
    }

    function clearStuckBalance(address _receiver) external onlyOwner {
        uint256 balance = address(this).balance;
        payable(_receiver).transfer(balance);
    }

    function rescueToken(address tokenAddress) external onlyOwner returns (bool success){
        require(tokenAddress != address(this),"Not allow recuse Libero");
        uint256 amount = ERC20Detailed(tokenAddress).balanceOf(address(this));
        return ERC20Detailed(tokenAddress).transfer(msg.sender, amount);
    }

    function setAutoRebase(bool _autoRebase) external onlyOwner {
        require(autoRebase != _autoRebase, "Not changed");
        autoRebase = _autoRebase;
    }

    function setRebaseFrequency(uint256 _rebaseFrequency) external onlyOwner {
        require(_rebaseFrequency <= MAX_REBASE_FREQUENCY, "Too high");
        rebaseFrequency = _rebaseFrequency;
    }

    function setRewardYield(uint256 _rewardYield) external onlyOwner {
        require(rewardYield != _rewardYield, "Not changed");
        rewardYield = _rewardYield;
    }

    function setFeesOnNormalTransfers(bool _enabled) external onlyOwner {
        require(feesOnNormalTransfers != _enabled, "Not changed");
        feesOnNormalTransfers = _enabled;
    }

    function setIsLiquidityEnabled(bool _value) external onlyOwner {
        require(isLiquidityEnabled != _value, "Not changed");
        isLiquidityEnabled = _value;
    }

    function setIsLiquidityInFtm(bool _value) external onlyOwner {
        require(isLiquidityInFtm != _value, "Not changed");
        isLiquidityInFtm = _value;
    }

    function setIsRfvInFtm(bool _value) external onlyOwner {
        require(isRfvInFtm != _value, "Not changed");
        isRfvInFtm = _value;
    }

    function setNextRebase(uint256 _nextRebase) external onlyOwner {
        nextRebase = _nextRebase;
    }

    function setMaxSellTransaction(uint256 _maxTxn) external onlyOwner {
        require(_maxTxn >= MIN_MAX_SELL_AMOUNT, "Too small");
        maxSellTransactionAmount = _maxTxn;
    }

    event SwapBack(uint256 contractTokenBalance,uint256 amountToLiquify,uint256 amountToRFV,uint256 amountToTreasury);
    event SwapAndLiquify(uint256 tokensSwapped, uint256 ftmReceived, uint256 tokensIntoLiqudity);
    event SwapAndLiquifyUsdc(uint256 tokensSwapped, uint256 usdcReceived, uint256 tokensIntoLiqudity);
    event LogRebase(uint256 indexed epoch, uint256 totalSupply);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event GenericErrorEvent(string reason);
}

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":"address","name":"adr","type":"address"}],"name":"Authorized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"GenericErrorEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","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":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ftmReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"usdcReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquifyUsdc","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"contractTokenBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToLiquify","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToRFV","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToTreasury","type":"uint256"}],"name":"SwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"adr","type":"address"}],"name":"Unauthorized","type":"event"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","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":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeeRFV","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyxLiberoFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesOnNormalTransfers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialDistributionFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLiquidityEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLiquidityInFtm","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":"isRfvInFtm","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSellTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardYield","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskFreeValueReceiver","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":[],"name":"sellBurnFeeAdded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRFVAdded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeTreasuryAdded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellxLiberoFeeAdded","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_autoRebase","type":"bool"}],"name":"setAutoRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityReceiver","type":"address"},{"internalType":"address","name":"_treasuryReceiver","type":"address"},{"internalType":"address","name":"_riskFreeValueReceiver","type":"address"},{"internalType":"address","name":"_xLiberoReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_riskFreeValue","type":"uint256"},{"internalType":"uint256","name":"_treasuryFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_xLiberoFee","type":"uint256"},{"internalType":"uint256","name":"_sellFeeTreasuryAdded","type":"uint256"},{"internalType":"uint256","name":"_sellFeeRFVAdded","type":"uint256"},{"internalType":"uint256","name":"_sellBurnFeeAdded","type":"uint256"},{"internalType":"uint256","name":"_sellxLiberoFeeAdded","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setFeesOnNormalTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setInitialDistributionFinished","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setIsLiquidityEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setIsLiquidityInFtm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setIsRfvInFtm","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTxn","type":"uint256"}],"name":"setMaxSellTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nextRebase","type":"uint256"}],"name":"setNextRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rebaseFrequency","type":"uint256"}],"name":"setRebaseFrequency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardYield","type":"uint256"}],"name":"setRewardYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdcToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"xLiberoReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805460ff60281b1960ff60201b1963ff0000001962ffffff1990931662010000179290921663010000001791909116640100000000171665010000000000179055621567996005556102586006556301e1338042016007556a01a784379d99db420000006008556954b40b1f852bda000000600955600d80546001600160a01b031990811673730736e3cdffc531b74eb8b30bd2cc50beb8ab3c17909155600e80548216733ff8970f17d463b83d289827b7b8e5eed61cc3e8179055600f805482167314c02711a4678fc7de388e77e99b07753c856e8417905560108054909116738689edab5bdb17b11273a5c9412c4bbc8f2ec4f817905560286013819055601e60148181556032601581905560168290556000601781905560188390556019859055601a819055601b819055620001719490936200015d93928492909183919062002def62000839602090811b91909117901c565b6200083960201b62002def1790919060201c565b601c55620001a7601b546200015d601a546200015d6019546200015d601854601c546200083960201b62002def1790919060201c565b601d55348015620001b757600080fd5b50604080518082018252601f81527f46616e746f6d204c696265726f2046696e616e6369616c2046726565646f6d00602080830191825283518085019094526007845266464c494245524f60c81b9084015281513393916012916200021f9160009162000c11565b5081516200023590600190602085019062000c11565b50600280546001600160a01b039586166101008102610100600160a81b031960ff90951660ff199384161794909416939093179091556000918252600360209081526040928390208054909216600117909155601180546001600160a01b03191673f491e7b69e4244ad4002bc14e878a34207e38c291790819055825163c45a015560e01b8152925195169463c45a01559450600480840194509192909190829003018186803b158015620002e957600080fd5b505afa158015620002fe573d6000803e3d6000fd5b505050506040513d60208110156200031557600080fd5b5051601154604080516315ab88c960e31b815290516001600160a01b039384169363c9c6539693309391169163ad5c464891600480820192602092909190829003018186803b1580156200036857600080fd5b505afa1580156200037d573d6000803e3d6000fd5b505050506040513d60208110156200039457600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620003e757600080fd5b505af1158015620003fc573d6000803e3d6000fd5b505050506040513d60208110156200041357600080fd5b5051601280546001600160a01b0319166001600160a01b039283161790556011546040805163c45a015560e01b81529051600093929092169163c45a015591600480820192602092909190829003018186803b1580156200047357600080fd5b505afa15801562000488573d6000803e3d6000fd5b505050506040513d60208110156200049f57600080fd5b5051604080516364e329cb60e11b81523060048201527304068da6c83afcfa0e13ba15a6696662335d5b75602482015290516001600160a01b039092169163c9c65396916044808201926020929091908290030181600087803b1580156200050657600080fd5b505af11580156200051b573d6000803e3d6000fd5b505050506040513d60208110156200053257600080fd5b50513060008181526022602090815260408083206011546001600160a01b03908116855292528083206000199081905560128054841685528285208290559484528184208190558286168452922091909155905491925062000597911660016200089b565b620005a48160016200089b565b6b04d8c55aefb8c05b5c000000601f9081553360009081526021602090815260409091206b0370271e937e2b9a33ffffff19908190559154620005f1929162002e6a62000b07821b17901c565b6020908155600e546001600160a01b039081166000908152600a835260408082208054600160ff199182168117909255600f54851684528284208054821683179055308452828420805482168317905533845282842080549091169091179055601154815163095ea7b360e01b8152931660048401526000196024840152517304068da6c83afcfa0e13ba15a6696662335d5b759363095ea7b393604480820194929392918390030190829087803b158015620006ad57600080fd5b505af1158015620006c2573d6000803e3d6000fd5b505050506040513d6020811015620006d957600080fd5b50506040805163095ea7b360e01b81526001600160a01b0383166004820152600019602482015290517304068da6c83afcfa0e13ba15a6696662335d5b759163095ea7b39160448083019260209291908290030181600087803b1580156200074057600080fd5b505af115801562000755573d6000803e3d6000fd5b505050506040513d60208110156200076c57600080fd5b50506040805163095ea7b360e01b8152306004820152600019602482015290517304068da6c83afcfa0e13ba15a6696662335d5b759163095ea7b39160448083019260209291908290030181600087803b158015620007ca57600080fd5b505af1158015620007df573d6000803e3d6000fd5b505050506040513d6020811015620007f657600080fd5b5050601f54604080519182525133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35062000cbd565b60008282018381101562000894576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b620008a63362000b51565b620008b057600080fd5b6001600160a01b0382166000908152600c602052604090205460ff161515811515141562000919576040805162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b604482015290519081900360640190fd5b6001600160a01b0382166000908152600c60205260409020805460ff191682158015919091179091556200099857600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b03841617905562000acb565b600b54600110620009e2576040805162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b604482015290519081900360640190fd5b60005b600b5481101562000ac957826001600160a01b0316600b828154811062000a0857fe5b6000918252602090912001546001600160a01b0316141562000ac057600b8054600019810190811062000a3757fe5b600091825260209091200154600b80546001600160a01b03909216918390811062000a5e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600b80548062000a9857fe5b600082815260209020810160001990810180546001600160a01b031916905501905562000ac9565b600101620009e5565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b60006200089483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b6a60201b60201c565b60025461010090046001600160a01b0390811691161490565b6000818362000bfa5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000bbe57818101518382015260200162000ba4565b50505050905090810190601f16801562000bec5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858162000c0757fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928262000c49576000855562000c94565b82601f1062000c6457805160ff191683800117855562000c94565b8280016001018555821562000c94579182015b8281111562000c9457825182559160200191906001019062000c77565b5062000ca292915062000ca6565b5090565b5b8082111562000ca2576000815560010162000ca7565b6144cd8062000ccd6000396000f3fe6080604052600436106104185760003560e01c80638102c57011610228578063b62496f511610128578063e15beb80116100bb578063f2fde38b1161008a578063f887ea401161006f578063f887ea4014610ed8578063fd06e24614610eed578063fe9fbb8014610f025761041f565b8063f2fde38b14610e6c578063f3a54f2c14610eac5761041f565b8063e15beb8014610dd6578063e71dc3f514610e02578063e98ca27614610e17578063f0b37c0414610e2c5761041f565b8063cc32d176116100f7578063cc32d17614610d24578063d1fce26414610d39578063d439979014610d4e578063dd62ed3e14610d8e5761041f565b8063b62496f514610c7a578063b6a5d7de14610cba578063b9a6a13c14610cfa578063bc7e68a314610d0f5761041f565b80639ae7372d116101bb578063a8aa1b311161018a578063add5df661161016f578063add5df6614610bf4578063ae74df3314610c50578063af9b800e14610c655761041f565b8063a8aa1b3114610b99578063a9059cbb14610bae5761041f565b80639ae7372d14610aea5780639d0014b114610b145780639d9241ec14610b3e578063a457c2d714610b535761041f565b806395d89b41116101f757806395d89b4114610a635780639763eec414610a7857806398118cb414610a8d5780639a7a23d614610aa25761041f565b80638102c570146109dc57806389375abf146109f15780638ebfc79614610a065780639079f93214610a4e5761041f565b8063313ce567116103335780635abe6711116102c657806370a0823111610295578063764d72bf1161027a578063764d72bf146109725780637ac82927146109b25780637d4b5017146109c75761041f565b806370a082311461091d578063753d02a11461095d5761041f565b80635abe67111461089d5780635c38ffe2146108b257806361a9d1b1146108dc57806369511136146108f15761041f565b806343e1f26b1161030257806343e1f26b146108095780634460d3cf1461081e5780634cd9ddf21461085e57806359b107b9146108885761041f565b8063313ce567146107145780633643f1d51461073f578063395093511461076b5780633c8e556d146107b15761041f565b80631276089b116103ab578063264d26dd1161037a578063264d26dd14610680578063266579f6146106955780632b112e49146106bf5780632f54bf6e146106d45761041f565b80631276089b146105c157806318160ddd146105ef5780631c37b3151461060457806323b872dd146106305761041f565b806308b1fd8f116103e757806308b1fd8f146104ff578063095ea7b31461053d5780630af083141461059757806311eac855146105ac5761041f565b806302259e9e146104245780630445b6671461044b57806306fdde03146104605780630719b36d146104ea5761041f565b3661041f57005b600080fd5b34801561043057600080fd5b50610439610f42565b60408051918252519081900360200190f35b34801561045757600080fd5b50610439610f48565b34801561046c57600080fd5b50610475610f4e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104af578181015183820152602001610497565b50505050905090810190601f1680156104dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104f657600080fd5b50610439611003565b34801561050b57600080fd5b50610514611009565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561054957600080fd5b506105836004803603604081101561056057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611025565b604080519115158252519081900360200190f35b3480156105a357600080fd5b50610439611099565b3480156105b857600080fd5b5061051461109f565b3480156105cd57600080fd5b506105ed600480360360208110156105e457600080fd5b503515156110b7565b005b3480156105fb57600080fd5b50610439611172565b34801561061057600080fd5b506105ed6004803603602081101561062757600080fd5b50351515611178565b34801561063c57600080fd5b506105836004803603606081101561065357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135611245565b34801561068c57600080fd5b50610514611378565b3480156106a157600080fd5b506105ed600480360360208110156106b857600080fd5b5035611394565b3480156106cb57600080fd5b5061043961141c565b3480156106e057600080fd5b50610583600480360360208110156106f757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114ba565b34801561072057600080fd5b506107296114e3565b6040805160ff9092168252519081900360200190f35b34801561074b57600080fd5b506105ed6004803603602081101561076257600080fd5b503515156114ec565b34801561077757600080fd5b506105836004803603604081101561078e57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356115bb565b3480156107bd57600080fd5b506105ed600480360360808110156107d457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013582169160408201358116916060013516611668565b34801561081557600080fd5b506104396118f7565b34801561082a57600080fd5b506105836004803603602081101561084157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118fd565b34801561086a57600080fd5b506105ed6004803603602081101561088157600080fd5b5035611ad7565b34801561089457600080fd5b50610439611b5f565b3480156108a957600080fd5b50610583611b65565b3480156108be57600080fd5b506105ed600480360360208110156108d557600080fd5b5035611b74565b3480156108e857600080fd5b506105ed611c03565b3480156108fd57600080fd5b506105ed6004803603602081101561091457600080fd5b50351515611d31565b34801561092957600080fd5b506104396004803603602081101561094057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611dfc565b34801561096957600080fd5b506105ed611e2f565b34801561097e57600080fd5b506105ed6004803603602081101561099557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611fdb565b3480156109be57600080fd5b50610439612037565b3480156109d357600080fd5b5061051461203d565b3480156109e857600080fd5b50610439612059565b3480156109fd57600080fd5b5061043961205f565b348015610a1257600080fd5b506105ed60048036036040811015610a2957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515612065565b348015610a5a57600080fd5b50610583612168565b348015610a6f57600080fd5b50610475612176565b348015610a8457600080fd5b506104396121f4565b348015610a9957600080fd5b506104396121fa565b348015610aae57600080fd5b506105ed60048036036040811015610ac557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515612200565b348015610af657600080fd5b506105ed60048036036020811015610b0d57600080fd5b50356125aa565b348015610b2057600080fd5b506105ed60048036036020811015610b3757600080fd5b50356125c1565b348015610b4a57600080fd5b50610439612649565b348015610b5f57600080fd5b5061058360048036036040811015610b7657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561264f565b348015610ba557600080fd5b5061051461276c565b348015610bba57600080fd5b5061058360048036036040811015610bd157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135612788565b348015610c0057600080fd5b506105ed6004803603610120811015610c1857600080fd5b5080359060208101359060408101359060608101359060808101359060a08101359060c08101359060e08101359061010001356127c1565b348015610c5c57600080fd5b50610439612938565b348015610c7157600080fd5b5061058361293e565b348015610c8657600080fd5b5061058360048036036020811015610c9d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612950565b348015610cc657600080fd5b506105ed60048036036020811015610cdd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612965565b348015610d0657600080fd5b506105146129fd565b348015610d1b57600080fd5b50610439612a19565b348015610d3057600080fd5b50610439612a1f565b348015610d4557600080fd5b50610583612a25565b348015610d5a57600080fd5b5061058360048036036020811015610d7157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612a2e565b348015610d9a57600080fd5b5061043960048036036040811015610db157600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516612a59565b348015610de257600080fd5b506105ed60048036036020811015610df957600080fd5b50351515612a91565b348015610e0e57600080fd5b50610439612b58565b348015610e2357600080fd5b50610583612b5e565b348015610e3857600080fd5b506105ed60048036036020811015610e4f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612b6f565b348015610e7857600080fd5b506105ed60048036036020811015610e8f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612c04565b348015610eb857600080fd5b506105ed60048036036020811015610ecf57600080fd5b50351515612ccf565b348015610ee457600080fd5b50610514612d98565b348015610ef957600080fd5b50610583612db4565b348015610f0e57600080fd5b5061058360048036036020811015610f2557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612dc4565b60085481565b60095481565b60008054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff85780601f10610fcd57610100808354040283529160200191610ff8565b820191906000526020600020905b815481529060010190602001808311610fdb57829003601f168201915b505050505090505b90565b60175481565b600e5473ffffffffffffffffffffffffffffffffffffffff1681565b33600081815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60055481565b7304068da6c83afcfa0e13ba15a6696662335d5b7581565b6110c0336114ba565b6110c957600080fd5b60045460ff161515811515141561114157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b600480547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b601f5490565b611181336114ba565b61118a57600080fd5b60045460ff640100000000909104161515811515141561120b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b60048054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b60008273ffffffffffffffffffffffffffffffffffffffff811661126857600080fd5b73ffffffffffffffffffffffffffffffffffffffff851660009081526022602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461136157604080518082018252601681527f496e73756666696369656e7420416c6c6f77616e63650000000000000000000060208083019190915273ffffffffffffffffffffffffffffffffffffffff8816600090815260228252838120338252909152919091205461132f918590612eac565b73ffffffffffffffffffffffffffffffffffffffff861660009081526022602090815260408083203384529091529020555b61136c858585612f5d565b50600195945050505050565b600d5473ffffffffffffffffffffffffffffffffffffffff1681565b61139d336114ba565b6113a657600080fd5b80600554141561141757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b600555565b6020805460219091527f97ea4a93fb5e400340102ffa4fa5d31ef170c1e583d2cb268c876db385f80bb05461dead60009081527fda90364631e387f138e7e413f1de75a8ecb4767574209ddf012729113dea45c05490926114b59290916114af91906114a9907ffffffffffffffffffffffffffffffffffffffffffc8fd8e16c81d465cc000000906132e6565b906132e6565b90612e6a565b905090565b60025473ffffffffffffffffffffffffffffffffffffffff82811661010090920416145b919050565b60025460ff1690565b6114f5336114ba565b6114fe57600080fd5b60045460ff65010000000000909104161515811515141561158057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b6004805491151565010000000000027fffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff909216919091179055565b33600090815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120546115f69083612def565b33600081815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b611671336114ba565b61167a57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84166116fc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f496e76616c6964205f6c69717569646974795265636569766572000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff831661177e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e76616c6964205f7472656173757279526563656976657200000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821661180057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e76616c6964205f7269736b4672656556616c756552656365697665720000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661188257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964205f784c696265726f52656365697665720000000000000000604482015290519081900360640190fd5b600d805473ffffffffffffffffffffffffffffffffffffffff9586167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617909155600e805494861694821694909417909355600f80549285169284169290921790915560108054919093169116179055565b601b5481565b6000611908336114ba565b61191157600080fd5b73ffffffffffffffffffffffffffffffffffffffff821630141561199657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f7420616c6c6f7720726563757365204c696265726f000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119ff57600080fd5b505afa158015611a13573d6000803e3d6000fd5b505050506040513d6020811015611a2957600080fd5b5051604080517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052905191925073ffffffffffffffffffffffffffffffffffffffff85169163a9059cbb916044808201926020929091908290030181600087803b158015611aa457600080fd5b505af1158015611ab8573d6000803e3d6000fd5b505050506040513d6020811015611ace57600080fd5b50519392505050565b611ae0336114ba565b611ae957600080fd5b610708811115611b5a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f546f6f2068696768000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600655565b601c5481565b60045462010000900460ff1681565b611b7d336114ba565b611b8657600080fd5b683635c9adc5dea00000811015611bfe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f546f6f20736d616c6c0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600855565b611c0c33612dc4565b611c1557600080fd5b601e5460ff1615611c8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f54727920616761696e0000000000000000000000000000000000000000000000604482015290519081900360640190fd5b426007541115611cf857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f7420696e2074696d65000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000611d1a6402540be4006114af600554601f5461332890919063ffffffff16565b9050611d258161339b565b50611d2e611e2f565b50565b611d3a336114ba565b611d4357600080fd5b60045460ff63010000009091041615158115151415611dc357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b600480549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b6020805473ffffffffffffffffffffffffffffffffffffffff831660009081526021909252604082205461109391612e6a565b60005b600b54811015611d2e57600b8181548110611e4957fe5b6000918252602082200154604080517ffff6cae9000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169263fff6cae99260048084019382900301818387803b158015611eb757600080fd5b505af1925050508015611ec8575060015b611fd357611ed461436e565b80611edf5750611fc9565b7f6bb22edb6252e9e04a83e4886d28bc5662efe624ec664e2d0e4b38854c3c23836040518080602001828103825260278152602001806144716027913960400191505060405180910390a17f6bb22edb6252e9e04a83e4886d28bc5662efe624ec664e2d0e4b38854c3c2383816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611f89578181015183820152602001611f71565b50505050905090810190601f168015611fb65780820380516001836020036101000a031916815260200191505b509250505060405180910390a150611fd3565b3d6000803e3d6000fd5b600101611e32565b611fe4336114ba565b611fed57600080fd5b604051479073ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015612032573d6000803e3d6000fd5b505050565b60195481565b600f5473ffffffffffffffffffffffffffffffffffffffff1681565b60185481565b60065481565b61206e336114ba565b61207757600080fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff161515811515141561211257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600a6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600454610100900460ff1681565b60018054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6101008789161502019095169490940493840181900481028201810190925282815260609390929091830182828015610ff85780601f10610fcd57610100808354040283529160200191610ff8565b60155481565b60135481565b612209336114ba565b61221257600080fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff16151581151514156122ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f56616c756520616c726561647920736574000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016821580159190911790915561237a57600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055612561565b600b546001106123eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5265717569726564203120706169720000000000000000000000000000000000604482015290519081900360640190fd5b60005b600b5481101561255f578273ffffffffffffffffffffffffffffffffffffffff16600b828154811061241c57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561255757600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061247457fe5b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff90921691839081106124a757fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b8054806124fa57fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905561255f565b6001016123ee565b505b6040518115159073ffffffffffffffffffffffffffffffffffffffff8416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6125b3336114ba565b6125bc57600080fd5b600755565b6125ca336114ba565b6125d357600080fd5b80600954141561264457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b600955565b601d5481565b33600090815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091528120548083106126bd5733600090815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff881684529091528120556126f9565b6126c781846132e6565b33600090815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff891684529091529020555b33600081815260226020908152604080832073ffffffffffffffffffffffffffffffffffffffff89168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b60008273ffffffffffffffffffffffffffffffffffffffff81166127ab57600080fd5b6127b6338585612f5d565b506001949350505050565b6127ca336114ba565b6127d357600080fd5b6013899055601588905560148790556016869055601785905560188490556019839055601a829055601b8190556128188561281288818c818f8e612def565b90612def565b601c81905550612847601b54612812601a54612812601954612812601854601c54612def90919063ffffffff16565b601d55601c5460fa116128bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f546f74616c206275792066656520746f6f206869676800000000000000000000604482015290519081900360640190fd5b6101f4601d541061292d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f546f74616c2073656c6c2066656520746f6f2068696768000000000000000000604482015290519081900360640190fd5b505050505050505050565b601a5481565b60045465010000000000900460ff1681565b600c6020526000908152604090205460ff1681565b61296e336114ba565b61297757600080fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815192835290517fdc84e3a4c83602050e3865df792a4e6800211a79ac60db94e703a820ce8929249281900390910190a150565b60105473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60145481565b60045460ff1681565b73ffffffffffffffffffffffffffffffffffffffff166000908152600a602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260226020908152604080832093909416825291909152205490565b612a9a336114ba565b612aa357600080fd5b60045460ff6101009091041615158115151415612b2157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b60048054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b60165481565b600454640100000000900460ff1681565b612b78336114ba565b612b8157600080fd5b73ffffffffffffffffffffffffffffffffffffffff811660008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055815192835290517f8e4a23d6a5d81f013eca4bc92aeb9214ccafcaebd1f097c350c922d6e19122d59281900390910190a150565b612c0d336114ba565b612c1657600080fd5b600280547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff84169081029190911790915560008181526003602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815192835290517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639281900390910190a150565b612cd8336114ba565b612ce157600080fd5b60045460ff620100009091041615158115151415612d6057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f74206368616e676564000000000000000000000000000000000000000000604482015290519081900360640190fd5b6004805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b60115473ffffffffffffffffffffffffffffffffffffffff1681565b6004546301000000900460ff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205460ff1690565b600082820183811015612e6357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000612e6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506134c1565b60008184841115612f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612f1a578181015183820152602001612f02565b50505050905090810190601f168015612f475780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600a6020526040812054819060ff1680612fb8575073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205460ff165b60045490915060ff1680612fc95750805b61303457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f54726164696e67206e6f74207374617274656400000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c602052604090205460ff168015613067575080155b156130dd576008548311156130dd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4572726f7220616d6f756e740000000000000000000000000000000000000000604482015290519081900360640190fd5b601e5460ff16156130fb576130f3858585613540565b915050612e63565b60006131126020548561332890919063ffffffff16565b905061311c613636565b15613129576131296136a3565b73ffffffffffffffffffffffffffffffffffffffff861660009081526021602052604090205461315990826132e6565b73ffffffffffffffffffffffffffffffffffffffff871660009081526021602052604081209190915561318c878761393d565b61319657816131a1565b6131a1878784613a1c565b73ffffffffffffffffffffffffffffffffffffffff87166000908152602160205260409020549091506131d49082612def565b73ffffffffffffffffffffffffffffffffffffffff8088166000818152602160209081526040909120939093559154908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613234908590612e6a565b60408051918252519081900360200190a361324d613b06565b80156132605750600454610100900460ff165b8015613292575073ffffffffffffffffffffffffffffffffffffffff87166000908152600c602052604090205460ff16155b80156132c4575073ffffffffffffffffffffffffffffffffffffffff86166000908152600c602052604090205460ff16155b156132d9576132d1613b0f565b6132d9611e2f565b5060019695505050505050565b6000612e6383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612eac565b60008261333757506000611093565b8282028284828161334457fe5b0414612e63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806144506021913960400191505060405180910390fd5b600042826133e557601f54604080519182525182917f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2919081900360200190a25050601f546114de565b600083121561340757601f546133ff9060008590036132e6565b601f55613418565b601f546134149084612def565b601f555b601f546fffffffffffffffffffffffffffffffff1015613447576fffffffffffffffffffffffffffffffff601f555b601f54613475907ffffffffffffffffffffffffffffffffffffffffffc8fd8e16c81d465cc00000090612e6a565b60209081556006548201600755601f54604080519182525183927f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2928290030190a25050601f54919050565b6000818361352a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201818152835160248401528351909283926044909101919085019080838360008315612f1a578181015183820152602001612f02565b50600083858161353657fe5b0495945050505050565b6000806135586020548461332890919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff861660009081526021602052604090205490915061358b90826132e6565b73ffffffffffffffffffffffffffffffffffffffff80871660009081526021602052604080822093909355908616815220546135c79082612def565b73ffffffffffffffffffffffffffffffffffffffff80861660008181526021602090815260409182902094909455805187815290519193928916927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001949350505050565b336000908152600c602052604081205460ff161580156136595750601e5460ff16155b801561366757506000600954115b801561368957506000613687601d54601c54612def90919063ffffffff16565b115b80156114b5575060095461369c30611dfc565b1015905090565b601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055601d54601c546000916136e19190612def565b60045490915060009065010000000000900460ff16613701576000613705565b6013545b6020805430600090815260219092526040822054929350909161372791612e6a565b90506000613744846114af61373d866002613328565b8590613328565b90506000613772856114af61376b601a54612812600260165461332890919063ffffffff16565b8690613328565b905060006137a0866114af613799601954612812600260155461332890919063ffffffff16565b8790613328565b905060006137ce876114af6137c7601b54612812600260175461332890919063ffffffff16565b8890613328565b905060006137e4826114a9858188818c8c6132e6565b905084156137f5576137f585613b4b565b831561380a576138083061dead86613540565b505b821561387057600454640100000000900460ff161561384c57600f5461384790849073ffffffffffffffffffffffffffffffffffffffff16613d91565b613870565b600f5461387090849073ffffffffffffffffffffffffffffffffffffffff16613fb6565b811561389a5760105461389a90839073ffffffffffffffffffffffffffffffffffffffff16613fb6565b80156138c457600e546138c490829073ffffffffffffffffffffffffffffffffffffffff16613d91565b60408051878152602081018790528082018590526060810183905290517fa4903880285538fa6ffa51cad044f25c39cc7f89aa6cbbda844135ff94827edf9181900360800190a15050601e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604081205460ff1680613996575073ffffffffffffffffffffffffffffffffffffffff82166000908152600a602052604090205460ff165b156139a357506000611093565b60045462010000900460ff16156139bc57506001611093565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205460ff1680613a15575073ffffffffffffffffffffffffffffffffffffffff82166000908152600c602052604090205460ff165b9050611093565b601c5473ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604081205490919060ff1615613a555750601d545b6000613a676103e86114af8685613328565b30600090815260216020526040902054909150613a849082612def565b30600081815260216020908152604090912092909255905473ffffffffffffffffffffffffffffffffffffffff8816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90613ae1908590612e6a565b60408051918252519081900360200190a3613afc84826132e6565b9695505050505050565b60075442101590565b601e5460ff16613b49576000613b3b6402540be4006114af600554601f5461332890919063ffffffff16565b9050613b468161339b565b50505b565b6000613b58826002612e6a565b90506000613b6683836132e6565b6004549091506301000000900460ff1615613be55747613b868330613d91565b6000613b9247836132e6565b9050613b9e83826141b5565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a15050612032565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290516000917304068da6c83afcfa0e13ba15a6696662335d5b75916370a0823191602480820192602092909190829003018186803b158015613c5357600080fd5b505afa158015613c67573d6000803e3d6000fd5b505050506040513d6020811015613c7d57600080fd5b50519050613c8b8330613fb6565b6000613d3e827304068da6c83afcfa0e13ba15a6696662335d5b7573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015613d0c57600080fd5b505afa158015613d20573d6000803e3d6000fd5b505050506040513d6020811015613d3657600080fd5b5051906132e6565b9050613d4a8382614281565b604080518581526020810183905280820185905290517f42563dfd1c3e559df99e21ffc35d82ea7e18a20669e5d3a6d69a4e63af3200e09181900360600190a15050505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110613dc057fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015613e3a57600080fd5b505afa158015613e4e573d6000803e3d6000fd5b505050506040513d6020811015613e6457600080fd5b5051815182906001908110613e7557fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613f70578181015183820152602001613f58565b505050509050019650505050505050600060405180830381600087803b158015613f9957600080fd5b505af1158015613fad573d6000803e3d6000fd5b50505050505050565b60408051600380825260808201909252600091602082016060803683370190505090503081600081518110613fe757fe5b73ffffffffffffffffffffffffffffffffffffffff928316602091820292909201810191909152601154604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b15801561406157600080fd5b505afa158015614075573d6000803e3d6000fd5b505050506040513d602081101561408b57600080fd5b505181518290600190811061409c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507304068da6c83afcfa0e13ba15a6696662335d5b75816002815181106140f857fe5b73ffffffffffffffffffffffffffffffffffffffff9283166020918202929092018101919091526011546040517f5c11d795000000000000000000000000000000000000000000000000000000008152600481018781526000602483018190528786166064840152426084840181905260a060448501908152885160a486015288519590971696635c11d795968b9693958a958c9590939260c49092019187810191028083838b8315613f70578181015183820152602001613f58565b601154600d54604080517ff305d71900000000000000000000000000000000000000000000000000000000815230600482015260248101869052600060448201819052606482015273ffffffffffffffffffffffffffffffffffffffff92831660848201524260a48201529051919092169163f305d71991849160c48082019260609290919082900301818588803b15801561425057600080fd5b505af1158015614264573d6000803e3d6000fd5b50505050506040513d606081101561427b57600080fd5b50505050565b601154600d54604080517fe8e337000000000000000000000000000000000000000000000000000000000081523060048201527304068da6c83afcfa0e13ba15a6696662335d5b756024820152604481018690526064810185905260006084820181905260a4820181905273ffffffffffffffffffffffffffffffffffffffff93841660c48301524260e48301529151929093169263e8e33700926101048083019360609383900390910190829087803b15801561433e57600080fd5b505af1158015614352573d6000803e3d6000fd5b505050506040513d606081101561427b57600080fd5b60e01c90565b600060443d101561437e57611000565b600481823e6308c379a06143928251614368565b1461439c57611000565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d67ffffffffffffffff81602484011181841117156143ea5750505050611000565b828401925082519150808211156144045750505050611000565b503d8301602082840101111561441c57505050611000565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01681016020016040529150509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776d616e75616c53796e6328293a205f6d616b657250616972732e73796e632829204661696c6564a2646970667358221220d3bf1dbef9d0fbdff8215978209d74d09a236613d6706a59439d28c6dae7cf0864736f6c63430007060033

Deployed ByteCode Sourcemap

7646:21683:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8177:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8244:46;;;;;;;;;;;;;:::i;5721:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9961:32;;;;;;;;;;;;;:::i;9497:76::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22038:220;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22038:220:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8030:36;;;;;;;;;;;;;:::i;9322:78::-;;;;;;;;;;;;;:::i;24282:199::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24282:199:0;;;;:::i;:::-;;12284:102;;;;;;;;;;;;;:::i;28355:148::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28355:148:0;;;;:::i;16066:419::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16066:419:0;;;;;;;;;;;;;;;;;;:::i;9413:77::-;;;;;;;;;;;;;:::i;27626:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27626:172:0;;:::i;13579:170::-;;;;;;;;;;;;;:::i;1000:103::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1000:103:0;;;;:::i;5907:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28001:172;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28001:172:0;;;;:::i;21652:378::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21652:378:0;;;;;;;;;:::i;24845:738::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24845:738:0;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10131:38::-;;;;;;;;;;;;;:::i;26920:321::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26920:321:0;;;;:::i;27420:198::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27420:198:0;;:::i;10176:108::-;;;;;;;;;;;;;:::i;7859:40::-;;;;;;;;;;;;;:::i;28625:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28625:183:0;;:::i;23222:315::-;;;;;;;;;;;;;:::i;28181:166::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28181:166:0;;;;:::i;12554:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12554:136:0;;;;:::i;13757:358::-;;;;;;;;;;;;;:::i;26742:170::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26742:170:0;;;;:::i;10047:35::-;;;;;;;;;;;;;:::i;9580:81::-;;;;;;;;;;;;;:::i;10000:40::-;;;;;;;;;;;;;:::i;8073:36::-;;;;;;;;;;;;;:::i;24489:180::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24489:180:0;;;;;;;;;;;:::i;7822:30::-;;;;;;;;;;;;;:::i;5812:87::-;;;;;;;;;;;;;:::i;9888:29::-;;;;;;;;;;;;;:::i;9811:32::-;;;;;;;;;;;;;:::i;23545:729::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23545:729:0;;;;;;;;;;;:::i;28511:106::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28511:106:0;;:::i;24677:160::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24677:160:0;;:::i;10291:135::-;;;;;;;;;;;;;:::i;21072:572::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21072:572:0;;;;;;;;;:::i;9783:19::-;;;;;;;;;;;;;:::i;14123:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14123:173:0;;;;;;;;;:::i;25591:1143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25591:1143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10089:35::-;;;;;;;;;;;;;:::i;7984:37::-;;;;;;;;;;;;;:::i;8379:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8379:58:0;;;;:::i;729:125::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;729:125:0;;;;:::i;9668:75::-;;;;;;;;;;;;;:::i;8116:54::-;;;;;;;;;;;;;:::i;9850:31::-;;;;;;;;;;;;;:::i;7768:47::-;;;;;;;;;;;;;:::i;12698:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12698:113:0;;;;:::i;12394:152::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12394:152:0;;;;;;;;;;;:::i;27249:163::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27249:163:0;;;;:::i;9924:30::-;;;;;;;;;;;;;:::i;7948:29::-;;;;;;;;;;;;;:::i;862:130::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;862:130:0;;;;:::i;1226:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1226:173:0;;;;:::i;27806:187::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27806:187:0;;;;:::i;9752:24::-;;;;;;;;;;;;;:::i;7906:35::-;;;;;;;;;;;;;:::i;1111:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1111:107:0;;;;:::i;8177:60::-;;;;:::o;8244:46::-;;;;:::o;5721:83::-;5791:5;5784:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5758:13;;5784:12;;5791:5;;5784:12;;5791:5;5784:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5721:83;;:::o;9961:32::-;;;;:::o;9497:76::-;;;;;;:::o;22038:220::-;22148:10;22114:4;22130:29;;;:17;:29;;;;;;;;;:38;;;;;;;;;;;:46;;;22192:36;;;;;;;22114:4;;22130:38;;22148:10;;22192:36;;;;;;;;-1:-1:-1;22246:4:0;22038:220;;;;;:::o;8030:36::-;;;;:::o;9322:78::-;9358:42;9322:78;:::o;24282:199::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;24373:27:::1;::::0;::::1;;:37;;::::0;::::1;;;;24365:61;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;24437:27;:36:::0;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;24282:199::o;12284:102::-;12366:12;;12284:102;:::o;28355:148::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;28429:10:::1;::::0;::::1;::::0;;;::::1;;:20;;::::0;::::1;;;;28421:44;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28476:10;:19:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;28355:148::o;16066:419::-;16175:4;16162:2;10607:18;;;10599:27;;;;;;16196:23:::1;::::0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;16220:10:::1;16196:35:::0;;;;;;;;16243:2:::1;16196:50;16192:221;;16301:100;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;:23:::1;::::0;::::1;-1:-1:-1::0;16301:23:0;;;:17:::1;:23:::0;;;;;16339:10:::1;16301:63:::0;;;;;;;;;;:100:::1;::::0;16369:5;;16301:67:::1;:100::i;:::-;16263:23;::::0;::::1;;::::0;;;:17:::1;:23;::::0;;;;;;;16287:10:::1;16263:35:::0;;;;;;;:138;16192:221:::1;16425:30;16439:4;16445:2;16449:5;16425:13;:30::i;:::-;-1:-1:-1::0;16473:4:0::1;::::0;16066:419;-1:-1:-1;;;;;16066:419:0:o;9413:77::-;;;;;;:::o;27626:172::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;27725:12:::1;27710:11;;:27;;27702:51;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27764:11;:26:::0;27626:172::o;13579:170::-;13724:16;;;13699:12;:18;;;;;9192:42;13632:7;13675:18;;;;;13632:7;;13659:82;;13724:16;;13660:58;;13699:18;13660:34;;9041:54;;13660:14;:34::i;:::-;:38;;:58::i;:::-;13659:64;;:82::i;:::-;13652:89;;13579:170;:::o;1000:103::-;1090:5;;;1079:16;;;1090:5;;;;;1079:16;1000:103;;;;:::o;5907:83::-;5973:9;;;;5907:83;:::o;28001:172::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;28083:18:::1;::::0;::::1;::::0;;;::::1;;:28;;::::0;::::1;;;;28075:52;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28138:18;:27:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;28001:172::o;21652:378::-;21809:10;21734:4;21791:29;;;:17;:29;;;;;;;;;:58;;;;;;;;;;:74;;21854:10;21791:62;:74::i;:::-;21768:10;21750:29;;;;:17;:29;;;;;;;;;:38;;;;;;;;;;;;:115;;;21881:119;;;;;;21750:38;;21881:119;;;;;;;;;;;-1:-1:-1;22018:4:0;21652:378;;;;:::o;24845:738::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;25064:32:::1;::::0;::::1;25056:71;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25146:31;::::0;::::1;25138:69;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25226:36;::::0;::::1;25218:79;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25316:30;::::0;::::1;25308:67;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25388:17;:38:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;25437:16:::1;:36:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;25484:21:::1;:46:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;25541:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;24845:738::o;10131:38::-;;;;:::o;26920:321::-;26991:12;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;27023:29:::1;::::0;::::1;27047:4;27023:29;;27015:64;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27090:14;27121:12;27107:37;;;27153:4;27107:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;27107:52:0;27177:56:::1;::::0;;;;;27214:10:::1;27177:56;::::0;::::1;::::0;;;;;;;;;27107:52;;-1:-1:-1;27177:36:0::1;::::0;::::1;::::0;::::1;::::0;:56;;;;;27107:52:::1;::::0;27177:56;;;;;;;;-1:-1:-1;27177:36:0;:56;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;27177:56:0;;26920:321;-1:-1:-1;;;26920:321:0:o;27420:198::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;8806:4:::1;27512:16;:40;;27504:61;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27576:15;:34:::0;27420:198::o;10176:108::-;;;;:::o;7859:40::-;;;;;;;;;:::o;28625:183::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;8738:13:::1;28711:7;:30;;28703:52;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28766:24;:34:::0;28625:183::o;23222:315::-;685:24;698:10;685:12;:24::i;:::-;677:33;;;;;;23285:6:::1;::::0;::::1;;23284:7;23276:29;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;23338:15;23324:10;;:29;;23316:53;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;23382:18;23410:59;8498:11;23410:29;23427:11;;23410:12;;:16;;:29;;;;:::i;:59::-;23382:88;;23483:23;23494:11;23483:10;:23::i;:::-;;23517:12;:10;:12::i;:::-;712:1;23222:315::o:0;28181:166::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;28261:16:::1;::::0;::::1;::::0;;;::::1;;:26;;::::0;::::1;;;;28253:50;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;28314:16;:25:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;28181:166::o;12554:136::-;12665:16;;;12643:17;;;12616:7;12643:17;;;:12;:17;;;;;;;:39;;:21;:39::i;13757:358::-;13801:6;13797:311;13817:11;:18;13813:22;;13797:311;;;13872:11;13884:1;13872:14;;;;;;;;;;;;;;;;;13860:34;;;;;;;;13872:14;;;;;13860:32;;:34;;;;;;;;;;13872:14;;13860:34;;;;;;;;;;;;;;;;;;;;;;;;;13856:241;;;;:::i;:::-;;;;;;;;13972:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14056:25;14074:6;14056:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13913:184;13856:241;;;;;;;;;;;13837:3;;13797:311;;26742:170;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;26868:36:::1;::::0;26836:21:::1;::::0;26868:27:::1;::::0;::::1;::::0;:36;::::1;;;::::0;26836:21;;26818:15:::1;26868:36:::0;26818:15;26868:36;26836:21;26868:27;:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;627:1;26742:170:::0;:::o;10047:35::-;;;;:::o;9580:81::-;;;;;;:::o;10000:40::-;;;;:::o;8073:36::-;;;;:::o;24489:180::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;24577:19:::1;::::0;::::1;;::::0;;;:12:::1;:19;::::0;;;;;::::1;;:29;;::::0;::::1;;;;24569:53;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;24633:19;::::0;;;::::1;;::::0;;;:12:::1;:19;::::0;;;;:28;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;24489:180::o;7822:30::-;;;;;;;;;:::o;5812:87::-;5884:7;5877:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5851:13;;5877:14;;5884:7;;5877:14;;5884:7;5877:14;;;;;;;;;;;;;;;;;;;;;;;;9888:29;;;;:::o;9811:32::-;;;;:::o;23545:729::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;23646:32:::1;::::0;::::1;;::::0;;;:25:::1;:32;::::0;;;;;::::1;;:42;;::::0;::::1;;;;23638:72;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;23723:32;::::0;::::1;;::::0;;;:25:::1;:32;::::0;;;;:41;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;23777:430:::1;;23802:11;:23:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;23802:23:0;;;;;::::1;::::0;;;::::1;;::::0;::::1;;::::0;;23777:430:::1;;;23864:11;:18:::0;23885:1:::1;-1:-1:-1::0;23856:50:0::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;23926:9;23921:275;23945:11;:18:::0;23941:22;::::1;23921:275;;;24011:5;23993:23;;:11;24005:1;23993:14;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;::::1;;:23;23989:192;;;24058:11;24070:18:::0;;:22;;;;24058:35;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;24041:11:::1;:14:::0;;24058:35:::1;::::0;;::::1;::::0;24053:1;;24041:14;::::1;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;24116:11;:17;;;;;;;;::::0;;;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;24156:5:::1;;23989:192;23965:3;;23921:275;;;;23777:430;24224:42;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;23545:729:::0;;:::o;28511:106::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;28585:10:::1;:24:::0;28511:106::o;24677:160::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;24774:6:::1;24757:13;;:23;;24749:47;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;24807:13;:22:::0;24677:160::o;10291:135::-;;;;:::o;21072:572::-;21212:10;21159:4;21194:29;;;:17;:29;;;;;;;;;:38;;;;;;;;;;21247:27;;;21243:237;;21309:10;21332:1;21291:29;;;:17;:29;;;;;;;;;:38;;;;;;;;;:42;21243:237;;;21407:61;:8;21438:15;21407:12;:61::i;:::-;21384:10;21366:29;;;;:17;:29;;;;;;;;;:38;;;;;;;;;:102;21243:237;21518:10;21565:29;;;;:17;:29;;;;;;;;21495:119;;;21565:38;;;;;;;;;;;21495:119;;;;;;;;;21518:10;21495:119;;;;;;;;;;;-1:-1:-1;21632:4:0;;21072:572;-1:-1:-1;;;21072:572:0:o;9783:19::-;;;;;;:::o;14123:173::-;14214:4;14201:2;10607:18;;;10599:27;;;;;;14230:36:::1;14244:10;14256:2;14260:5;14230:13;:36::i;:::-;-1:-1:-1::0;14284:4:0::1;::::0;14123:173;-1:-1:-1;;;;14123:173:0:o;25591:1143::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;25948:12:::1;:28:::0;;;25987:9:::1;:26:::0;;;26024:11:::1;:26:::0;;;26061:10:::1;:21:::0;;;26093:13:::1;:27:::0;;;26131:20:::1;:44:::0;;;26186:15:::1;:34:::0;;;26231:16:::1;:36:::0;;;26278:19:::1;:42:::0;;;26347:79:::1;26109:11:::0;26347:60:::1;26074:8:::0;26347:60;25999:14;26347:60;25963:13;26038:12;26347:16:::1;:29::i;:::-;:33:::0;::::1;:44::i;:79::-;26333:11;:93;;;;26452:105;26537:19;;26452:80;26515:16;;26452:58;26494:15;;26452:37;26468:20;;26452:11;;:15;;:37;;;;:::i;:105::-;26437:12;:120:::0;26578:11:::1;::::0;8566:3:::1;-1:-1:-1::0;26570:71:0::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;8627:3;26660:12;;:38;26652:74;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;25591:1143:::0;;;;;;;;;:::o;10089:35::-;;;;:::o;7984:37::-;;;;;;;;;:::o;8379:58::-;;;;;;;;;;;;;;;:::o;729:125::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;789:19:::1;::::0;::::1;;::::0;;;:14:::1;:19;::::0;;;;;;;;:26;;;::::1;811:4;789:26;::::0;;831:15;;;;;;;::::1;::::0;;;;;;;;::::1;729:125:::0;:::o;9668:75::-;;;;;;:::o;8116:54::-;;;;:::o;9850:31::-;;;;:::o;7768:47::-;;;;;;:::o;12698:113::-;12784:19;;12760:4;12784:19;;;:12;:19;;;;;;;;;12698:113::o;12394:152::-;12504:25;;;;12478:7;12504:25;;;:17;:25;;;;;;;;:34;;;;;;;;;;;;;12394:152::o;27249:163::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;27328:10:::1;::::0;::::1;;::::0;;::::1;;:25;;::::0;::::1;;;;27320:49;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27380:10;:24:::0;;;::::1;;;;::::0;;;::::1;::::0;;;::::1;::::0;;27249:163::o;9924:30::-;;;;:::o;7948:29::-;;;;;;;;;:::o;862:130::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;924:19:::1;::::0;::::1;946:5;924:19:::0;;;:14:::1;:19;::::0;;;;;;;;:27;;;::::1;::::0;;967:17;;;;;;;::::1;::::0;;;;;;;;::::1;862:130:::0;:::o;1226:173::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;1302:5:::1;:11:::0;;;::::1;;;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;1324:19:0;;;:14:::1;:19;::::0;;;;;;;;:26;;;::::1;-1:-1:-1::0;1324:26:0::1;::::0;;1366:25;;;;;;;::::1;::::0;;;;;;;;::::1;1226:173:::0;:::o;27806:187::-;605:19;613:10;605:7;:19::i;:::-;597:28;;;;;;27893:21:::1;::::0;::::1;::::0;;;::::1;;:33;;::::0;::::1;;;;27885:57;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;27953:21;:32:::0;;;::::1;;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;27806:187::o;9752:24::-;;;;;;:::o;7906:35::-;;;;;;;;;:::o;1111:107::-;1191:19;;1167:4;1191:19;;;:14;:19;;;;;;;;;1111:107::o;2608:181::-;2666:7;2698:5;;;2722:6;;;;2714:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2780:1;2608:181;-1:-1:-1;;;2608:181:0:o;3433:132::-;3491:7;3518:39;3522:1;3525;3518:39;;;;;;;;;;;;;;;;;:3;:39::i;2941:226::-;3061:7;3097:12;3089:6;;;;3081:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3133:5:0;;;2941:226::o;14663:1395::-;14795:20;;;14755:4;14795:20;;;:12;:20;;;;;;14755:4;;14795:20;;;:47;;-1:-1:-1;14819:23:0;;;;;;;:12;:23;;;;;;;;14795:47;14863:27;;14772:70;;-1:-1:-1;14863:27:0;;;:46;;;14894:15;14863:46;14855:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14964:36;;;;;;;:25;:36;;;;;;;;:69;;;;;15018:15;15017:16;14964:69;14946:185;;;15078:24;;15068:6;:34;;15060:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15147:6;;;;15143:87;;;15177:41;15192:6;15200:9;15211:6;15177:14;:41::i;:::-;15170:48;;;;;15143:87;15242:17;15262:28;15273:16;;15262:6;:10;;:28;;;;:::i;:::-;15242:48;;15307:16;:14;:16::i;:::-;15303:59;;;15340:10;:8;:10::i;:::-;15397:20;;;;;;;:12;:20;;;;;;:35;;15422:9;15397:24;:35::i;:::-;15374:20;;;;;;;:12;:20;;;;;:58;;;;15473:32;15387:6;15495:9;15473:13;:32::i;:::-;:84;;15548:9;15473:84;;;15508:37;15516:6;15524:9;15535;15508:7;:37::i;:::-;15594:23;;;;;;;:12;:23;;;;;;15445:112;;-1:-1:-1;15594:46:0;;15445:112;15594:27;:46::i;:::-;15568:23;;;;;;;;:12;:23;;;;;;;;:72;;;;15748:16;;15658:118;;;;;;15726:39;;:17;;:21;:39::i;:::-;15658:118;;;;;;;;;;;;;;;15806:14;:12;:14::i;:::-;:41;;;;-1:-1:-1;15837:10:0;;;;;;;15806:41;:92;;;;-1:-1:-1;15865:33:0;;;;;;;:25;:33;;;;;;;;15864:34;15806:92;:146;;;;-1:-1:-1;15916:36:0;;;;;;;:25;:36;;;;;;;;15915:37;15806:146;15789:238;;;15979:9;:7;:9::i;:::-;16003:12;:10;:12::i;:::-;-1:-1:-1;16046:4:0;;14663:1395;-1:-1:-1;;;;;;14663:1395:0:o;2797:136::-;2855:7;2882:43;2886:1;2889;2882:43;;;;;;;;;;;;;;;;;:3;:43::i;3175:250::-;3233:7;3257:6;3253:47;;-1:-1:-1;3287:1:0;3280:8;;3253:47;3324:5;;;3328:1;3324;:5;:1;3348:5;;;;;:10;3340:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22486:728;22543:7;22579:15;22611:16;22607:118;;22666:12;;22649:30;;;;;;;22659:5;;22649:30;;;;;;;;;;-1:-1:-1;;22701:12:0;;22694:19;;22607:118;22755:1;22741:11;:15;22737:188;;;22788:12;;:39;;22813:12;;;;22788:16;:39::i;:::-;22773:12;:54;22737:188;;;22875:12;;:38;;22900:11;22875:16;:38::i;:::-;22860:12;:53;22737:188;22941:12;;22956:10;-1:-1:-1;22937:83:0;;;22998:10;22983:12;:25;22937:83;23066:12;;23051:28;;9041:54;;23051:14;:28::i;:::-;23032:16;:47;;;23113:15;;23105:23;;23092:10;:36;23163:12;;23146:30;;;;;;;23105:5;;23146:30;;;;;;;;-1:-1:-1;;23194:12:0;;22486:728;;;:::o;3573:225::-;3693:7;3728:12;3721:5;3713:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3752:9;3768:1;3764;:5;;;;;;;3573:225;-1:-1:-1;;;;;3573:225:0:o;14304:351::-;14388:4;14405:17;14425:28;14436:16;;14425:6;:10;;:28;;;;:::i;:::-;14485:18;;;;;;;:12;:18;;;;;;14405:48;;-1:-1:-1;14485:33:0;;14405:48;14485:22;:33::i;:::-;14464:18;;;;;;;;:12;:18;;;;;;:54;;;;14548:16;;;;;;;:31;;14569:9;14548:20;:31::i;:::-;14529:16;;;;;;;;:12;:16;;;;;;;;;:50;;;;14597:26;;;;;;;14529:16;;14597:26;;;;;;;;;;;;;-1:-1:-1;14643:4:0;;14304:351;-1:-1:-1;;;;14304:351:0:o;13293:278::-;13402:10;13342:4;13376:37;;;:25;:37;;;;;;;;13375:38;:58;;;;-1:-1:-1;13427:6:0;;;;13426:7;13375:58;:88;;;;;13462:1;13446:13;;:17;13375:88;:134;;;;;13508:1;13476:29;13492:12;;13476:11;;:15;;:29;;;;:::i;:::-;:33;13375:134;:188;;;;;13550:13;;13522:24;13540:4;13522:9;:24::i;:::-;:41;;13359:204;;13293:278;:::o;18888:1661::-;10486:6;:13;;;;10495:4;10486:13;;;18976:12:::1;::::0;18960:11:::1;::::0;10486:6;;18960:29:::1;::::0;:11;:15:::1;:29::i;:::-;19032:18;::::0;18937:52;;-1:-1:-1;19002:27:0::1;::::0;19032:18;;::::1;;;:37;;19068:1;19032:37;;;19053:12;;19032:37;19143:16;::::0;;19132:4:::1;19080:28;19111:27:::0;;;:12:::1;:27:::0;;;;;;;19002:67;;-1:-1:-1;19080:28:0;;19111:49:::1;::::0;:31:::1;:49::i;:::-;19080:80:::0;-1:-1:-1;19173:23:0::1;19199:70;19256:12:::0;19199:52:::1;19224:26;:19:::0;19248:1:::1;19224:23;:26::i;:::-;19199:20:::0;;:24:::1;:52::i;:70::-;19173:96;;19280:20;19303:83;19373:12;19303:65;19328:39;19350:16;;19328:17;19343:1;19328:10;;:14;;:17;;;;:::i;:39::-;19303:20:::0;;:24:::1;:65::i;:83::-;19280:106;;19397:19;19419:81;19487:12;19419:63;19444:37;19465:15;;19444:16;19458:1;19444:9;;:13;;:16;;;;:::i;:37::-;19419:20:::0;;:24:::1;:63::i;:81::-;19397:103;;19511:23;19537:89;19613:12;19537:71;19562:45;19587:19;;19562:20;19580:1;19562:13;;:17;;:20;;;;:::i;:45::-;19537:20:::0;;:24:::1;:71::i;:89::-;19511:115:::0;-1:-1:-1;19637:24:0::1;19664:97;19511:115:::0;19664:76:::1;19728:11:::0;19664:76;19710:12;19664:76;:20;19689:15;19664:24:::1;:41::i;:97::-;19637:124:::0;-1:-1:-1;19777:19:0;;19774:82:::1;;19812:32;19828:15;19812;:32::i;:::-;19871:16:::0;;19868:96:::1;;19903:49;19926:4;9192:42;19939:12;19903:14;:49::i;:::-;;19868:96;19979:15:::0;;19976:240:::1;;20013:10;::::0;;;::::1;;;20010:195;;;20074:21;::::0;20043:53:::1;::::0;20061:11;;20074:21:::1;;20043:17;:53::i;:::-;20010:195;;;20167:21;::::0;20135:54:::1;::::0;20154:11;;20167:21:::1;;20135:18;:54::i;:::-;20231:19:::0;;20228:102:::1;;20302:15;::::0;20266:52:::1;::::0;20285:15;;20302::::1;;20266:18;:52::i;:::-;20345:20:::0;;20342:104:::1;;20417:16;::::0;20381:53:::1;::::0;20399:16;;20417::::1;;20381:17;:53::i;:::-;20463:78;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;10522:6:0;:14;;;;;;-1:-1:-1;;;;;;18888:1661:0:o;12935:350::-;13027:18;;;13007:4;13027:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;13049:16:0;;;;;;;:12;:16;;;;;;;;13027:38;13024:254;;;-1:-1:-1;13088:5:0;13081:12;;13024:254;13114:21;;;;;;;13110:168;;;-1:-1:-1;13158:4:0;13151:11;;13110:168;13201:31;;;;;;;:25;:31;;;;;;;;;:64;;-1:-1:-1;13236:29:0;;;;;;;:25;:29;;;;;;;;13201:64;13193:73;;;;20557:507;20684:11;;20709:36;;;20646:7;20709:36;;;:25;:36;;;;;;20646:7;;20684:11;20709:36;;20706:64;;;-1:-1:-1;20758:12:0;;20706:64;20783:17;20803:44;8680:4;20803:23;:9;20817:8;20803:13;:23::i;:44::-;20911:4;20890:27;;;;:12;:27;;;;;;20783:64;;-1:-1:-1;20890:42:0;;20783:64;20890:31;:42::i;:::-;20881:4;20860:27;;;;:12;:27;;;;;;;;:72;;;;20994:16;;20860:27;20948:64;;;;;20980:31;;:9;;:13;:31::i;:::-;20948:64;;;;;;;;;;;;;;;21032:24;:9;21046;21032:13;:24::i;:::-;21025:31;20557:507;-1:-1:-1;;;;;;20557:507:0:o;12819:108::-;12890:10;;12904:15;-1:-1:-1;12890:29:0;12819:108;:::o;22266:212::-;22308:6;;;;22304:167;;22331:18;22359:59;8498:11;22359:29;22376:11;;22359:12;;:16;;:29;;;;:::i;:59::-;22331:88;;22436:23;22447:11;22436:10;:23::i;:::-;;22304:167;;22266:212::o;16493:921::-;16567:12;16582:27;:20;16607:1;16582:24;:27::i;:::-;16567:42;-1:-1:-1;16620:17:0;16640:30;:20;16567:42;16640:24;:30::i;:::-;16686:16;;16620:50;;-1:-1:-1;16686:16:0;;;;;16683:724;;;16743:21;16781:38;16799:4;16813;16781:17;:38::i;:::-;16836:18;16857:41;:21;16883:14;16857:25;:41::i;:::-;16836:62;;16915:36;16929:9;16940:10;16915:13;:36::i;:::-;16973:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16683:724;;;;;17072:42;;;;;;17108:4;17072:42;;;;;;17047:22;;9358:42;;17072:27;;:42;;;;;;;;;;;;;;;9358;17072;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17072:42:0;;-1:-1:-1;17131:39:0;17150:4;17164;17131:18;:39::i;:::-;17187:18;17208:62;17255:14;9358:42;17208:27;;;17244:4;17208:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17208:42:0;;:46;:62::i;:::-;17187:83;;17287:39;17304:9;17315:10;17287:16;:39::i;:::-;17348:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16683:724;;16493:921;;;:::o;18048:396::-;18157:16;;;18171:1;18157:16;;;;;;;;18133:21;;18157:16;;;;;;;;;;-1:-1:-1;18157:16:0;18133:40;;18202:4;18184;18189:1;18184:7;;;;;;;;:23;;;;:7;;;;;;;;;;:23;;;;18228:6;;:13;;;;;;;;:6;;;;;:11;;:13;;;;;18184:7;;18228:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18228:13:0;18218:7;;:4;;18223:1;;18218:7;;;;;;;;;;;:23;;;;;;;;;;;18254:6;;;;;;;;;;;:57;;;18326:11;18352:1;18368:4;18387:8;18410:15;18254:182;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18048:396;;;:::o;18450:430::-;18560:16;;;18574:1;18560:16;;;;;;;;;18536:21;;18560:16;;;;;;;;;;-1:-1:-1;18560:16:0;18536:40;;18605:4;18587;18592:1;18587:7;;;;;;;;:23;;;;:7;;;;;;;;;;:23;;;;18631:6;;:13;;;;;;;;:6;;;;;:11;;:13;;;;;18587:7;;18631:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18631:13:0;18621:7;;:4;;18626:1;;18621:7;;;;;;;;;;;:23;;;;;;;;;;;9358:42;18655:4;18660:1;18655:7;;;;;;;;:19;;;;:7;;;;;;;;;;:19;;;;18687:6;;:185;;;;;;;;;;;:6;:185;;;;;;;;;;;;;18846:15;18687:185;;;;;;;;;;;;;;;;;;;;;:6;;;;;:60;;18762:11;;18687:6;;18804:4;;18823:8;;18687:185;;;;;;;;;;;;;;;;:6;:185;;;;;;;;;;;;;;;;17422:289;17504:6;;17645:17;;17504:199;;;;;;17567:4;17504:199;;;;;;;;;;:6;:199;;;;;;;;;;:6;17645:17;;;17504:199;;;;17677:15;17504:199;;;;;;:6;;;;;:22;;17534:9;;17504:199;;;;;;;;;;;;;;;17534:9;17504:6;:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;17422:289:0:o;17719:321::-;17805:6;;17974:17;;17805:227;;;;;;17847:4;17805:227;;;;9358:42;17805:227;;;;;;;;;;;;;;;;:6;:227;;;;;;;;;;;;:6;17974:17;;;17805:227;;;;18006:15;17805:227;;;;;;:6;;;;;:19;;:227;;;;;;;;;;;;;;;;:6;:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:88:1;89:3;85:15;;71:31::o;107:883::-;;188:4;170:16;167:26;164:2;;;196:5;;164:2;237:1;232:3;227;212:27;299:10;261:36;292:3;286:10;261:36;:::i;:::-;258:52;248:2;;314:5;;248:2;348;342:9;406:66;388:16;384:89;381:1;375:4;360:114;503:4;497:11;527:16;562:18;633:2;626:4;618:6;614:17;611:25;606:2;598:6;595:14;592:45;589:2;;;640:5;;;;;;589:2;677:6;671:4;667:17;656:28;;713:3;707:10;693:24;;740:2;732:6;729:14;726:2;;;746:5;;;;;;726:2;;807:16;801:4;797:27;790:4;781:6;776:3;772:16;768:27;765:60;762:2;;;828:5;;;;;762:2;884;872:15;889:66;868:88;859:98;;959:4;855:109;851:2;844:121;863:3;-1:-1:-1;;154:836:1;:::o

Swarm Source

ipfs://d3bf1dbef9d0fbdff8215978209d74d09a236613d6706a59439d28c6dae7cf08
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
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.