Contract 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xee6b0fbd2cd4650adbe18c7c27e3c0f7dc28e5b2f8473f570c391c356270f112Add Liquidity ET...74918822023-03-21 6:16:4957 mins ago0x05e152d611d4c0f594b010395ebbfc5fcd321df2 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae129.19455476761465 CRO1.161680184510
0xa26eb77545304e800f070b02001dc0b3952337f33e11086b27bcec7ffab5a4feAdd Liquidity ET...74909802023-03-21 4:51:522 hrs 22 mins ago0xecf118d749f1a7f9ffeafd0de386e8c7067760b4 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae659 CRO1.161963281627 4,789.073320589
0x106242e8b372d96aa7c3f361217aba47363a29e591b352b95c8112cbf2c49262Add Liquidity ET...74906432023-03-21 4:20:102 hrs 54 mins ago0x9dd43969fe08cf5e4558dae6baed08a28eef8a9c IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae2,000 CRO1.1616941436590
0x83931e54e3aaa839d92c96b5c1c6ef27979c6d3d364331a27b4e8a9ced2c9ba5Add Liquidity74869312023-03-20 22:30:388 hrs 44 mins ago0x908fc7a8c644c25cb70c75b326cc15b0767236b5 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2713704401090
0x2775d155ca845c7bec5358802b2fd2496be9167203fbe6f7ecc242e54370fa0bAdd Liquidity74864492023-03-20 21:45:179 hrs 29 mins ago0x45606bc29e805abcaa84e156ae2e774fb4204ac7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.27186554891 4,789.281527726
0x861cdfd8604cb2190293ba6a782aee7bd372d5f68285d9d13edede61c346d28eAdd Liquidity74859882023-03-20 21:01:5510 hrs 12 mins ago0x908fc7a8c644c25cb70c75b326cc15b0767236b5 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2713914698020
0xed95ecfaee09a9d508697e30a668c523b38b6595694b3dc36190ccc544b19befRemove Liquidity74847672023-03-20 19:06:5112 hrs 7 mins ago0xd5bc271d9a119b9e46c8ac718a83492b87019ad7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.302164354762 4,789.358648123
0x8b6a40953795547c48e9bf00f0db3172ddf93ba831a4b7af6ae7a976563b7bcaRemove Liquidity74847392023-03-20 19:04:1212 hrs 10 mins ago0xd5bc271d9a119b9e46c8ac718a83492b87019ad7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.576815339159 4,789.359934028
0x0ad3979d64ffa86cb38e1b9cc21bcd4c0f641a38517514c90afb47dbe613b489Add Liquidity74847362023-03-20 19:03:5612 hrs 10 mins ago0x908fc7a8c644c25cb70c75b326cc15b0767236b5 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2397302300050
0xaba29a2224f6863033264d7c966dc9e1faffb37a851a693482b558d1fce72334Add Liquidity74847232023-03-20 19:02:4212 hrs 12 mins ago0x60e7c966c180380ac572210edf678a024789e268 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2713972968390
0x13d20e6c83dfd3cefabadb8f2e9c1721f99510e77364c8af8a3a0c68e273c934Add Liquidity74846362023-03-20 18:54:3112 hrs 20 mins ago0x4bd5bb37eba2c314afca0b029dd0fbea78bc15e8 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2714893226140
0xa41230b459521ac0add28abd97a85aabd29b3a801a341bd1640f485ac71f3ed2Add Liquidity74807052023-03-20 12:43:5118 hrs 30 mins ago0xdd589f5a8762c74202258ab8d3dc371fed9a72a2 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2715370004630
0xaa38a76580aaf8ea19bf64fa7064d6b9b314a8f41b1c13007289a5140faa2a84Remove Liquidity74806702023-03-20 12:40:3318 hrs 34 mins ago0x35ae0e1a7e45c5be4adafac757ab43ca1bb09806 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2680230157870
0x6079708cc589635ae3f698aadac5f96dd34e0b82187628dd655b11c3c338783eAdd Liquidity74767922023-03-20 6:35:051 day 39 mins ago0x4bd5bb37eba2c314afca0b029dd0fbea78bc15e8 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2715847293980
0x84e6c2eef18d777f2ac8260b75dff8ffdc522490a7dca9138ddd9936cd95bff3Add Liquidity74762232023-03-20 5:41:231 day 1 hr ago0xdc9fea91f3d4aec989d6ff69e69121574449a6f4 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2715916811360
0x5e115d462080d8319ae7d2670ae24165f90c3e3607bdeaa9e24bea602f70faedAdd Liquidity ET...74756872023-03-20 4:50:551 day 2 hrs ago0x05e152d611d4c0f594b010395ebbfc5fcd321df2 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae2,057.2729910159974 CRO1.1955987961290
0x565d97ac491e91d264d0fd55b60ff5d20dab54dba1cfeb44ea78e426b1f434e6Remove Liquidity74756452023-03-20 4:46:571 day 2 hrs ago0x05e152d611d4c0f594b010395ebbfc5fcd321df2 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2680842083390
0x3f2862e5348061cfa2439d5508d3c413fa1fe9e552cd1dc3d947f4b7587ac56aAdd Liquidity74748232023-03-20 3:29:341 day 3 hrs ago0x69b623d036e2f0bcd4d1fec7ebceaf0250a28196 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2716088011370
0x68e640fe0c7184698a8ddba1477872aca3b10affbd335ac3d561e67d21da860fRemove Liquidity74744562023-03-20 2:54:551 day 4 hrs ago0x793e1c1644ebce069418f9776afb42feb72aedd7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.2362896563810
0x81a63dd0a1262b2d5f8fc82fd06cfaa5096cf438ee3a8168694ca5bf34165ee3Add Liquidity74740432023-03-20 2:15:581 day 4 hrs ago0x793e1c1644ebce069418f9776afb42feb72aedd7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.3054046554830
0xbff612015351e644da3c3d3917f3c7a384a03b624bfe57e2f2c27c901e41bc95Remove Liquidity74740322023-03-20 2:14:521 day 4 hrs ago0x793e1c1644ebce069418f9776afb42feb72aedd7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae0 CRO1.3017991239340
0x3304d9d75af623e918c786ec02cbc2992c661117c999b8bf99ffa341ebfeef63Add Liquidity ET...74740182023-03-20 2:13:311 day 5 hrs ago0x793e1c1644ebce069418f9776afb42feb72aedd7 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae50 CRO1.2348964420950
0x007a1f1cce36929d90d770000bc6824d76f2a2b052ab13ea0dc7ec0aadde5cc3Add Liquidity ET...74737702023-03-20 1:50:081 day 5 hrs ago0x9dd43969fe08cf5e4558dae6baed08a28eef8a9c IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae10,000 CRO1.161924712090
0x6fef231792923bf58bc2428f08f6bee841a881c59fc2572f3a8b81020b4ff3ceAdd Liquidity ET...74732072023-03-20 0:57:071 day 6 hrs ago0x730733ca69d3b1f151804502c5bdd8e82bf9ee63 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae225.0522139571735 CRO1.162160790542 4,789.887360663
0xc0e8816684f23fadcf2e16aecde7b04bf0d321c7bfa3c010b3b3d1e853ad70e6Add Liquidity ET...74730942023-03-20 0:46:291 day 6 hrs ago0xc1f7e9cfe30cbc0da2c8a3ca303eeb817d018720 IN  0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae1,000 CRO1.1300319345040
[ Download CSV Export 
Latest 23 internal transactions
Parent Txn Hash Block From To Value
0xee6b0fbd2cd4650adbe18c7c27e3c0f7dc28e5b2f8473f570c391c356270f11274918822023-03-21 6:16:4957 mins ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28129.19455476761465 CRO
0xa26eb77545304e800f070b02001dc0b3952337f33e11086b27bcec7ffab5a4fe74909802023-03-21 4:51:522 hrs 22 mins ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28659 CRO
0x106242e8b372d96aa7c3f361217aba47363a29e591b352b95c8112cbf2c4926274906432023-03-21 4:20:102 hrs 54 mins ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf282,000 CRO
0x5e115d462080d8319ae7d2670ae24165f90c3e3607bdeaa9e24bea602f70faed74756872023-03-20 4:50:551 day 2 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf282,057.2729910159974 CRO
0x3304d9d75af623e918c786ec02cbc2992c661117c999b8bf99ffa341ebfeef6374740182023-03-20 2:13:311 day 5 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf2850 CRO
0x007a1f1cce36929d90d770000bc6824d76f2a2b052ab13ea0dc7ec0aadde5cc374737702023-03-20 1:50:081 day 5 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf2810,000 CRO
0x6fef231792923bf58bc2428f08f6bee841a881c59fc2572f3a8b81020b4ff3ce74732072023-03-20 0:57:071 day 6 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28225.0522139571735 CRO
0xc0e8816684f23fadcf2e16aecde7b04bf0d321c7bfa3c010b3b3d1e853ad70e674730942023-03-20 0:46:291 day 6 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281,000 CRO
0x019ac0cf95fd6b3a9a91b104d85681f91b9cd7c764288a025e5b62b8f6c903d374728632023-03-20 0:24:431 day 6 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28390 CRO
0x9e4759e4becfdd8ddad429ef4d60381b3687b81637b67427510e5639d918ff5e74724802023-03-19 23:48:381 day 7 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28240 CRO
0x42c94c658dbdfebf65b9b6f05789a1964c06704e5276abe226b983e6257d088574711422023-03-19 21:42:381 day 9 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281 CRO
0x2c4a92bcb52c6ff6e5d7a5096e0740827d933095574f03f6a61cd5a52297815874711332023-03-19 21:41:471 day 9 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf2810 CRO
0xd718bc25e52cfcf592e1306e3735f6c21fa52b4dc4b227bc431121d3004634ed74700902023-03-19 20:03:301 day 11 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf288.086263779740177 CRO
0x30e0a123830f27ed1b27a734b913c30007e70a827e5fcf3a1d21563eb62dc08874688572023-03-19 18:07:241 day 13 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28110.08676918791149 CRO
0xd3292ecd521f4a770cda8701894869cd6f54186bb9e9657ea5e5df9edaf10a7174687372023-03-19 17:56:061 day 13 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf2829.655038004831386 CRO
0x45af35565240a0b1a8de81db390fb9dc4c2e3a68441c7a86b1a066a8043feaac74674062023-03-19 15:50:341 day 15 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281,200 CRO
0x881072d491250140e24a0eae9c2c75eadf0c9852dac4c3552a8a85cc6155a73274658902023-03-19 13:27:501 day 17 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf285 CRO
0x41c563130aba8ecdb44fbfdb79f7b6def65e1f35a7234aa2e02ab0de48c01abd74638232023-03-19 10:13:041 day 21 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf284,000 CRO
0xce84ea79406e07475a6b8d7955a9e6042146b2392aad98dd872764a8cf53bfbc74634382023-03-19 9:36:501 day 21 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28858.2115673507875 CRO
0x3cb13ec33dadb8763ad011a848235481f8ce0dabf6a1e5493162a3449156907574632982023-03-19 9:23:391 day 21 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf2852.59628915056514 CRO
0xe2bc935eedd6a6dbc96ae43b3bc659408d59f807a00a35462ae128ff48cd488474620002023-03-19 7:21:221 day 23 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281 CRO
0x7d3a9b4033f51f2db23dd93f5719510b1f5bb30f84933c83c471d82648b8ccbf74619582023-03-19 7:17:241 day 23 hrs ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281 CRO
0xfe725b6f7c80192954fa1fdfa724d6066758e1966be4c671998cee7432117bf974613352023-03-19 6:18:502 days 55 mins ago 0xedd89d40ed5562e7e2218e7592a9fe59e54e6dae 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf281 CRO
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PhenixLiquidityManager

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at cronoscan.com on 2023-03-19
*/

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Pair.sol

pragma solidity >=0.5.0;

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

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

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

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

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

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

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

    function initialize(address, address) external;
}

// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol

pragma solidity >=0.5.0;

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol

pragma solidity >=0.6.2;

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

// File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol

pragma solidity >=0.6.2;


interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/PhenixLiquidityManager.sol


pragma solidity ^0.8.9;







contract PhenixLiquidityManager is Ownable {
    // Phenix Liquidity Manange - By Phenix Finance

    // What is the "Phenix Liquidity Manager"?
    // > The Phenix Liquidity Manager is a basic middle-man contract
    // that allows user of the Phenix DEX to add and remove liquidity
    // with tax-based tokens without incuring any of the base token's
    // taxes (such as Phenix Finance's tokens Buy and Sell TAX)


    address public routerAddress;
    address public factoryAddress;
    address public weth;
    bool public isPaused;

    mapping(address => bool) public taxableToken;

    constructor(address _routerAddress) {
        routerAddress = _routerAddress;
        factoryAddress = IUniswapV2Router02(routerAddress).factory();
        weth = IUniswapV2Router02(routerAddress).WETH();
    }

    modifier isOpen() {
        require(isPaused == false, "not permitted");
        _;
    }

    function setRouterAddress(address _address) external onlyOwner {
        routerAddress = _address;
        factoryAddress = IUniswapV2Router02(routerAddress).factory();
        weth = IUniswapV2Router02(routerAddress).WETH();
    }

    function setTaxableToken(address _address, bool _status) external onlyOwner {
        taxableToken[_address] = _status;
    }

    function setIsPaused(bool _status) external onlyOwner {
        isPaused = _status;
    }

    struct AddLiquidityInfo {
        address tokenA;
        address tokenB;
        uint256 amountADesired;
        uint256 amountBDesired;
        uint256 amountAMin;
        uint256 amountBMin;
        address to;
        uint256 deadline;
    }

    struct RemoveLiquidityInfo {
        address tokenA;
        address tokenB;
        uint256 liquidity;
        uint256 amountAMin;
        uint256 amountBMin;
        address to;
        uint256 deadline;
    }

    struct AddLiquidityETHInfo {
        address token;
        uint256 amountTokenDesired;
        uint256 amountTokenMin;
        uint256 amountETHMin;
        address to;
        uint256 deadline;
    }

    struct RemoveLiquidityETHInfo {
        address token;
        uint256 liquidity;
        uint256 amountTokenMin;
        uint256 amountETHMin;
        address to;
        uint256 deadline;
    }

    function addLiquidity(
        AddLiquidityInfo memory data
    ) external isOpen {
        address toAddress = taxableToken[data.tokenA] || taxableToken[data.tokenB] ? address(this) : data.to;

        // Get the pair address
        address pair = IUniswapV2Factory(factoryAddress).getPair(data.tokenA, data.tokenB);

        // Transfer tokens to contract
        require(IERC20(data.tokenA).transferFrom(msg.sender, address(this), data.amountADesired), "Token A Transfer Failed!");
        require(IERC20(data.tokenB).transferFrom(msg.sender, address(this), data.amountBDesired), "Token B Transfer Failed!");

        // Approve router to add liquidity
        IERC20(data.tokenA).approve(routerAddress, data.amountADesired);
        IERC20(data.tokenB).approve(routerAddress, data.amountBDesired);
        
        // Add liquidity with this contract as the receiver of the minted LP tokens
        (,, uint256 _liquidity) = IUniswapV2Router02(routerAddress)
            .addLiquidity(
                data.tokenA,
                data.tokenB,
                data.amountADesired,
                data.amountBDesired,
                data.amountAMin,
                data.amountBMin,
                toAddress,
                data.deadline
            );
        

        if(toAddress == address(this)) {
            // Send received pair tokens to the original "to" address
            require(IERC20(pair).transfer(data.to, _liquidity), "Transfer failed!");
        }

        if(IERC20(data.tokenA).balanceOf(address(this)) > 0) {
            require(IERC20(data.tokenA).transfer(data.to, IERC20(data.tokenA).balanceOf(address(this))), "Token A Refund Failed!");
        }

        if(IERC20(data.tokenB).balanceOf(address(this)) > 0) {
            require(IERC20(data.tokenB).transfer(data.to, IERC20(data.tokenB).balanceOf(address(this))), "Token B Refund Failed!");
        }
    }

    function removeLiquidity(
        RemoveLiquidityInfo memory data
    ) external isOpen {
        address toAddress = taxableToken[data.tokenA] || taxableToken[data.tokenB] ? address(this) : data.to;

        // Get the pair address
        address pair = IUniswapV2Factory(factoryAddress).getPair(data.tokenA, data.tokenB);

        // Transfer Pair Tokens to contract
        require(IERC20(pair).transferFrom(msg.sender, address(this), data.liquidity), "Liquidity Token Transfer Failed!");

        // Approve router to remove liquidity
        IERC20(pair).approve(routerAddress, data.liquidity);

        // Add liquidity with this contract as the receiver of the minted LP tokens
        (uint256 amountA, uint256 amountB) = IUniswapV2Router02(routerAddress)
            .removeLiquidity(
                data.tokenA,
                data.tokenB,
                data.liquidity,
                data.amountAMin,
                data.amountBMin,
                toAddress,
                data.deadline
            );
        

        if(toAddress == address(this)) {
            // Send received tokenA to the original "to" address
            require(IERC20(IUniswapV2Pair(pair).token0()).transfer(data.to, amountA), "Token A Transfer failed!");

            // Send received tokenB to the original "to" address
            require(IERC20(IUniswapV2Pair(pair).token1()).transfer(data.to, amountB), "Token B Transfer failed!");
        }
    }

    function addLiquidityETH(
        AddLiquidityETHInfo memory data
    ) external payable isOpen {
        address toAddress = taxableToken[data.token] ? address(this) : data.to;

        // Transfer token to contract
        require(IERC20(data.token).transferFrom(msg.sender, address(this), data.amountTokenDesired), "Token Transfer Failed");

        // Approve router to add liquidity
        IERC20(data.token).approve(routerAddress, data.amountTokenDesired);

        // Add liquidity with this contract as the receiver of the minted LP tokens
        (,,uint256 _liquidity) = IUniswapV2Router02(routerAddress)
            .addLiquidityETH{ value: msg.value }
            (
                data.token,
                data.amountTokenDesired,
                data.amountTokenMin,
                data.amountETHMin,
                toAddress,
                data.deadline
            );

        if(toAddress == address(this)) {
            // Get the pair address after liquidity has been added
            address pair = IUniswapV2Factory(factoryAddress).getPair(data.token, weth);

            // Send received pair tokens to the original "to" address
            require(IERC20(pair).transfer(data.to, _liquidity), "Transfer failed!");
        }

        if(IERC20(data.token).balanceOf(address(this)) > 0) {
            require(IERC20(data.token).transfer(data.to, IERC20(data.token).balanceOf(address(this))), "Token Refund Failed");
        }

        if(address(this).balance > 0) {
            (bool success, ) = address(data.to).call{
                value: address(this).balance
            }("");

            require(success, "ETH Refund Failed.");
        }
    }

    function removeLiquidityETH(
        RemoveLiquidityETHInfo memory data
    ) external isOpen {
        address toAddress = taxableToken[data.token] ? address(this) : data.to;

        // Get the pair address
        address pair = IUniswapV2Factory(factoryAddress).getPair(data.token, weth);

        // Transfer Pair Tokens to contract
        require(IERC20(pair).transferFrom(msg.sender, address(this), data.liquidity), "Pair Token Transfer Failed!");

        // Approve router to remove liquidity
        IERC20(pair).approve(routerAddress, data.liquidity);

        // Add liquidity with this contract as the receiver of the minted LP tokens
        (uint amountToken, uint amountETH) = IUniswapV2Router02(routerAddress)
            .removeLiquidityETH(
                data.token,
                data.liquidity,
                data.amountTokenMin,
                data.amountETHMin,
                toAddress,
                data.deadline
            );
        

        if(toAddress == address(this)) {
            address _token0 = IUniswapV2Pair(pair).token0();
            address _token1 = IUniswapV2Pair(pair).token1();
            address _token = _token0 == weth ? _token1 : _token0;

            // Send received token to the original "to" address
            require(IERC20(_token).transfer(data.to, amountToken), "Token Transfer failed!");

            // Send received ETH to original "to" address
            (bool success, ) = address(data.to).call{
                value: amountETH
            }("");

            require(success, "Failed to recover ETH.");

 
        }
    }

    function emergencyRecoverETH() external onlyOwner {
        require(address(this).balance > 0, "No ETH to recover.");
        (bool success, ) = address(msg.sender).call{
            value: address(this).balance
        }("");
        require(success, "Failed to recover ETH.");
    }

    function emergencyRecoverToken(address _tokenAddress) external onlyOwner {
        require(
            IERC20(_tokenAddress).balanceOf(address(this)) > 0,
            "No tokens to recover."
        );
        IERC20(_tokenAddress).transfer(
            msg.sender,
            IERC20(_tokenAddress).balanceOf(address(this))
        );
    }

}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_routerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.AddLiquidityInfo","name":"data","type":"tuple"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.AddLiquidityETHInfo","name":"data","type":"tuple"}],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"emergencyRecoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"emergencyRecoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factoryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.RemoveLiquidityInfo","name":"data","type":"tuple"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct PhenixLiquidityManager.RemoveLiquidityETHInfo","name":"data","type":"tuple"}],"name":"removeLiquidityETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setIsPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setTaxableToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxableToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620026f7380380620026f78339810160408190526200003491620001bb565b6200003f336200016b565b600180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000099573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000bf9190620001bb565b600280546001600160a01b0319166001600160a01b03928316179055600154604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa1580156200011e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001449190620001bb565b600380546001600160a01b0319166001600160a01b039290921691909117905550620001ed565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001ce57600080fd5b81516001600160a01b0381168114620001e657600080fd5b9392505050565b6124fa80620001fd6000396000f3fe6080604052600436106100fe5760003560e01c806368f47877116100955780638da5cb5b116100645780638da5cb5b1461027f578063966dae0e1461029d578063b187bd26146102bd578063d4339f7f146102ee578063f2fde38b1461031e57600080fd5b806368f478771461020a578063715018a61461022a57806384cec8551461023f57806386bce9921461025f57600080fd5b8063240976bf116100d1578063240976bf1461016d5780633268cc561461018d5780633fc8cef3146101ca57806341cb87fc146101ea57600080fd5b8063045076501461010357806307f594a314610118578063186e2d7714610138578063237902161461014d575b600080fd5b610116610111366004612178565b61033e565b005b34801561012457600080fd5b5061011661013336600461219b565b6108ed565b34801561014457600080fd5b50610116610a7b565b34801561015957600080fd5b506101166101683660046121b8565b610b5c565b34801561017957600080fd5b5061011661018836600461227e565b61139a565b34801561019957600080fd5b506001546101ad906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101d657600080fd5b506003546101ad906001600160a01b031681565b3480156101f657600080fd5b5061011661020536600461219b565b6113c0565b34801561021657600080fd5b5061011661022536600461229b565b6114ea565b34801561023657600080fd5b5061011661151d565b34801561024b57600080fd5b5061011661025a3660046122d4565b611531565b34801561026b57600080fd5b5061011661027a366004612178565b611a87565b34801561028b57600080fd5b506000546001600160a01b03166101ad565b3480156102a957600080fd5b506002546101ad906001600160a01b031681565b3480156102c957600080fd5b506003546102de90600160a01b900460ff1681565b60405190151581526020016101c1565b3480156102fa57600080fd5b506102de61030936600461219b565b60046020526000908152604090205460ff1681565b34801561032a57600080fd5b5061011661033936600461219b565b611f99565b600354600160a01b900460ff16156103715760405162461bcd60e51b815260040161036890612380565b60405180910390fd5b80516001600160a01b031660009081526004602052604081205460ff1661039c57816080015161039e565b305b825160208401516040516323b872dd60e01b81529293506001600160a01b03909116916323b872dd916103d791339130916004016123a7565b6020604051808303816000875af11580156103f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041a91906123cb565b61045e5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b88151c985b9cd9995c8811985a5b1959605a1b6044820152606401610368565b8151600154602084015160405163095ea7b360e01b81526001600160a01b039384169363095ea7b393610496939116916004016123e8565b6020604051808303816000875af11580156104b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d991906123cb565b5060015482516020840151604080860151606087015160a0880151925163f305d71960e01b81526000966001600160a01b03169563f305d71995349561052895929491938b9190600401612401565b60606040518083038185885af1158015610546573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061056b919061243c565b925050306001600160a01b0384160390506106b757600254835160035460405163e6a4390560e01b81526001600160a01b0392831660048201529082166024820152600092919091169063e6a4390590604401602060405180830381865afa1580156105db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ff919061246a565b608085015160405163a9059cbb60e01b81529192506001600160a01b0383169163a9059cbb916106339186906004016123e8565b6020604051808303816000875af1158015610652573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067691906123cb565b6106b55760405162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c65642160801b6044820152606401610368565b505b82516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190612487565b111561084457825160808401516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa15801561077e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a29190612487565b6040518363ffffffff1660e01b81526004016107bf9291906123e8565b6020604051808303816000875af11580156107de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080291906123cb565b6108445760405162461bcd60e51b8152602060048201526013602482015272151bdad95b881499599d5b990811985a5b1959606a1b6044820152606401610368565b47156108e857600083608001516001600160a01b03164760405160006040518083038185875af1925050503d806000811461089b576040519150601f19603f3d011682016040523d82523d6000602084013e6108a0565b606091505b50509050806108e65760405162461bcd60e51b815260206004820152601260248201527122aa24102932b33ab732102330b4b632b21760711b6044820152606401610368565b505b505050565b6108f561200f565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561093c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109609190612487565b116109a55760405162461bcd60e51b81526020600482015260156024820152742737903a37b5b2b739903a37903932b1b7bb32b91760591b6044820152606401610368565b6040516370a0823160e01b81523060048201526001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a179190612487565b6040518363ffffffff1660e01b8152600401610a349291906123e8565b6020604051808303816000875af1158015610a53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7791906123cb565b5050565b610a8361200f565b60004711610ac85760405162461bcd60e51b815260206004820152601260248201527127379022aa24103a37903932b1b7bb32b91760711b6044820152606401610368565b604051600090339047908381818185875af1925050503d8060008114610b0a576040519150601f19603f3d011682016040523d82523d6000602084013e610b0f565b606091505b5050905080610b595760405162461bcd60e51b81526020600482015260166024820152752330b4b632b2103a37903932b1b7bb32b91022aa241760511b6044820152606401610368565b50565b600354600160a01b900460ff1615610b865760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff1680610bcb57506020808301516001600160a01b031660009081526004909152604090205460ff165b610bd9578160c00151610bdb565b305b6002548351602085015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d919061246a565b835160408086015190516323b872dd60e01b81529293506001600160a01b03909116916323b872dd91610c9691339130916004016123a7565b6020604051808303816000875af1158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd991906123cb565b610d255760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2041205472616e73666572204661696c65642100000000000000006044820152606401610368565b602083015160608401516040516323b872dd60e01b81526001600160a01b03909216916323b872dd91610d5e91339130916004016123a7565b6020604051808303816000875af1158015610d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da191906123cb565b610ded5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2042205472616e73666572204661696c65642100000000000000006044820152606401610368565b8251600154604080860151905163095ea7b360e01b81526001600160a01b039384169363095ea7b393610e25939116916004016123e8565b6020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6891906123cb565b506020830151600154606085015160405163095ea7b360e01b81526001600160a01b039384169363095ea7b393610ea4939116916004016123e8565b6020604051808303816000875af1158015610ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee791906123cb565b50600154835160208501516040808701516060880151608089015160a08a015160e08b0151945162e8e33760e81b81526001600160a01b039788166004820152958716602487015260448601939093526064850191909152608484015260a483015285831660c483015260e4820152600092919091169063e8e3370090610104016060604051808303816000875af1158015610f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fab919061243c565b925050306001600160a01b0385160390506110745760c084015160405163a9059cbb60e01b81526001600160a01b0384169163a9059cbb91610ff2919085906004016123e8565b6020604051808303816000875af1158015611011573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103591906123cb565b6110745760405162461bcd60e51b815260206004820152601060248201526f5472616e73666572206661696c65642160801b6044820152606401610368565b83516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156110bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e09190612487565b111561120457835160c08501516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa15801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f9190612487565b6040518363ffffffff1660e01b815260040161117c9291906123e8565b6020604051808303816000875af115801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf91906123cb565b6112045760405162461bcd60e51b8152602060048201526016602482015275546f6b656e204120526566756e64204661696c65642160501b6044820152606401610368565b60208401516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612487565b11156108e657602084015160c08501516040516370a0823160e01b81523060048201526001600160a01b039092169163a9059cbb919083906370a0823190602401602060405180830381865afa1580156112d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f59190612487565b6040518363ffffffff1660e01b81526004016113129291906123e8565b6020604051808303816000875af1158015611331573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135591906123cb565b6108e65760405162461bcd60e51b8152602060048201526016602482015275546f6b656e204220526566756e64204661696c65642160501b6044820152606401610368565b6113a261200f565b60038054911515600160a01b0260ff60a01b19909216919091179055565b6113c861200f565b600180546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015611421573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611445919061246a565b600280546001600160a01b0319166001600160a01b03928316179055600154604080516315ab88c960e31b81529051919092169163ad5c46489160048083019260209291908290030181865afa1580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c7919061246a565b600380546001600160a01b0319166001600160a01b039290921691909117905550565b6114f261200f565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b61152561200f565b61152f6000612069565b565b600354600160a01b900460ff161561155b5760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff16806115a057506020808301516001600160a01b031660009081526004909152604090205460ff165b6115ae578160a001516115b0565b305b6002548351602085015160405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa15801561160e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611632919061246a565b60408085015190516323b872dd60e01b81529192506001600160a01b038316916323b872dd9161166891339130916004016123a7565b6020604051808303816000875af1158015611687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ab91906123cb565b6116f75760405162461bcd60e51b815260206004820181905260248201527f4c697175696469747920546f6b656e205472616e73666572204661696c6564216044820152606401610368565b600154604084810151905163095ea7b360e01b81526001600160a01b038481169363095ea7b39361172f9392909116916004016123e8565b6020604051808303816000875af115801561174e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177291906123cb565b50600154835160208501516040808701516060880151608089015160c08a01519351635d5155ef60e11b81526001600160a01b039687166004820152948616602486015260448501929092526064840152608483015285831660a483015260c48201526000928392169063baa2abde9060e40160408051808303816000875af1158015611803573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182791906124a0565b9092509050306001600160a01b03851603611a8057826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa15801561187a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189e919061246a565b6001600160a01b031663a9059cbb8660a00151846040518363ffffffff1660e01b81526004016118cf9291906123e8565b6020604051808303816000875af11580156118ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191291906123cb565b61195e5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2041205472616e73666572206661696c65642100000000000000006044820152606401610368565b826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119c0919061246a565b6001600160a01b031663a9059cbb8660a00151836040518363ffffffff1660e01b81526004016119f19291906123e8565b6020604051808303816000875af1158015611a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3491906123cb565b611a805760405162461bcd60e51b815260206004820152601860248201527f546f6b656e2042205472616e73666572206661696c65642100000000000000006044820152606401610368565b5050505050565b600354600160a01b900460ff1615611ab15760405162461bcd60e51b815260040161036890612380565b80516001600160a01b031660009081526004602052604081205460ff16611adc578160800151611ade565b305b600254835160035460405163e6a4390560e01b81526001600160a01b039283166004820152908216602482015292935060009291169063e6a4390590604401602060405180830381865afa158015611b3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5e919061246a565b60208401516040516323b872dd60e01b81529192506001600160a01b038316916323b872dd91611b9491339130916004016123a7565b6020604051808303816000875af1158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd791906123cb565b611c235760405162461bcd60e51b815260206004820152601b60248201527f5061697220546f6b656e205472616e73666572204661696c65642100000000006044820152606401610368565b600154602084015160405163095ea7b360e01b81526001600160a01b038481169363095ea7b393611c5b9392909116916004016123e8565b6020604051808303816000875af1158015611c7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9e91906123cb565b5060015483516020850151604080870151606088015160a08901519251629d473b60e21b815260009687966001600160a01b03909116956302751cec95611cee95929491938c9190600401612401565b60408051808303816000875af1158015611d0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3091906124a0565b9092509050306001600160a01b03851603611a80576000836001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da9919061246a565b90506000846001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0f919061246a565b6003549091506000906001600160a01b03848116911614611e305782611e32565b815b608089015160405163a9059cbb60e01b81529192506001600160a01b0383169163a9059cbb91611e669189906004016123e8565b6020604051808303816000875af1158015611e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea991906123cb565b611eee5760405162461bcd60e51b8152602060048201526016602482015275546f6b656e205472616e73666572206661696c65642160501b6044820152606401610368565b600088608001516001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f3f576040519150601f19603f3d011682016040523d82523d6000602084013e611f44565b606091505b5050905080611f8e5760405162461bcd60e51b81526020600482015260166024820152752330b4b632b2103a37903932b1b7bb32b91022aa241760511b6044820152606401610368565b505050505050505050565b611fa161200f565b6001600160a01b0381166120065760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610368565b610b5981612069565b6000546001600160a01b0316331461152f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610368565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610b5957600080fd5b80356120d9816120b9565b919050565b600060c082840312156120f057600080fd5b60405160c0810181811067ffffffffffffffff8211171561212157634e487b7160e01b600052604160045260246000fd5b6040529050808235612132816120b9565b808252506020830135602082015260408301356040820152606083013560608201526080830135612162816120b9565b608082015260a092830135920191909152919050565b600060c0828403121561218a57600080fd5b61219483836120de565b9392505050565b6000602082840312156121ad57600080fd5b8135612194816120b9565b60006101008083850312156121cc57600080fd5b6040519081019067ffffffffffffffff821181831017156121fd57634e487b7160e01b600052604160045260246000fd5b816040528335915061220e826120b9565b81815261221d602085016120ce565b602082015260408401356040820152606084013560608201526080840135608082015260a084013560a082015261225660c085016120ce565b60c082015260e084013560e0820152809250505092915050565b8015158114610b5957600080fd5b60006020828403121561229057600080fd5b813561219481612270565b600080604083850312156122ae57600080fd5b82356122b9816120b9565b915060208301356122c981612270565b809150509250929050565b600060e082840312156122e657600080fd5b60405160e0810181811067ffffffffffffffff8211171561231757634e487b7160e01b600052604160045260246000fd5b6040528235612325816120b9565b81526020830135612335816120b9565b8060208301525060408301356040820152606083013560608201526080830135608082015260a0830135612368816120b9565b60a082015260c0928301359281019290925250919050565b6020808252600d908201526c1b9bdd081c195c9b5a5d1d1959609a1b604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000602082840312156123dd57600080fd5b815161219481612270565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561245157600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561247c57600080fd5b8151612194816120b9565b60006020828403121561249957600080fd5b5051919050565b600080604083850312156124b357600080fd5b50508051602090910151909290915056fea264697066735822122025eba336ecdeb5cdc7efb96c49f1da86c648198657cdbafa8a5c9858573e709164736f6c6343000812003300000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28

