Contract 0x3e588Fd793Cb90c0ecc705EeC57C8a5b1Ab19e07

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6e31f857125e46cf49a6e992c5de9dff58a64086d080a02cb35b2fccad7047ccAdd Liquidity ET...432076242022-07-21 1:47:0978 days 20 hrs ago0x8274004135b64df1d77958eada14cb259598f321 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07918 FTM0.001217206822
0x3b4ecc93fc82563b17c45921cc5c61b2bf5e11d160fec4447702e7114a55d6c1Add Liquidity ET...420581502022-07-05 7:25:1394 days 14 hrs ago0x54ee16c1e0afcae56e887fddab24472e04cd632c IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e076.969599107521566 FTM0.000544080852
0x0701dce5baf018eff3927f5af39001e82c93056fc23f23bd7a9503e75724c46aAdd Liquidity ET...395556792022-06-01 17:16:34128 days 5 hrs ago0x54ee16c1e0afcae56e887fddab24472e04cd632c IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0740 FTM0.232741105494
0x94c2469ecf58f55ff3a66ca8faaf7689320b672a3c0d31a9c2ba9e5ad0c814bfAdd Liquidity ET...390373892022-05-25 16:08:00135 days 6 hrs ago0x95161f1d677f5aae819f8634285ce56e3ca54510 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e070.609701418647589 FTM0.012602221339
0xe92cdf2a0cf26b12c19181ba1c5e45e5ef2b70a5685baf5d3ac7fd705e8d221eAdd Liquidity ET...386151782022-05-19 22:19:18140 days 23 hrs ago0xf56d83cbc0a7355722c72764a0ff16fe1a5da52b IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0789 FTM0.032716218431
0x3632bfc50b0ffa13422bbe0a61104f33c8ab6b8fd9fa1336ab5227f53c5b6880Add Liquidity ET...385493072022-05-19 1:02:04141 days 21 hrs ago0x5387c73ccd450fb27aa74fb6cf334029b4db18d0 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0722.15787394285897 FTM0.093061562682
0x1de2cc533bedd83e92dbd637fc003519b6e9f92b7e8b152b55a668f6636ae515Add Liquidity ET...355830422022-04-08 23:25:14181 days 22 hrs ago0x4be08ce36d77db90272325db6517bc8da7dfa4c2 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07123.93602805197312 FTM0.054887216112
0x83279dd789fa909257ce50a6bded87f262943263b77dd3ec56f7ce81853e56d5Add Liquidity ET...347624232022-03-30 3:51:55191 days 18 hrs ago0x687bd49516dc9a066e9c43f3af8bb439317d31c0 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e074.279750243344384 FTM0.042418305739
0xa405f570ec26ed7f32c8c7b8f3d6d8a218baa6e97a4176715de9adeb9dbb548aAdd Liquidity ET...347190532022-03-29 16:03:18192 days 6 hrs ago0xf8d5ca0367839e857ea8d1648a9563cf1a0d3982 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e076.954286070526221 FTM0.070306851154
0xa8ca37fca5e65a5ad3047daa32ddabff0604eb219ec74cd815aed37946dc3638Add Liquidity ET...347179532022-03-29 15:44:10192 days 6 hrs ago0xf8d5ca0367839e857ea8d1648a9563cf1a0d3982 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0713.082844271025436 FTM0.086282361824
0xfa3ea52b48f58d4c0af5eb99d30efb234f5730318074955ed0e0bec8f21f6972Add Liquidity ET...347140832022-03-29 14:37:23192 days 7 hrs ago0x5635125c2ced0e62724021c442f2d6d5e3df2e66 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e074.985186786461235 FTM0.057162312594
0x7be3ae8e66340da2a2e70b48a126c7e430a8874b176209cecd0f301507f01c7eAdd Liquidity ET...346275102022-03-28 14:58:32193 days 7 hrs ago0x60839dacae2affe97b5f9f6fb06b0cd0dbc73698 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0728.03663562878614 FTM0.089351782603
0xf360bde08bf449c0caab933b62ae4a7dc2c199c42e620dbdbe0f585e7fad56d6Add Liquidity ET...346228652022-03-28 13:26:05193 days 8 hrs ago0xc459afaec50c2bb27e0c7d77aef401f50482232c IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e078.639517524697169 FTM0.059811234748
0xa4795e166e0db48669d04869551d23133a0d1b4b4b03d3019d72ea6f28292342Add Liquidity ET...345737252022-03-28 0:08:55193 days 22 hrs ago0x5dad6ec25065fad967fd83d5b32c595d2a2bd80e IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0721.02077720328142 FTM0.056389351168
0x0cbacb8833bff7dc78f06525c4880f34cd3a2555c92f7a972f972cbcfdcaa479Add Liquidity ET...341730502022-03-23 7:09:35198 days 15 hrs ago0xa31978a297a8e78e7c8aef86eec055786d65804d IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0723.756510030276562 FTM0.033485943757
0xd6f5d437003ecd1d3a28f9d9c0f8ba32ae5432619ebc14f3c1bfdec788d4a165Add Liquidity ET...340334652022-03-21 16:40:17200 days 5 hrs ago0xfda028d2262268d7b3b5bb39f234f04bbb660cb5 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07307.61260788699997 FTM0.068368313539
0x5c42dfb83ac0ebcc7ebbd4f7ba68b48496225edb9ab81deb42fe32b4bd514167Add Liquidity ET...340249872022-03-21 14:19:58200 days 7 hrs ago0x10f6c93f6c3fe2ba6a2ea6e97c11cbd97c45c6a9 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0712.554600603661887 FTM0.06235602272
0x605445700af94948a61a39d77afcab83b6a4c865f5f1a69f765d849207d87ce2Add Liquidity ET...339952212022-03-21 6:26:43200 days 15 hrs ago0x8158b02392322e2bb29ae803f01fc92fb3b07a7e IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07571.9327844993759 FTM0.047940029219
0xd4366cb17a67aa0c1e576c399019985b76cbdca8d9f94c0e3cb8348241bb13c3Add Liquidity ET...338626232022-03-19 18:57:34202 days 3 hrs ago0x08d2c744fd60f2dca8c1885d3aa03ff6d3fa5d11 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07339.22161118401436 FTM0.062791589712
0x5449418a99f50801377d53c961f68943fe1252c5ddfa66026878790c08304f17Add Liquidity ET...338566832022-03-19 17:20:58202 days 4 hrs ago0x08d2c744fd60f2dca8c1885d3aa03ff6d3fa5d11 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07339.976742080481 FTM0.137928248401
0x96b89ac92cd980636827b763c201cbb46853e4b0b241386bef87150b39319c7cAdd Liquidity ET...337669492022-03-18 16:48:12203 days 5 hrs ago0x5fa800933a7661b77a4a120f9a2f8bf3c7207d32 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07115.66783213772092 FTM0.076077480822
0x4afbcee6efb6871c3dbd17722673013bd236306b1fa0f2482506a35dca4f340dAdd Liquidity ET...337430512022-03-18 10:02:23203 days 12 hrs ago0x46eaa15ddb01c760f19b37fe8c0790696c911f26 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0728.723120568146687 FTM0.039979760431
0x35c470670d793ac82553449aa795e1fb2ec9032e57d3f8088e02ebf80c2dfb15Add Liquidity ET...336858152022-03-17 18:50:37204 days 3 hrs ago0x42d0b355452f6e07dab839b9b4bd548fd5b8f662 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0748.5265600484312 FTM0.118026239609
0xf861a202dec9eea110e6bb8c28dec9b35814aa6d65b30684f426d46e06c02d42Add Liquidity ET...336777882022-03-17 16:31:10204 days 5 hrs ago0xd8a9b711c4d6356674902e55031da8af680f388a IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e073 FTM0.086363863166
0xb9c720b144e5e8c9a8d319f30f2b6f9d6471109cb0f256deb20f1211de5b5d4fAdd Liquidity ET...336502952022-03-17 8:42:27204 days 13 hrs ago0x5d39659a95ff3d686a5baaafb9fa7e832ff67d88 IN  0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e0769.72869244543925 FTM0.043587870918
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x6e31f857125e46cf49a6e992c5de9dff58a64086d080a02cb35b2fccad7047cc432076242022-07-21 1:47:0978 days 20 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router918 FTM
0x3b4ecc93fc82563b17c45921cc5c61b2bf5e11d160fec4447702e7114a55d6c1420581502022-07-05 7:25:1394 days 14 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router6.969599107521566 FTM
0x0701dce5baf018eff3927f5af39001e82c93056fc23f23bd7a9503e75724c46a395556792022-06-01 17:16:34128 days 5 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router40 FTM
0x94c2469ecf58f55ff3a66ca8faaf7689320b672a3c0d31a9c2ba9e5ad0c814bf390373892022-05-25 16:08:00135 days 6 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router0.6097014186475892 FTM
0xe92cdf2a0cf26b12c19181ba1c5e45e5ef2b70a5685baf5d3ac7fd705e8d221e386151782022-05-19 22:19:18140 days 23 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router89 FTM
0x3632bfc50b0ffa13422bbe0a61104f33c8ab6b8fd9fa1336ab5227f53c5b6880385493072022-05-19 1:02:04141 days 21 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router22.15787394285897 FTM
0x1de2cc533bedd83e92dbd637fc003519b6e9f92b7e8b152b55a668f6636ae515355830422022-04-08 23:25:14181 days 22 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router123.93602805197312 FTM
0x83279dd789fa909257ce50a6bded87f262943263b77dd3ec56f7ce81853e56d5347624232022-03-30 3:51:55191 days 18 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router4.279750243344384 FTM
0xa405f570ec26ed7f32c8c7b8f3d6d8a218baa6e97a4176715de9adeb9dbb548a347190532022-03-29 16:03:18192 days 6 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router6.954286070526221 FTM
0xa8ca37fca5e65a5ad3047daa32ddabff0604eb219ec74cd815aed37946dc3638347179532022-03-29 15:44:10192 days 6 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router13.082844271025436 FTM
0xfa3ea52b48f58d4c0af5eb99d30efb234f5730318074955ed0e0bec8f21f6972347140832022-03-29 14:37:23192 days 7 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router4.985186786461235 FTM
0x7be3ae8e66340da2a2e70b48a126c7e430a8874b176209cecd0f301507f01c7e346275102022-03-28 14:58:32193 days 7 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router28.03663562878614 FTM
0xf360bde08bf449c0caab933b62ae4a7dc2c199c42e620dbdbe0f585e7fad56d6346228652022-03-28 13:26:05193 days 8 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router8.639517524697169 FTM
0xa4795e166e0db48669d04869551d23133a0d1b4b4b03d3019d72ea6f28292342345737252022-03-28 0:08:55193 days 22 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router21.02077720328142 FTM
0x0cbacb8833bff7dc78f06525c4880f34cd3a2555c92f7a972f972cbcfdcaa479341730502022-03-23 7:09:35198 days 15 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router23.756510030276562 FTM
0xd6f5d437003ecd1d3a28f9d9c0f8ba32ae5432619ebc14f3c1bfdec788d4a165340334652022-03-21 16:40:17200 days 5 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router307.61260788699997 FTM
0x5c42dfb83ac0ebcc7ebbd4f7ba68b48496225edb9ab81deb42fe32b4bd514167340249872022-03-21 14:19:58200 days 7 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router12.554600603661887 FTM
0x605445700af94948a61a39d77afcab83b6a4c865f5f1a69f765d849207d87ce2339952212022-03-21 6:26:43200 days 15 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router571.9327844993759 FTM
0xd4366cb17a67aa0c1e576c399019985b76cbdca8d9f94c0e3cb8348241bb13c3338626232022-03-19 18:57:34202 days 3 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router339.22161118401436 FTM
0x5449418a99f50801377d53c961f68943fe1252c5ddfa66026878790c08304f17338566832022-03-19 17:20:58202 days 4 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router339.976742080481 FTM
0x96b89ac92cd980636827b763c201cbb46853e4b0b241386bef87150b39319c7c337669492022-03-18 16:48:12203 days 5 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router115.66783213772092 FTM
0x4afbcee6efb6871c3dbd17722673013bd236306b1fa0f2482506a35dca4f340d337430512022-03-18 10:02:23203 days 12 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router28.723120568146687 FTM
0x35c470670d793ac82553449aa795e1fb2ec9032e57d3f8088e02ebf80c2dfb15336858152022-03-17 18:50:37204 days 3 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router48.5265600484312 FTM
0xf861a202dec9eea110e6bb8c28dec9b35814aa6d65b30684f426d46e06c02d42336777882022-03-17 16:31:10204 days 5 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router3 FTM
0xb9c720b144e5e8c9a8d319f30f2b6f9d6471109cb0f256deb20f1211de5b5d4f336502952022-03-17 8:42:27204 days 13 hrs ago 0x3e588fd793cb90c0ecc705eec57c8a5b1ab19e07 SpiritSwap: Router69.72869244543925 FTM
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TaxOfficeV2

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at FtmScan.com on 2021-12-23
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    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;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

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 () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        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 {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Operator is Context, Ownable {
    address private _operator;

    event OperatorTransferred(address indexed previousOperator, address indexed newOperator);

    constructor() internal {
        _operator = _msgSender();
        emit OperatorTransferred(address(0), _operator);
    }

    function operator() public view returns (address) {
        return _operator;
    }

    modifier onlyOperator() {
        require(_operator == msg.sender, "operator: caller is not the operator");
        _;
    }

    function isOperator() public view returns (bool) {
        return _msgSender() == _operator;
    }

    function transferOperator(address newOperator_) public onlyOwner {
        _transferOperator(newOperator_);
    }

    function _transferOperator(address newOperator_) internal {
        require(newOperator_ != address(0), "operator: zero address given for new operator");
        emit OperatorTransferred(address(0), newOperator_);
        _operator = newOperator_;
    }
}

interface ITaxable {
    function setTaxTiersTwap(uint8 _index, uint256 _value) external returns (bool);

    function setTaxTiersRate(uint8 _index, uint256 _value) external returns (bool);

    function enableAutoCalculateTax() external;

    function disableAutoCalculateTax() external;

    function setTaxCollectorAddress(address _taxCollectorAddress) external;

    function isAddressExcluded(address _address) external returns (bool);

    function setTaxRate(uint256 _taxRate) external;

    function setBurnThreshold(uint256 _burnThreshold) external;

    function excludeAddress(address _address) external returns (bool);

    function includeAddress(address _address) external returns (bool);

    function setTombOracle(address _tombOracle) external;

    function setTaxOffice(address _taxOffice) external;

    function taxRate() external view returns (uint256);
}

interface IUniswapV2Router {
    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);

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

interface IERC20 {
    /**
     * @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 `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @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);
}

contract TaxOfficeV2 is Operator {
    using SafeMath for uint256;

    address public tomb = address(0x2e79205648B85485731CFE3025d66cF2d3B059c4);
    address public wftm = address(0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83);
    address public uniRouter = address(0x16327E3FbDaCA3bcF7E38F5Af2599D2DDc33aE52);

    mapping(address => bool) public taxExclusionEnabled;

    function setTaxTiersTwap(uint8 _index, uint256 _value) public onlyOperator returns (bool) {
        return ITaxable(tomb).setTaxTiersTwap(_index, _value);
    }

    function setTaxTiersRate(uint8 _index, uint256 _value) public onlyOperator returns (bool) {
        return ITaxable(tomb).setTaxTiersRate(_index, _value);
    }

    function enableAutoCalculateTax() public onlyOperator {
        ITaxable(tomb).enableAutoCalculateTax();
    }

    function disableAutoCalculateTax() public onlyOperator {
        ITaxable(tomb).disableAutoCalculateTax();
    }

    function setTaxRate(uint256 _taxRate) public onlyOperator {
        ITaxable(tomb).setTaxRate(_taxRate);
    }

    function setBurnThreshold(uint256 _burnThreshold) public onlyOperator {
        ITaxable(tomb).setBurnThreshold(_burnThreshold);
    }

    function setTaxCollectorAddress(address _taxCollectorAddress) public onlyOperator {
        ITaxable(tomb).setTaxCollectorAddress(_taxCollectorAddress);
    }

    function excludeAddressFromTax(address _address) external onlyOperator returns (bool) {
        return _excludeAddressFromTax(_address);
    }

    function _excludeAddressFromTax(address _address) private returns (bool) {
        if (!ITaxable(tomb).isAddressExcluded(_address)) {
            return ITaxable(tomb).excludeAddress(_address);
        }
    }

    function includeAddressInTax(address _address) external onlyOperator returns (bool) {
        return _includeAddressInTax(_address);
    }

    function _includeAddressInTax(address _address) private returns (bool) {
        if (ITaxable(tomb).isAddressExcluded(_address)) {
            return ITaxable(tomb).includeAddress(_address);
        }
    }

    function taxRate() external view returns (uint256) {
        return ITaxable(tomb).taxRate();
    }

    function addLiquidityTaxFree(
        address token,
        uint256 amtTomb,
        uint256 amtToken,
        uint256 amtTombMin,
        uint256 amtTokenMin
    )
        external
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        require(amtTomb != 0 && amtToken != 0, "amounts can't be 0");
        _excludeAddressFromTax(msg.sender);

        IERC20(tomb).transferFrom(msg.sender, address(this), amtTomb);
        IERC20(token).transferFrom(msg.sender, address(this), amtToken);
        _approveTokenIfNeeded(tomb, uniRouter);
        _approveTokenIfNeeded(token, uniRouter);

        _includeAddressInTax(msg.sender);

        uint256 resultAmtTomb;
        uint256 resultAmtToken;
        uint256 liquidity;
        (resultAmtTomb, resultAmtToken, liquidity) = IUniswapV2Router(uniRouter).addLiquidity(
            tomb,
            token,
            amtTomb,
            amtToken,
            amtTombMin,
            amtTokenMin,
            msg.sender,
            block.timestamp
        );

        if(amtTomb.sub(resultAmtTomb) > 0) {
            IERC20(tomb).transfer(msg.sender, amtTomb.sub(resultAmtTomb));
        }
        if(amtToken.sub(resultAmtToken) > 0) {
            IERC20(token).transfer(msg.sender, amtToken.sub(resultAmtToken));
        }
        return (resultAmtTomb, resultAmtToken, liquidity);
    }

    function addLiquidityETHTaxFree(
        uint256 amtTomb,
        uint256 amtTombMin,
        uint256 amtFtmMin
    )
        external
        payable
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        require(amtTomb != 0 && msg.value != 0, "amounts can't be 0");
        _excludeAddressFromTax(msg.sender);

        IERC20(tomb).transferFrom(msg.sender, address(this), amtTomb);
        _approveTokenIfNeeded(tomb, uniRouter);

        _includeAddressInTax(msg.sender);

        uint256 resultAmtTomb;
        uint256 resultAmtFtm;
        uint256 liquidity;
        (resultAmtTomb, resultAmtFtm, liquidity) = IUniswapV2Router(uniRouter).addLiquidityETH{value: msg.value}(
            tomb,
            amtTomb,
            amtTombMin,
            amtFtmMin,
            msg.sender,
            block.timestamp
        );

        if(amtTomb.sub(resultAmtTomb) > 0) {
            IERC20(tomb).transfer(msg.sender, amtTomb.sub(resultAmtTomb));
        }
        return (resultAmtTomb, resultAmtFtm, liquidity);
    }

    function setTaxableTombOracle(address _tombOracle) external onlyOperator {
        ITaxable(tomb).setTombOracle(_tombOracle);
    }

    function transferTaxOffice(address _newTaxOffice) external onlyOperator {
        ITaxable(tomb).setTaxOffice(_newTaxOffice);
    }

    function taxFreeTransferFrom(
        address _sender,
        address _recipient,
        uint256 _amt
    ) external {
        require(taxExclusionEnabled[msg.sender], "Address not approved for tax free transfers");
        _excludeAddressFromTax(_sender);
        IERC20(tomb).transferFrom(_sender, _recipient, _amt);
        _includeAddressInTax(_sender);
    }

    function setTaxExclusionForAddress(address _address, bool _excluded) external onlyOperator {
        taxExclusionEnabled[_address] = _excluded;
    }

    function _approveTokenIfNeeded(address _token, address _router) private {
        if (IERC20(_token).allowance(address(this), _router) == 0) {
            IERC20(_token).approve(_router, type(uint256).max);
        }
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"amtTomb","type":"uint256"},{"internalType":"uint256","name":"amtTombMin","type":"uint256"},{"internalType":"uint256","name":"amtFtmMin","type":"uint256"}],"name":"addLiquidityETHTaxFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amtTomb","type":"uint256"},{"internalType":"uint256","name":"amtToken","type":"uint256"},{"internalType":"uint256","name":"amtTombMin","type":"uint256"},{"internalType":"uint256","name":"amtTokenMin","type":"uint256"}],"name":"addLiquidityTaxFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableAutoCalculateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableAutoCalculateTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"excludeAddressFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"includeAddressInTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_burnThreshold","type":"uint256"}],"name":"setBurnThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_taxCollectorAddress","type":"address"}],"name":"setTaxCollectorAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_excluded","type":"bool"}],"name":"setTaxExclusionForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxRate","type":"uint256"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_index","type":"uint8"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setTaxTiersRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_index","type":"uint8"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setTaxTiersTwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tombOracle","type":"address"}],"name":"setTaxableTombOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxExclusionEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"taxFreeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tomb","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newTaxOffice","type":"address"}],"name":"transferTaxOffice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wftm","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052600280546001600160a01b0319908116732e79205648b85485731cfe3025d66cf2d3b059c4179091556003805482167321be370d5312f44cb42ce377bc9b8a0cef1a4c83179055600480549091167316327e3fbdaca3bcf7e38f5af2599d2ddc33ae5217905534801561007657600080fd5b506000610081610124565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506100d3610124565b600180546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3610128565b3390565b611c1a806101376000396000f3fe6080604052600436106101815760003560e01c80639d6b5f21116100d1578063d1d31a371161008a578063f1efacf911610064578063f1efacf914610556578063f2fde38b146105a1578063f4f45b46146105d4578063ff87fc7c146105e957610181565b8063d1d31a37146104ad578063e1d8752e146104e0578063e69abb7e1461052357610181565b80639d6b5f21146103c9578063a0e47bf6146103f3578063b87c5a4a14610408578063be94f86b1461043b578063c040f23a1461046e578063c6d69a301461048357610181565b806366206ce91161013e57806373baccc01161011857806373baccc01461030b578063771a3a1d146103525780637fcd79c7146103795780638da5cb5b146103b457610181565b806366206ce91461029057806369356d47146102c3578063715018a6146102f657610181565b806313762bdc1461018657806319db099d146101cd57806329605e77146102005780634456eda214610235578063570ca7351461024a57806365bbacd91461027b575b600080fd5b34801561019257600080fd5b506101b9600480360360208110156101a957600080fd5b50356001600160a01b03166105fe565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101b9600480360360208110156101f057600080fd5b50356001600160a01b0316610613565b34801561020c57600080fd5b506102336004803603602081101561022357600080fd5b50356001600160a01b0316610670565b005b34801561024157600080fd5b506101b96106f0565b34801561025657600080fd5b5061025f610716565b604080516001600160a01b039092168252519081900360200190f35b34801561028757600080fd5b50610233610725565b34801561029c57600080fd5b506101b9600480360360408110156102b357600080fd5b5060ff81351690602001356107d8565b3480156102cf57600080fd5b50610233600480360360208110156102e657600080fd5b50356001600160a01b03166108ae565b34801561030257600080fd5b50610233610960565b6103346004803603606081101561032157600080fd5b5080359060208101359060400135610a1e565b60408051938452602084019290925282820152519081900360600190f35b34801561035e57600080fd5b50610367610c97565b60408051918252519081900360200190f35b34801561038557600080fd5b506102336004803603604081101561039c57600080fd5b506001600160a01b0381351690602001351515610d0d565b3480156103c057600080fd5b5061025f610d81565b3480156103d557600080fd5b50610233600480360360208110156103ec57600080fd5b5035610d90565b3480156103ff57600080fd5b5061025f610e26565b34801561041457600080fd5b506101b96004803603604081101561042b57600080fd5b5060ff8135169060200135610e35565b34801561044757600080fd5b506101b96004803603602081101561045e57600080fd5b50356001600160a01b0316610ed8565b34801561047a57600080fd5b5061025f610f2d565b34801561048f57600080fd5b50610233600480360360208110156104a657600080fd5b5035610f3c565b3480156104b957600080fd5b50610233600480360360208110156104d057600080fd5b50356001600160a01b0316610fd2565b3480156104ec57600080fd5b506102336004803603606081101561050357600080fd5b506001600160a01b03813581169160208101359091169060400135611069565b34801561052f57600080fd5b506102336004803603602081101561054657600080fd5b50356001600160a01b0316611155565b34801561056257600080fd5b50610334600480360360a081101561057957600080fd5b506001600160a01b0381351690602081013590604081013590606081013590608001356111ec565b3480156105ad57600080fd5b50610233600480360360208110156105c457600080fd5b50356001600160a01b03166115ab565b3480156105e057600080fd5b5061025f6116bf565b3480156105f557600080fd5b506102336116ce565b60056020526000908152604090205460ff1681565b6001546000906001600160a01b0316331461065f5760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b61066882611767565b90505b919050565b61067861186c565b6001600160a01b0316610689610d81565b6001600160a01b0316146106e4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106ed81611870565b50565b6001546000906001600160a01b031661070761186c565b6001600160a01b031614905090565b6001546001600160a01b031690565b6001546001600160a01b0316331461076e5760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b03166365bbacd96040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107be57600080fd5b505af11580156107d2573d6000803e3d6000fd5b50505050565b6001546000906001600160a01b031633146108245760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b600254604080516366206ce960e01b815260ff861660048201526024810185905290516001600160a01b03909216916366206ce9916044808201926020929091908290030181600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506040513d60208110156108a557600080fd5b50519392505050565b6001546001600160a01b031633146108f75760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b600254604080516369356d4760e01b81526001600160a01b038481166004830152915191909216916369356d4791602480830192600092919082900301818387803b15801561094557600080fd5b505af1158015610959573d6000803e3d6000fd5b5050505050565b61096861186c565b6001600160a01b0316610979610d81565b6001600160a01b0316146109d4576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080808515801590610a3057503415155b610a76576040805162461bcd60e51b81526020600482015260126024820152710616d6f756e74732063616e277420626520360741b604482015290519081900360640190fd5b610a7f3361190d565b50600254604080516323b872dd60e01b81523360048201523060248201526044810189905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b5050600254600454610b22916001600160a01b0390811691166119de565b610b2b33611767565b50600480546002546040805163f305d71960e01b81526001600160a01b0392831694810194909452602484018a905260448401899052606484018890523360848501524260a48501525160009384938493169163f305d71991349160c480830192606092919082900301818588803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b50505050506040513d6060811015610bd157600080fd5b508051602082015160409092015190945090925090506000610bf38a85611ae5565b1115610c88576002546001600160a01b031663a9059cbb33610c158c87611ae5565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c5b57600080fd5b505af1158015610c6f573d6000803e3d6000fd5b505050506040513d6020811015610c8557600080fd5b50505b91989097509095509350505050565b6002546040805163771a3a1d60e01b815290516000926001600160a01b03169163771a3a1d916004808301926020929190829003018186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d6020811015610d0657600080fd5b5051905090565b6001546001600160a01b03163314610d565760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031690565b6001546001600160a01b03163314610dd95760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b60025460408051639d6b5f2160e01b81526004810184905290516001600160a01b0390921691639d6b5f219160248082019260009290919082900301818387803b15801561094557600080fd5b6004546001600160a01b031681565b6001546000906001600160a01b03163314610e815760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b60025460408051635c3e2d2560e11b815260ff861660048201526024810185905290516001600160a01b039092169163b87c5a4a916044808201926020929091908290030181600087803b15801561087b57600080fd5b6001546000906001600160a01b03163314610f245760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b6106688261190d565b6002546001600160a01b031681565b6001546001600160a01b03163314610f855760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b60025460408051630c6d69a360e41b81526004810184905290516001600160a01b039092169163c6d69a309160248082019260009290919082900301818387803b15801561094557600080fd5b6001546001600160a01b0316331461101b5760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b60025460408051631f83ebb560e11b81526001600160a01b03848116600483015291519190921691633f07d76a91602480830192600092919082900301818387803b15801561094557600080fd5b3360009081526005602052604090205460ff166110b75760405162461bcd60e51b815260040180806020018281038252602b815260200180611b69602b913960400191505060405180910390fd5b6110c08361190d565b50600254604080516323b872dd60e01b81526001600160a01b038681166004830152858116602483015260448201859052915191909216916323b872dd9160648083019260209291908290030181600087803b15801561111f57600080fd5b505af1158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b506107d2905083611767565b6001546001600160a01b0316331461119e5760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b600254604080516375be5ae160e01b81526001600160a01b038481166004830152915191909216916375be5ae191602480830192600092919082900301818387803b15801561094557600080fd5b6000808086158015906111fe57508515155b611244576040805162461bcd60e51b81526020600482015260126024820152710616d6f756e74732063616e277420626520360741b604482015290519081900360640190fd5b61124d3361190d565b50600254604080516323b872dd60e01b8152336004820152306024820152604481018a905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156112a857600080fd5b505af11580156112bc573d6000803e3d6000fd5b505050506040513d60208110156112d257600080fd5b5050604080516323b872dd60e01b81523360048201523060248201526044810188905290516001600160a01b038a16916323b872dd9160648083019260209291908290030181600087803b15801561132957600080fd5b505af115801561133d573d6000803e3d6000fd5b505050506040513d602081101561135357600080fd5b5050600254600454611371916001600160a01b0390811691166119de565b6004546113889089906001600160a01b03166119de565b61139133611767565b50600480546002546040805162e8e33760e81b81526001600160a01b03928316948101949094528b82166024850152604484018b9052606484018a90526084840189905260a484018890523360c48501524260e48501525160009384938493169163e8e33700916101048082019260609290919082900301818787803b15801561141a57600080fd5b505af115801561142e573d6000803e3d6000fd5b505050506040513d606081101561144457600080fd5b5080516020820151604090920151909450909250905060006114668b85611ae5565b11156114fb576002546001600160a01b031663a9059cbb336114888d87611ae5565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505050506040513d60208110156114f857600080fd5b50505b60006115078a84611ae5565b111561159a576001600160a01b038b1663a9059cbb336115278c86611ae5565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561156d57600080fd5b505af1158015611581573d6000803e3d6000fd5b505050506040513d602081101561159757600080fd5b50505b919a90995090975095505050505050565b6115b361186c565b6001600160a01b03166115c4610d81565b6001600160a01b03161461161f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166116645760405162461bcd60e51b8152600401808060200182810382526026815260200180611b436026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b6001546001600160a01b031633146117175760405162461bcd60e51b8152600401808060200182810382526024815260200180611bc16024913960400191505060405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663ff87fc7c6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107be57600080fd5b6002546040805163ebca1bd960e01b81526001600160a01b0384811660048301529151600093929092169163ebca1bd99160248082019260209290919082900301818787803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b505050506040513d60208110156117e357600080fd5b50511561066b57600254604080516393995d4b60e01b81526001600160a01b038581166004830152915191909216916393995d4b9160248083019260209291908290030181600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050506040513d602081101561186357600080fd5b5051905061066b565b3390565b6001600160a01b0381166118b55760405162461bcd60e51b815260040180806020018281038252602d815260200180611b94602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6002546040805163ebca1bd960e01b81526001600160a01b0384811660048301529151600093929092169163ebca1bd99160248082019260209290919082900301818787803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b505050506040513d602081101561198957600080fd5b505161066b5760025460408051631bac736760e11b81526001600160a01b03858116600483015291519190921691633758e6ce9160248083019260209291908290030181600087803b15801561183957600080fd5b60408051636eb1769f60e11b81523060048201526001600160a01b03838116602483015291519184169163dd62ed3e91604480820192602092909190829003018186803b158015611a2e57600080fd5b505afa158015611a42573d6000803e3d6000fd5b505050506040513d6020811015611a5857600080fd5b5051611ae157816001600160a01b031663095ea7b3826000196040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050506040513d60208110156107d257600080fd5b5050565b600082821115611b3c576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737341646472657373206e6f7420617070726f76656420666f72207461782066726565207472616e73666572736f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f726f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f72a2646970667358221220d8c0f7c7606fdc7d7c5c5ef77b7cd67e3ca38106d8658fd5a261ba3c33d4c1a464736f6c634300060c0033

Deployed ByteCode Sourcemap

18325:5850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18647:51;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18647:51:0;-1:-1:-1;;;;;18647:51:0;;:::i;:::-;;;;;;;;;;;;;;;;;;20094:140;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20094:140:0;-1:-1:-1;;;;;20094:140:0;;:::i;9602:115::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9602:115:0;-1:-1:-1;;;;;9602:115:0;;:::i;:::-;;9494:100;;;;;;;;;;;;;:::i;9266:85::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9266:85:0;;;;;;;;;;;;;;19167:114;;;;;;;;;;;;;:::i;18707:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18707:162:0;;;;;;;;;:::i;19553:160::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19553:160:0;-1:-1:-1;;;;;19553:160:0;;:::i;8404:148::-;;;;;;;;;;;;;:::i;22008:1107::-;;;;;;;;;;;;;;;;-1:-1:-1;22008:1107:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;20460:101;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;23787:151;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23787:151:0;;;;;;;;;;:::i;7753:87::-;;;;;;;;;;;;;:::i;19409:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19409:136:0;;:::i;18560:78::-;;;;;;;;;;;;;:::i;18877:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18877:162:0;;;;;;;;;:::i;19721:144::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19721:144:0;-1:-1:-1;;;;;19721:144:0;;:::i;18400:73::-;;;;;;;;;;;;;:::i;19289:112::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19289:112:0;;:::i;23264:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23264:133:0;-1:-1:-1;;;;;23264:133:0;;:::i;23405:374::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23405:374:0;;;;;;;;;;;;;;;;;:::i;23123:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23123:133:0;-1:-1:-1;;;;;23123:133:0;;:::i;20569:1431::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20569:1431:0;;;;;;;;;;;;;;;;;;;;;;;:::i;8707:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8707:244:0;-1:-1:-1;;;;;8707:244:0;;:::i;18480:73::-;;;;;;;;;;;;;:::i;19047:112::-;;;;;;;;;;;;;:::i;18647:51::-;;;;;;;;;;;;;;;:::o;20094:140::-;9402:9;;20172:4;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20196:30:::1;20217:8;20196:20;:30::i;:::-;20189:37;;9477:1;20094:140:::0;;;:::o;9602:115::-;7984:12;:10;:12::i;:::-;-1:-1:-1;;;;;7973:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7973:23:0;;7965:68;;;;;-1:-1:-1;;;7965:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9678:31:::1;9696:12;9678:17;:31::i;:::-;9602:115:::0;:::o;9494:100::-;9577:9;;9537:4;;-1:-1:-1;;;;;9577:9:0;9561:12;:10;:12::i;:::-;-1:-1:-1;;;;;9561:25:0;;9554:32;;9494:100;:::o;9266:85::-;9334:9;;-1:-1:-1;;;;;9334:9:0;9266:85;:::o;19167:114::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19242:4:::1;;;;;;;;;-1:-1:-1::0;;;;;19242:4:0::1;-1:-1:-1::0;;;;;19233:38:0::1;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19167:114::o:0;18707:162::-;9402:9;;18791:4;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18824:4:::1;::::0;18815:46:::1;::::0;;-1:-1:-1;;;18815:46:0;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;18824:4:0;;::::1;::::0;18815:30:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;;18824:4:::1;::::0;18815:46;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18815:46:0;;18707:162;-1:-1:-1;;;18707:162:0:o;19553:160::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19655:4:::1;::::0;19646:59:::1;::::0;;-1:-1:-1;;;19646:59:0;;-1:-1:-1;;;;;19646:59:0;;::::1;;::::0;::::1;::::0;;;19655:4;;;::::1;::::0;19646:37:::1;::::0;:59;;;;;19655:4:::1;::::0;19646:59;;;;;;;19655:4;;19646:59;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19553:160:::0;:::o;8404:148::-;7984:12;:10;:12::i;:::-;-1:-1:-1;;;;;7973:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7973:23:0;;7965:68;;;;;-1:-1:-1;;;7965:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8511:1:::1;8495:6:::0;;8474:40:::1;::::0;-1:-1:-1;;;;;8495:6:0;;::::1;::::0;8474:40:::1;::::0;8511:1;;8474:40:::1;8542:1;8525:19:::0;;-1:-1:-1;;;;;;8525:19:0::1;::::0;;8404:148::o;22008:1107::-;22197:7;;;22284:12;;;;;:30;;-1:-1:-1;22300:9:0;:14;;22284:30;22276:61;;;;;-1:-1:-1;;;22276:61:0;;;;;;;;;;;;-1:-1:-1;;;22276:61:0;;;;;;;;;;;;;;;22348:34;22371:10;22348:22;:34::i;:::-;-1:-1:-1;22402:4:0;;22395:61;;;-1:-1:-1;;;22395:61:0;;22421:10;22395:61;;;;22441:4;22395:61;;;;;;;;;;;;-1:-1:-1;;;;;22402:4:0;;;;22395:25;;:61;;;;;;;;;;;;;;;22402:4;;22395:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22489:4:0;;22495:9;;22467:38;;-1:-1:-1;;;;;22489:4:0;;;;22495:9;22467:21;:38::i;:::-;22518:32;22539:10;22518:20;:32::i;:::-;-1:-1:-1;22714:9:0;;;22773:4;;22697:217;;;-1:-1:-1;;;22697:217:0;;-1:-1:-1;;;;;22773:4:0;;;22697:217;;;;;;;;;;;;;;;;;;;;;;;;;22863:10;22697:217;;;;22888:15;22697:217;;;;;22563:21;;;;;;22714:9;;22697:43;;22748:9;;22697:217;;;;;;;;;;;;;;22748:9;22714;22697:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22697:217:0;;;;;;;;;;;;;-1:-1:-1;22697:217:0;;-1:-1:-1;22697:217:0;-1:-1:-1;22959:1:0;22930:26;:7;22697:217;22930:11;:26::i;:::-;:30;22927:123;;;22984:4;;-1:-1:-1;;;;;22984:4:0;22977:21;22999:10;23011:26;:7;23023:13;23011:11;:26::i;:::-;22977:61;;;;;;;;;;;;;-1:-1:-1;;;;;22977:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22927:123:0;23068:13;;23083:12;;-1:-1:-1;23068:13:0;;-1:-1:-1;22008:1107:0;-1:-1:-1;;;;22008:1107:0:o;20460:101::-;20538:4;;20529:24;;;-1:-1:-1;;;20529:24:0;;;;20502:7;;-1:-1:-1;;;;;20538:4:0;;20529:22;;:24;;;;;;;;;;;;;;20538:4;20529:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20529:24:0;;-1:-1:-1;20460:101:0;:::o;23787:151::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23889:29:0;;;::::1;;::::0;;;:19:::1;:29;::::0;;;;:41;;-1:-1:-1;;23889:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23787:151::o;7753:87::-;7799:7;7826:6;-1:-1:-1;;;;;7826:6:0;7753:87;:::o;19409:136::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19499:4:::1;::::0;19490:47:::1;::::0;;-1:-1:-1;;;19490:47:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;19499:4:0;;::::1;::::0;19490:31:::1;::::0;:47;;;;;19499:4:::1;::::0;19490:47;;;;;;;;19499:4;;19490:47;::::1;;::::0;::::1;;;;::::0;::::1;18560:78:::0;;;-1:-1:-1;;;;;18560:78:0;;:::o;18877:162::-;9402:9;;18961:4;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18994:4:::1;::::0;18985:46:::1;::::0;;-1:-1:-1;;;18985:46:0;;::::1;::::0;::::1;;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;18994:4:0;;::::1;::::0;18985:30:::1;::::0;:46;;;;;::::1;::::0;;;;;;;;;18994:4:::1;::::0;18985:46;::::1;;::::0;::::1;;;;::::0;::::1;19721:144:::0;9402:9;;19801:4;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19825:32:::1;19848:8;19825:22;:32::i;18400:73::-:0;;;-1:-1:-1;;;;;18400:73:0;;:::o;19289:112::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19367:4:::1;::::0;19358:35:::1;::::0;;-1:-1:-1;;;19358:35:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;19367:4:0;;::::1;::::0;19358:25:::1;::::0;:35;;;;;19367:4:::1;::::0;19358:35;;;;;;;;19367:4;;19358:35;::::1;;::::0;::::1;;;;::::0;::::1;23264:133:::0;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23356:4:::1;::::0;23347:42:::1;::::0;;-1:-1:-1;;;23347:42:0;;-1:-1:-1;;;;;23347:42:0;;::::1;;::::0;::::1;::::0;;;23356:4;;;::::1;::::0;23347:27:::1;::::0;:42;;;;;23356:4:::1;::::0;23347:42;;;;;;;23356:4;;23347:42;::::1;;::::0;::::1;;;;::::0;::::1;23405:374:::0;23567:10;23547:31;;;;:19;:31;;;;;;;;23539:87;;;;-1:-1:-1;;;23539:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23637:31;23660:7;23637:22;:31::i;:::-;-1:-1:-1;23686:4:0;;23679:52;;;-1:-1:-1;;;23679:52:0;;-1:-1:-1;;;;;23679:52:0;;;;;;;;;;;;;;;;;;;;;;23686:4;;;;;23679:25;;:52;;;;;;;;;;;;;;23686:4;;23679:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23742:29:0;;-1:-1:-1;23763:7:0;23742:20;:29::i;23123:133::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23216:4:::1;::::0;23207:41:::1;::::0;;-1:-1:-1;;;23207:41:0;;-1:-1:-1;;;;;23207:41:0;;::::1;;::::0;::::1;::::0;;;23216:4;;;::::1;::::0;23207:28:::1;::::0;:41;;;;;23216:4:::1;::::0;23207:41;;;;;;;23216:4;;23207:41;::::1;;::::0;::::1;;;;::::0;::::1;20569:1431:::0;20791:7;;;20878:12;;;;;:29;;-1:-1:-1;20894:13:0;;;20878:29;20870:60;;;;;-1:-1:-1;;;20870:60:0;;;;;;;;;;;;-1:-1:-1;;;20870:60:0;;;;;;;;;;;;;;;20941:34;20964:10;20941:22;:34::i;:::-;-1:-1:-1;20995:4:0;;20988:61;;;-1:-1:-1;;;20988:61:0;;21014:10;20988:61;;;;21034:4;20988:61;;;;;;;;;;;;-1:-1:-1;;;;;20995:4:0;;;;20988:25;;:61;;;;;;;;;;;;;;;20995:4;;20988:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21060:63:0;;;-1:-1:-1;;;21060:63:0;;21087:10;21060:63;;;;21107:4;21060:63;;;;;;;;;;;;-1:-1:-1;;;;;21060:26:0;;;;;:63;;;;;20988:61;;21060:63;;;;;;;-1:-1:-1;21060:26:0;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21156:4:0;;21162:9;;21134:38;;-1:-1:-1;;;;;21156:4:0;;;;21162:9;21134:21;:38::i;:::-;21212:9;;21183:39;;21205:5;;-1:-1:-1;;;;;21212:9:0;21183:21;:39::i;:::-;21235:32;21256:10;21235:20;:32::i;:::-;-1:-1:-1;21435:9:0;;;21473:4;;21418:241;;;-1:-1:-1;;;21418:241:0;;-1:-1:-1;;;;;21473:4:0;;;21418:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21608:10;21418:241;;;;21633:15;21418:241;;;;;21280:21;;;;;;21435:9;;21418:40;;:241;;;;;;;;;;;;;;;21280:21;21435:9;21418:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21418:241:0;;;;;;;;;;;;;-1:-1:-1;21418:241:0;;-1:-1:-1;21418:241:0;-1:-1:-1;21704:1:0;21675:26;:7;21418:241;21675:11;:26::i;:::-;:30;21672:123;;;21729:4;;-1:-1:-1;;;;;21729:4:0;21722:21;21744:10;21756:26;:7;21768:13;21756:11;:26::i;:::-;21722:61;;;;;;;;;;;;;-1:-1:-1;;;;;21722:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21672:123:0;21839:1;21808:28;:8;21821:14;21808:12;:28::i;:::-;:32;21805:128;;;-1:-1:-1;;;;;21857:22:0;;;21880:10;21892:28;:8;21905:14;21892:12;:28::i;:::-;21857:64;;;;;;;;;;;;;-1:-1:-1;;;;;21857:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;21805:128:0;21951:13;;21966:14;;-1:-1:-1;21951:13:0;;-1:-1:-1;20569:1431:0;-1:-1:-1;;;;;;20569:1431:0:o;8707:244::-;7984:12;:10;:12::i;:::-;-1:-1:-1;;;;;7973:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;7973:23:0;;7965:68;;;;;-1:-1:-1;;;7965:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8796:22:0;::::1;8788:73;;;;-1:-1:-1::0;;;8788:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8898:6;::::0;;8877:38:::1;::::0;-1:-1:-1;;;;;8877:38:0;;::::1;::::0;8898:6;::::1;::::0;8877:38:::1;::::0;::::1;8926:6;:17:::0;;-1:-1:-1;;;;;;8926:17:0::1;-1:-1:-1::0;;;;;8926:17:0;;;::::1;::::0;;;::::1;::::0;;8707:244::o;18480:73::-;;;-1:-1:-1;;;;;18480:73:0;;:::o;19047:112::-;9402:9;;-1:-1:-1;;;;;9402:9:0;9415:10;9402:23;9394:72;;;;-1:-1:-1;;;9394:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19121:4:::1;;;;;;;;;-1:-1:-1::0;;;;;19121:4:0::1;-1:-1:-1::0;;;;;19112:37:0::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;20242:210:::0;20337:4;;20328:42;;;-1:-1:-1;;;20328:42:0;;-1:-1:-1;;;;;20328:42:0;;;;;;;;;20307:4;;20337;;;;;20328:32;;:42;;;;;;;;;;;;;;;20307:4;20337;20328:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20328:42:0;20324:121;;;20403:4;;20394:39;;;-1:-1:-1;;;20394:39:0;;-1:-1:-1;;;;;20394:39:0;;;;;;;;;20403:4;;;;;20394:29;;:39;;;;;;;;;;;;;;20403:4;;20394:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20394:39:0;;-1:-1:-1;20387:46:0;;95:106;183:10;95:106;:::o;9725:257::-;-1:-1:-1;;;;;9802:26:0;;9794:84;;;;-1:-1:-1;;;9794:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9894:45;;-1:-1:-1;;;;;9894:45:0;;;9922:1;;9894:45;;9922:1;;9894:45;9950:9;:24;;-1:-1:-1;;;;;;9950:24:0;-1:-1:-1;;;;;9950:24:0;;;;;;;;;;9725:257::o;19873:213::-;19971:4;;19962:42;;;-1:-1:-1;;;19962:42:0;;-1:-1:-1;;;;;19962:42:0;;;;;;;;;19940:4;;19971;;;;;19962:32;;:42;;;;;;;;;;;;;;;19940:4;19971;19962:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19962:42:0;19957:122;;20037:4;;20028:39;;;-1:-1:-1;;;20028:39:0;;-1:-1:-1;;;;;20028:39:0;;;;;;;;;20037:4;;;;;20028:29;;:39;;;;;;;;;;;;;;20037:4;;20028:39;;;;;;;;;;23946:226;24033:48;;;-1:-1:-1;;;24033:48:0;;24066:4;24033:48;;;;-1:-1:-1;;;;;24033:48:0;;;;;;;;;:24;;;;;;:48;;;;;;;;;;;;;;;:24;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24033:48:0;24029:136;;24110:6;-1:-1:-1;;;;;24103:22:0;;24126:7;-1:-1:-1;;24103:50:0;;;;;;;;;;;;;-1:-1:-1;;;;;24103:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24029:136;23946:226;;:::o;3038:158::-;3096:7;3129:1;3124;:6;;3116:49;;;;;-1:-1:-1;;;3116:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3183:5:0;;;3038:158::o

Swarm Source

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