-----Decoded View---------------
Arg [0] : _routerAddress (address): 0x62bc82f8ae8b6ebbebc5aef9147f88ddede7cf28

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000062bc82f8ae8b6ebbebc5aef9147f88ddede7cf28


Deployed ByteCode Sourcemap

14936:9803:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20699:1724;;;;;;:::i;:::-;;:::i;:::-;;24383:351;;;;;;;;;;-1:-1:-1;24383:351:0;;;;;:::i;:::-;;:::i;24085:290::-;;;;;;;;;;;;;:::i;17263:1936::-;;;;;;;;;;-1:-1:-1;17263:1936:0;;;;;:::i;:::-;;:::i;16249:91::-;;;;;;;;;;-1:-1:-1;16249:91:0;;;;;:::i;:::-;;:::i;15370:28::-;;;;;;;;;;-1:-1:-1;15370:28:0;;;;-1:-1:-1;;;;;15370:28:0;;;;;;-1:-1:-1;;;;;3451:32:1;;;3433:51;;3421:2;3406:18;15370:28:0;;;;;;;;15441:19;;;;;;;;;;-1:-1:-1;15441:19:0;;;;-1:-1:-1;;;;;15441:19:0;;;15871:235;;;;;;;;;;-1:-1:-1;15871:235:0;;;;;:::i;:::-;;:::i;16114:127::-;;;;;;;;;;-1:-1:-1;16114:127:0;;;;;:::i;:::-;;:::i;14029:103::-;;;;;;;;;;;;;:::i;19207:1484::-;;;;;;;;;;-1:-1:-1;19207:1484:0;;;;;:::i;:::-;;:::i;22431:1646::-;;;;;;;;;;-1:-1:-1;22431:1646:0;;;;;:::i;:::-;;:::i;13381:87::-;;;;;;;;;;-1:-1:-1;13427:7:0;13454:6;-1:-1:-1;;;;;13454:6:0;13381:87;;15405:29;;;;;;;;;;-1:-1:-1;15405:29:0;;;;-1:-1:-1;;;;;15405:29:0;;;15467:20;;;;;;;;;;-1:-1:-1;15467:20:0;;;;-1:-1:-1;;;15467:20:0;;;;;;;;;5476:14:1;;5469:22;5451:41;;5439:2;5424:18;15467:20:0;5311:187:1;15496:44:0;;;;;;;;;;-1:-1:-1;15496:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14287:201;;;;;;;;;;-1:-1:-1;14287:201:0;;;;;:::i;:::-;;:::i;20699:1724::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;;;;;;;;;20841:10;;-1:-1:-1;;;;;20828:24:0::1;20808:17;20828:24:::0;;;:12:::1;:24;::::0;;;;;::::1;;:50;;20871:4;:7;;;20828:50;;;20863:4;20828:50;20945:10:::0;;20997:23:::1;::::0;::::1;::::0;20938:83:::1;::::0;-1:-1:-1;;;20938:83:0;;20808:70;;-1:-1:-1;;;;;;20938:31:0;;::::1;::::0;::::1;::::0;:83:::1;::::0;20970:10:::1;::::0;20990:4:::1;::::0;20938:83:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20930:117;;;::::0;-1:-1:-1;;;20930:117:0;;6677:2:1;20930:117:0::1;::::0;::::1;6659:21:1::0;6716:2;6696:18;;;6689:30;-1:-1:-1;;;6735:18:1;;;6728:51;6796:18;;20930:117:0::1;6475:345:1::0;20930:117:0::1;21111:10:::0;;21131:13:::1;::::0;21146:23:::1;::::0;::::1;::::0;21104:66:::1;::::0;-1:-1:-1;;;21104:66:0;;-1:-1:-1;;;;;21104:26:0;;::::1;::::0;::::1;::::0;:66:::1;::::0;21131:13;::::1;::::0;21104:66:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;21312:13:0::1;::::0;21409:10;;21438:23:::1;::::0;::::1;::::0;21480:19:::1;::::0;;::::1;::::0;21518:17:::1;::::0;::::1;::::0;21582:13:::1;::::0;::::1;::::0;21293:317;;-1:-1:-1;;;21293:317:0;;21271:18:::1;::::0;-1:-1:-1;;;;;21312:13:0::1;::::0;21293:63:::1;::::0;21365:9:::1;::::0;21293:317:::1;::::0;21409:10;;21438:23;;21554:9;;21582:13;21293:317:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21268:342:::0;-1:-1:-1;;21647:4:0::1;-1:-1:-1::0;;;;;21626:26:0;::::1;::::0;;-1:-1:-1;21623:359:0::1;;21770:14;::::0;21794:10;;21806:4:::1;::::0;21752:59:::1;::::0;-1:-1:-1;;;21752:59:0;;-1:-1:-1;;;;;8241:15:1;;;21752:59:0::1;::::0;::::1;8223:34:1::0;21806:4:0;;::::1;8273:18:1::0;;;8266:43;21737:12:0::1;::::0;21770:14;;;::::1;::::0;21752:41:::1;::::0;8158:18:1;;21752:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21929:7;::::0;::::1;::::0;21907:42:::1;::::0;-1:-1:-1;;;21907:42:0;;21737:74;;-1:-1:-1;;;;;;21907:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;21938:10;;21907:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21899:71;;;::::0;-1:-1:-1;;;21899:71:0;;8778:2:1;21899:71:0::1;::::0;::::1;8760:21:1::0;8817:2;8797:18;;;8790:30;-1:-1:-1;;;8836:18:1;;;8829:46;8892:18;;21899:71:0::1;8576:340:1::0;21899:71:0::1;21654:328;21623:359;22004:10:::0;;21997:43:::1;::::0;-1:-1:-1;;;21997:43:0;;22034:4:::1;21997:43;::::0;::::1;3433:51:1::0;22043:1:0::1;::::0;-1:-1:-1;;;;;21997:28:0::1;::::0;::::1;::::0;3406:18:1;;21997:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47;21994:192;;;22076:10:::0;;22097:7:::1;::::0;::::1;::::0;22106:43:::1;::::0;-1:-1:-1;;;22106:43:0;;22143:4:::1;22106:43;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;22069:27:0;;::::1;::::0;::::1;::::0;22097:7;22069:27;;22106:28:::1;::::0;3406:18:1;;22106:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22069:81;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22061:113;;;::::0;-1:-1:-1;;;22061:113:0;;9312:2:1;22061:113:0::1;::::0;::::1;9294:21:1::0;9351:2;9331:18;;;9324:30;-1:-1:-1;;;9370:18:1;;;9363:49;9429:18;;22061:113:0::1;9110:343:1::0;22061:113:0::1;22201:21;:25:::0;22198:218:::1;;22244:12;22270:4;:7;;;-1:-1:-1::0;;;;;22262:21:0::1;22309;22262:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22243:106;;;22374:7;22366:38;;;::::0;-1:-1:-1;;;22366:38:0;;9870:2:1;22366:38:0::1;::::0;::::1;9852:21:1::0;9909:2;9889:18;;;9882:30;-1:-1:-1;;;9928:18:1;;;9921:48;9986:18;;22366:38:0::1;9668:342:1::0;22366:38:0::1;22228:188;22198:218;20797:1626;;20699:1724:::0;:::o;24383:351::-;13267:13;:11;:13::i;:::-;24489:46:::1;::::0;-1:-1:-1;;;24489:46:0;;24529:4:::1;24489:46;::::0;::::1;3433:51:1::0;24538:1:0::1;::::0;-1:-1:-1;;;;;24489:31:0;::::1;::::0;::::1;::::0;3406:18:1;;24489:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;24467:121;;;::::0;-1:-1:-1;;;24467:121:0;;10217:2:1;24467:121:0::1;::::0;::::1;10199:21:1::0;10256:2;10236:18;;;10229:30;-1:-1:-1;;;10275:18:1;;;10268:51;10336:18;;24467:121:0::1;10015:345:1::0;24467:121:0::1;24669:46;::::0;-1:-1:-1;;;24669:46:0;;24709:4:::1;24669:46;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;24599:30:0;::::1;::::0;::::1;::::0;24644:10:::1;::::0;24599:30;;24669:31:::1;::::0;3406:18:1;;24669:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24599:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24383:351:::0;:::o;24085:290::-;13267:13;:11;:13::i;:::-;24178:1:::1;24154:21;:25;24146:56;;;::::0;-1:-1:-1;;;24146:56:0;;10567:2:1;24146:56:0::1;::::0;::::1;10549:21:1::0;10606:2;10586:18;;;10579:30;-1:-1:-1;;;10625:18:1;;;10618:48;10683:18;;24146:56:0::1;10365:342:1::0;24146:56:0::1;24232:82;::::0;24214:12:::1;::::0;24240:10:::1;::::0;24278:21:::1;::::0;24214:12;24232:82;24214:12;24232:82;24278:21;24240:10;24232:82:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24213:101;;;24333:7;24325:42;;;::::0;-1:-1:-1;;;24325:42:0;;10914:2:1;24325:42:0::1;::::0;::::1;10896:21:1::0;10953:2;10933:18;;;10926:30;-1:-1:-1;;;10972:18:1;;;10965:52;11034:18;;24325:42:0::1;10712:346:1::0;24325:42:0::1;24135:240;24085:290::o:0;17263:1936::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;17391:11;;-1:-1:-1;;;;;17378:25:0::1;17358:17;17378:25:::0;;;:12:::1;:25;::::0;;;;;::::1;;::::0;:54:::1;;-1:-1:-1::0;17420:11:0::1;::::0;;::::1;::::0;-1:-1:-1;;;;;17407:25:0::1;;::::0;;;:12:::1;:25:::0;;;;;;;::::1;;17378:54;:80;;17451:4;:7;;;17378:80;;;17443:4;17378:80;17537:14;::::0;17561:11;;17574::::1;::::0;::::1;::::0;17519:67:::1;::::0;-1:-1:-1;;;17519:67:0;;-1:-1:-1;;;;;8241:15:1;;;17519:67:0::1;::::0;::::1;8223:34:1::0;8293:15;;;8273:18;;;8266:43;17358:100:0;;-1:-1:-1;17504:12:0::1;::::0;17537:14;::::1;::::0;17519:41:::1;::::0;8158:18:1;;17519:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17654:11:::0;;17707:19:::1;::::0;;::::1;::::0;17647:80;;-1:-1:-1;;;17647:80:0;;17504:82;;-1:-1:-1;;;;;;17647:32:0;;::::1;::::0;::::1;::::0;:80:::1;::::0;17680:10:::1;::::0;17700:4:::1;::::0;17647:80:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17639:117;;;::::0;-1:-1:-1;;;17639:117:0;;11265:2:1;17639:117:0::1;::::0;::::1;11247:21:1::0;11304:2;11284:18;;;11277:30;11343:26;11323:18;;;11316:54;11387:18;;17639:117:0::1;11063:348:1::0;17639:117:0::1;17782:11;::::0;::::1;::::0;17835:19:::1;::::0;::::1;::::0;17775:80:::1;::::0;-1:-1:-1;;;17775:80:0;;-1:-1:-1;;;;;17775:32:0;;::::1;::::0;::::1;::::0;:80:::1;::::0;17808:10:::1;::::0;17828:4:::1;::::0;17775:80:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17767:117;;;::::0;-1:-1:-1;;;17767:117:0;;11618:2:1;17767:117:0::1;::::0;::::1;11600:21:1::0;11657:2;11637:18;;;11630:30;11696:26;11676:18;;;11669:54;11740:18;;17767:117:0::1;11416:348:1::0;17767:117:0::1;17948:11:::0;;17969:13:::1;::::0;17984:19:::1;::::0;;::::1;::::0;17941:63;;-1:-1:-1;;;17941:63:0;;-1:-1:-1;;;;;17941:27:0;;::::1;::::0;::::1;::::0;:63:::1;::::0;17969:13;::::1;::::0;17941:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18022:11:0::1;::::0;::::1;::::0;18043:13:::1;::::0;18058:19:::1;::::0;::::1;::::0;18015:63:::1;::::0;-1:-1:-1;;;18015:63:0;;-1:-1:-1;;;;;18015:27:0;;::::1;::::0;::::1;::::0;:63:::1;::::0;18043:13;::::1;::::0;18015:63:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;18229:13:0::1;::::0;18289:11;;18319::::1;::::0;::::1;::::0;18349:19:::1;::::0;;::::1;::::0;18387::::1;::::0;::::1;::::0;18425:15:::1;::::0;::::1;::::0;18459::::1;::::0;::::1;::::0;18521:13:::1;::::0;::::1;::::0;18210:339;;-1:-1:-1;;;18210:339:0;;-1:-1:-1;;;;;12168:15:1;;;18210:339:0::1;::::0;::::1;12150:34:1::0;12220:15;;;12200:18;;;12193:43;12252:18;;;12245:34;;;;12295:18;;;12288:34;;;;12338:19;;;12331:35;12382:19;;;12375:35;12447:15;;;12426:19;;;12419:44;12479:19;;;12472:35;18188:18:0::1;::::0;18229:13;;;::::1;::::0;18210:60:::1;::::0;12084:19:1;;18210:339:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18184:365:::0;-1:-1:-1;;18596:4:0::1;-1:-1:-1::0;;;;;18575:26:0;::::1;::::0;;-1:-1:-1;18572:200:0::1;;18719:7;::::0;::::1;::::0;18697:42:::1;::::0;-1:-1:-1;;;18697:42:0;;-1:-1:-1;;;;;18697:21:0;::::1;::::0;::::1;::::0;:42:::1;::::0;18719:7;18728:10;;18697:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18689:71;;;::::0;-1:-1:-1;;;18689:71:0;;8778:2:1;18689:71:0::1;::::0;::::1;8760:21:1::0;8817:2;8797:18;;;8790:30;-1:-1:-1;;;8836:18:1;;;8829:46;8892:18;;18689:71:0::1;8576:340:1::0;18689:71:0::1;18794:11:::0;;18787:44:::1;::::0;-1:-1:-1;;;18787:44:0;;18825:4:::1;18787:44;::::0;::::1;3433:51:1::0;18834:1:0::1;::::0;-1:-1:-1;;;;;18787:29:0::1;::::0;::::1;::::0;3406:18:1;;18787:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;18784:198;;;18867:11:::0;;18889:7:::1;::::0;::::1;::::0;18898:44:::1;::::0;-1:-1:-1;;;18898:44:0;;18936:4:::1;18898:44;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;18860:28:0;;::::1;::::0;::::1;::::0;18889:7;18860:28;;18898:29:::1;::::0;3406:18:1;;18898:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18860:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18852:118;;;::::0;-1:-1:-1;;;18852:118:0;;12720:2:1;18852:118:0::1;::::0;::::1;12702:21:1::0;12759:2;12739:18;;;12732:30;-1:-1:-1;;;12778:18:1;;;12771:52;12840:18;;18852:118:0::1;12518:346:1::0;18852:118:0::1;19004:11;::::0;::::1;::::0;18997:44:::1;::::0;-1:-1:-1;;;18997:44:0;;19035:4:::1;18997:44;::::0;::::1;3433:51:1::0;19044:1:0::1;::::0;-1:-1:-1;;;;;18997:29:0::1;::::0;::::1;::::0;3406:18:1;;18997:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:48;18994:198;;;19077:11;::::0;::::1;::::0;19099:7:::1;::::0;::::1;::::0;19108:44:::1;::::0;-1:-1:-1;;;19108:44:0;;19146:4:::1;19108:44;::::0;::::1;3433:51:1::0;-1:-1:-1;;;;;19070:28:0;;::::1;::::0;::::1;::::0;19099:7;19070:28;;19108:29:::1;::::0;3406:18:1;;19108:44:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19070:83;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19062:118;;;::::0;-1:-1:-1;;;19062:118:0;;13071:2:1;19062:118:0::1;::::0;::::1;13053:21:1::0;13110:2;13090:18;;;13083:30;-1:-1:-1;;;13129:18:1;;;13122:52;13191:18;;19062:118:0::1;12869:346:1::0;16249:91:0;13267:13;:11;:13::i;:::-;16314:8:::1;:18:::0;;;::::1;;-1:-1:-1::0;;;16314:18:0::1;-1:-1:-1::0;;;;16314:18:0;;::::1;::::0;;;::::1;::::0;;16249:91::o;15871:235::-;13267:13;:11;:13::i;:::-;15945::::1;:24:::0;;-1:-1:-1;;;;;;15945:24:0::1;-1:-1:-1::0;;;;;15945:24:0;::::1;::::0;;::::1;::::0;;;15997:43:::1;::::0;;-1:-1:-1;;;15997:43:0;;;;:41:::1;::::0;:43:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;15945:24;15997:43:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15980:14;:60:::0;;-1:-1:-1;;;;;;15980:60:0::1;-1:-1:-1::0;;;;;15980:60:0;;::::1;;::::0;;-1:-1:-1;16077:13:0;16058:40:::1;::::0;;-1:-1:-1;;;16058:40:0;;;;16077:13;;;::::1;::::0;16058:38:::1;::::0;:40:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;16077:13;16058:40:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16051:4;:47:::0;;-1:-1:-1;;;;;;16051:47:0::1;-1:-1:-1::0;;;;;16051:47:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;15871:235:0:o;16114:127::-;13267:13;:11;:13::i;:::-;-1:-1:-1;;;;;16201:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:32;;-1:-1:-1;;16201:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16114:127::o;14029:103::-;13267:13;:11;:13::i;:::-;14094:30:::1;14121:1;14094:18;:30::i;:::-;14029:103::o:0;19207:1484::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;19341:11;;-1:-1:-1;;;;;19328:25:0::1;19308:17;19328:25:::0;;;:12:::1;:25;::::0;;;;;::::1;;::::0;:54:::1;;-1:-1:-1::0;19370:11:0::1;::::0;;::::1;::::0;-1:-1:-1;;;;;19357:25:0::1;;::::0;;;:12:::1;:25:::0;;;;;;;::::1;;19328:54;:80;;19401:4;:7;;;19328:80;;;19393:4;19328:80;19487:14;::::0;19511:11;;19524::::1;::::0;::::1;::::0;19469:67:::1;::::0;-1:-1:-1;;;19469:67:0;;-1:-1:-1;;;;;8241:15:1;;;19469:67:0::1;::::0;::::1;8223:34:1::0;8293:15;;;8273:18;;;8266:43;19308:100:0;;-1:-1:-1;19454:12:0::1;::::0;19487:14;::::1;::::0;19469:41:::1;::::0;8158:18:1;;19469:67:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19655:14;::::0;;::::1;::::0;19602:68;;-1:-1:-1;;;19602:68:0;;19454:82;;-1:-1:-1;;;;;;19602:25:0;::::1;::::0;::::1;::::0;:68:::1;::::0;19628:10:::1;::::0;19648:4:::1;::::0;19602:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19594:113;;;::::0;-1:-1:-1;;;19594:113:0;;13422:2:1;19594:113:0::1;::::0;::::1;13404:21:1::0;;;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;13552:18;;19594:113:0::1;13220:356:1::0;19594:113:0::1;19788:13;::::0;19803:14:::1;::::0;;::::1;::::0;19767:51;;-1:-1:-1;;;19767:51:0;;-1:-1:-1;;;;;19767:20:0;;::::1;::::0;::::1;::::0;:51:::1;::::0;19788:13;;;::::1;::::0;19767:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;19972:13:0::1;::::0;20035:11;;20065::::1;::::0;::::1;::::0;20095:14:::1;::::0;;::::1;::::0;20128:15:::1;::::0;::::1;::::0;20162::::1;::::0;::::1;::::0;20224:13:::1;::::0;::::1;::::0;19953:299;;-1:-1:-1;;;19953:299:0;;-1:-1:-1;;;;;13952:15:1;;;19953:299:0::1;::::0;::::1;13934:34:1::0;14004:15;;;13984:18;;;13977:43;14036:18;;;14029:34;;;;14079:18;;;14072:34;14122:19;;;14115:35;14187:15;;;14166:19;;;14159:44;14219:19;;;14212:35;19917:15:0::1;::::0;;;19972:13:::1;::::0;19953:63:::1;::::0;13868:19:1;;19953:299:0::1;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19916:336:::0;;-1:-1:-1;19916:336:0;-1:-1:-1;20299:4:0::1;-1:-1:-1::0;;;;;20278:26:0;::::1;::::0;20275:409:::1;;20417:4;-1:-1:-1::0;;;;;20402:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20395:46:0::1;;20442:4;:7;;;20451;20395:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20387:101;;;::::0;-1:-1:-1;;;20387:101:0;;14710:2:1;20387:101:0::1;::::0;::::1;14692:21:1::0;14749:2;14729:18;;;14722:30;14788:26;14768:18;;;14761:54;14832:18;;20387:101:0::1;14508:348:1::0;20387:101:0::1;20601:4;-1:-1:-1::0;;;;;20586:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20579:46:0::1;;20626:4;:7;;;20635;20579:64;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20571:101;;;::::0;-1:-1:-1;;;20571:101:0;;15063:2:1;20571:101:0::1;::::0;::::1;15045:21:1::0;15102:2;15082:18;;;15075:30;15141:26;15121:18;;;15114:54;15185:18;;20571:101:0::1;14861:348:1::0;20571:101:0::1;19297:1394;;;;19207:1484:::0;:::o;22431:1646::-;15808:8;;-1:-1:-1;;;15808:8:0;;;;:17;15800:43;;;;-1:-1:-1;;;15800:43:0;;;;;;;:::i;:::-;22571:10;;-1:-1:-1;;;;;22558:24:0::1;22538:17;22558:24:::0;;;:12:::1;:24;::::0;;;;;::::1;;:50;;22601:4;:7;;;22558:50;;;22593:4;22558:50;22687:14;::::0;22711:10;;22723:4:::1;::::0;22669:59:::1;::::0;-1:-1:-1;;;22669:59:0;;-1:-1:-1;;;;;8241:15:1;;;22669:59:0::1;::::0;::::1;8223:34:1::0;22723:4:0;;::::1;8273:18:1::0;;;8266:43;22538:70:0;;-1:-1:-1;22654:12:0::1;::::0;22687:14;::::1;::::0;22669:41:::1;::::0;8158:18:1;;22669:59:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22847:14;::::0;::::1;::::0;22794:68:::1;::::0;-1:-1:-1;;;22794:68:0;;22654:74;;-1:-1:-1;;;;;;22794:25:0;::::1;::::0;::::1;::::0;:68:::1;::::0;22820:10:::1;::::0;22840:4:::1;::::0;22794:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22786:108;;;::::0;-1:-1:-1;;;22786:108:0;;15416:2:1;22786:108:0::1;::::0;::::1;15398:21:1::0;15455:2;15435:18;;;15428:30;15494:29;15474:18;;;15467:57;15541:18;;22786:108:0::1;15214:351:1::0;22786:108:0::1;22975:13;::::0;22990:14:::1;::::0;::::1;::::0;22954:51:::1;::::0;-1:-1:-1;;;22954:51:0;;-1:-1:-1;;;;;22954:20:0;;::::1;::::0;::::1;::::0;:51:::1;::::0;22975:13;;;::::1;::::0;22954:51:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23159:13:0::1;::::0;23225:10;;23254:14:::1;::::0;::::1;::::0;23287:19:::1;::::0;;::::1;::::0;23325:17:::1;::::0;::::1;::::0;23389:13:::1;::::0;::::1;::::0;23140:277;;-1:-1:-1;;;23140:277:0;;23104:16:::1;::::0;;;-1:-1:-1;;;;;23159:13:0;;::::1;::::0;23140:66:::1;::::0;:277:::1;::::0;23225:10;;23254:14;;23361:9;;23389:13;23140:277:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23103:314:::0;;-1:-1:-1;23103:314:0;-1:-1:-1;23464:4:0::1;-1:-1:-1::0;;;;;23443:26:0;::::1;::::0;23440:630:::1;;23486:15;23519:4;-1:-1:-1::0;;;;;23504:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23486:47;;23548:15;23581:4;-1:-1:-1::0;;;;;23566:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23638:4;::::0;23548:47;;-1:-1:-1;23610:14:0::1;::::0;-1:-1:-1;;;;;23627:15:0;;::::1;23638:4:::0;::::1;23627:15;:35;;23655:7;23627:35;;;23645:7;23627:35;23776:7;::::0;::::1;::::0;23752:45:::1;::::0;-1:-1:-1;;;23752:45:0;;23610:52;;-1:-1:-1;;;;;;23752:23:0;::::1;::::0;::::1;::::0;:45:::1;::::0;23785:11;;23752:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23744:80;;;::::0;-1:-1:-1;;;23744:80:0;;15772:2:1;23744:80:0::1;::::0;::::1;15754:21:1::0;15811:2;15791:18;;;15784:30;-1:-1:-1;;;15830:18:1;;;15823:52;15892:18;;23744:80:0::1;15570:346:1::0;23744:80:0::1;23901:12;23927:4;:7;;;-1:-1:-1::0;;;;;23919:21:0::1;23966:9;23919:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23900:94;;;24019:7;24011:42;;;::::0;-1:-1:-1;;;24011:42:0;;10914:2:1;24011:42:0::1;::::0;::::1;10896:21:1::0;10953:2;10933:18;;;10926:30;-1:-1:-1;;;10972:18:1;;;10965:52;11034:18;;24011:42:0::1;10712:346:1::0;24011:42:0::1;23471:599;;;;22527:1550;;;;22431:1646:::0;:::o;14287:201::-;13267:13;:11;:13::i;:::-;-1:-1:-1;;;;;14376:22:0;::::1;14368:73;;;::::0;-1:-1:-1;;;14368:73:0;;16123:2:1;14368:73:0::1;::::0;::::1;16105:21:1::0;16162:2;16142:18;;;16135:30;16201:34;16181:18;;;16174:62;-1:-1:-1;;;16252:18:1;;;16245:36;16298:19;;14368:73:0::1;15921:402:1::0;14368:73:0::1;14452:28;14471:8;14452:18;:28::i;13546:132::-:0;13427:7;13454:6;-1:-1:-1;;;;;13454:6:0;12012:10;13610:23;13602:68;;;;-1:-1:-1;;;13602:68:0;;16530:2:1;13602:68:0;;;16512:21:1;;;16549:18;;;16542:30;16608:34;16588:18;;;16581:62;16660:18;;13602:68:0;16328:356:1;14648:191:0;14722:16;14741:6;;-1:-1:-1;;;;;14758:17:0;;;-1:-1:-1;;;;;;14758:17:0;;;;;;14791:40;;14741:6;;;;;;;14791:40;;14722:16;14791:40;14711:128;14648:191;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:995::-;355:5;403:4;391:9;386:3;382:19;378:30;375:50;;;421:1;418;411:12;375:50;454:2;448:9;496:4;488:6;484:17;567:6;555:10;552:22;531:18;519:10;516:34;513:62;510:185;;;617:10;612:3;608:20;605:1;598:31;652:4;649:1;642:15;680:4;677:1;670:15;510:185;711:2;704:22;744:6;-1:-1:-1;744:6:1;774:23;;806:33;774:23;806:33;:::i;:::-;863:7;855:6;848:23;;932:2;921:9;917:18;904:32;899:2;891:6;887:15;880:57;998:2;987:9;983:18;970:32;965:2;957:6;953:15;946:57;1064:2;1053:9;1049:18;1036:32;1031:2;1023:6;1019:15;1012:57;1121:3;1110:9;1106:19;1093:33;1135;1160:7;1135:33;:::i;:::-;1196:3;1184:16;;1177:33;1272:3;1257:19;;;1244:33;1226:16;;1219:59;;;;289:995;;-1:-1:-1;289:995:1:o;1289:252::-;1385:6;1438:3;1426:9;1417:7;1413:23;1409:33;1406:53;;;1455:1;1452;1445:12;1406:53;1478:57;1527:7;1516:9;1478:57;:::i;:::-;1468:67;1289:252;-1:-1:-1;;;1289:252:1:o;1546:247::-;1605:6;1658:2;1646:9;1637:7;1633:23;1629:32;1626:52;;;1674:1;1671;1664:12;1626:52;1713:9;1700:23;1732:31;1757:5;1732:31;:::i;1798:1115::-;1891:6;1922:3;1966:2;1954:9;1945:7;1941:23;1937:32;1934:52;;;1982:1;1979;1972:12;1934:52;2015:2;2009:9;2045:15;;;;2090:18;2075:34;;2111:22;;;2072:62;2069:185;;;2176:10;2171:3;2167:20;2164:1;2157:31;2211:4;2208:1;2201:15;2239:4;2236:1;2229:15;2069:185;2274:10;2270:2;2263:22;2320:9;2307:23;2294:36;;2339:31;2364:5;2339:31;:::i;:::-;2394:5;2386:6;2379:21;2433:38;2467:2;2456:9;2452:18;2433:38;:::i;:::-;2428:2;2420:6;2416:15;2409:63;2533:2;2522:9;2518:18;2505:32;2500:2;2492:6;2488:15;2481:57;2599:2;2588:9;2584:18;2571:32;2566:2;2558:6;2554:15;2547:57;2666:3;2655:9;2651:19;2638:33;2632:3;2624:6;2620:16;2613:59;2734:3;2723:9;2719:19;2706:33;2700:3;2692:6;2688:16;2681:59;2774:39;2808:3;2797:9;2793:19;2774:39;:::i;:::-;2768:3;2760:6;2756:16;2749:65;2876:3;2865:9;2861:19;2848:33;2842:3;2834:6;2830:16;2823:59;2901:6;2891:16;;;;1798:1115;;;;:::o;2918:118::-;3004:5;2997:13;2990:21;2983:5;2980:32;2970:60;;3026:1;3023;3016:12;3041:241;3097:6;3150:2;3138:9;3129:7;3125:23;3121:32;3118:52;;;3166:1;3163;3156:12;3118:52;3205:9;3192:23;3224:28;3246:5;3224:28;:::i;3495:382::-;3560:6;3568;3621:2;3609:9;3600:7;3596:23;3592:32;3589:52;;;3637:1;3634;3627:12;3589:52;3676:9;3663:23;3695:31;3720:5;3695:31;:::i;:::-;3745:5;-1:-1:-1;3802:2:1;3787:18;;3774:32;3815:30;3774:32;3815:30;:::i;:::-;3864:7;3854:17;;;3495:382;;;;;:::o;3882:1164::-;3978:6;4031:3;4019:9;4010:7;4006:23;4002:33;3999:53;;;4048:1;4045;4038:12;3999:53;4081:2;4075:9;4123:3;4115:6;4111:16;4193:6;4181:10;4178:22;4157:18;4145:10;4142:34;4139:62;4136:185;;;4243:10;4238:3;4234:20;4231:1;4224:31;4278:4;4275:1;4268:15;4306:4;4303:1;4296:15;4136:185;4337:2;4330:22;4374:23;;4406:31;4374:23;4406:31;:::i;:::-;4446:21;;4519:2;4504:18;;4491:32;4532:33;4491:32;4532:33;:::i;:::-;4598:7;4593:2;4585:6;4581:15;4574:32;;4667:2;4656:9;4652:18;4639:32;4634:2;4626:6;4622:15;4615:57;4733:2;4722:9;4718:18;4705:32;4700:2;4692:6;4688:15;4681:57;4800:3;4789:9;4785:19;4772:33;4766:3;4758:6;4754:16;4747:59;4858:3;4847:9;4843:19;4830:33;4872;4897:7;4872:33;:::i;:::-;4933:3;4921:16;;4914:33;5009:3;4994:19;;;4981:33;4963:16;;;4956:59;;;;-1:-1:-1;4925:6:1;3882:1164;-1:-1:-1;3882:1164:1:o;5503:337::-;5705:2;5687:21;;;5744:2;5724:18;;;5717:30;-1:-1:-1;;;5778:2:1;5763:18;;5756:43;5831:2;5816:18;;5503:337::o;5845:375::-;-1:-1:-1;;;;;6103:15:1;;;6085:34;;6155:15;;;;6150:2;6135:18;;6128:43;6202:2;6187:18;;6180:34;;;;6035:2;6020:18;;5845:375::o;6225:245::-;6292:6;6345:2;6333:9;6324:7;6320:23;6316:32;6313:52;;;6361:1;6358;6351:12;6313:52;6393:9;6387:16;6412:28;6434:5;6412:28;:::i;6825:274::-;-1:-1:-1;;;;;7017:32:1;;;;6999:51;;7081:2;7066:18;;7059:34;6987:2;6972:18;;6825:274::o;7104:591::-;-1:-1:-1;;;;;7447:15:1;;;7429:34;;7494:2;7479:18;;7472:34;;;;7537:2;7522:18;;7515:34;;;;7580:2;7565:18;;7558:34;;;;7629:15;;;7623:3;7608:19;;7601:44;7409:3;7661:19;;7654:35;;;;7378:3;7363:19;;7104:591::o;7700:306::-;7788:6;7796;7804;7857:2;7845:9;7836:7;7832:23;7828:32;7825:52;;;7873:1;7870;7863:12;7825:52;7902:9;7896:16;7886:26;;7952:2;7941:9;7937:18;7931:25;7921:35;;7996:2;7985:9;7981:18;7975:25;7965:35;;7700:306;;;;;:::o;8320:251::-;8390:6;8443:2;8431:9;8422:7;8418:23;8414:32;8411:52;;;8459:1;8456;8449:12;8411:52;8491:9;8485:16;8510:31;8535:5;8510:31;:::i;8921:184::-;8991:6;9044:2;9032:9;9023:7;9019:23;9015:32;9012:52;;;9060:1;9057;9050:12;9012:52;-1:-1:-1;9083:16:1;;8921:184;-1:-1:-1;8921:184:1:o;14258:245::-;14337:6;14345;14398:2;14386:9;14377:7;14373:23;14369:32;14366:52;;;14414:1;14411;14404:12;14366:52;-1:-1:-1;;14437:16:1;;14493:2;14478:18;;;14472:25;14437:16;;14472:25;;-1:-1:-1;14258:245:1:o

Swarm Source

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