Contract 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 4

Txn Hash Method
Block
From
To
Value [Txn Fee]
0x63c20265b10278f9f3afb3b8d63dd8de368b95ca67780916d35b112d006abe18Approve169634132022-07-06 7:29:219 mins ago0xbf1ffdf28c4211c2c7e333372994bae1f9cbcee2 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0xd4b3026dac19fc97facbe4e05b16b2ef931fbbb41e613cd06a061e0e0accc47cApprove169632742022-07-06 7:24:4013 mins ago0xbf1ffdf28c4211c2c7e333372994bae1f9cbcee2 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x43ea531f5546f572bf1ee925db57d8d8331ed3901b0c1bab160b5dcd87e7b72dApprove169630882022-07-06 7:18:4419 mins ago0x6647c3c6978418f1185ad92466b200ea33f86d7c IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705059 26.5
0xdc0822d13ec5a15c084eb4f755fab00e9e3ae44cea1b4216076369764f458484Approve169630852022-07-06 7:18:3919 mins ago0xd95503a4bdce79647d3f773a5f937e7db68de9bb IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232409 26.5
0xbdc37725f501707e82ce6172ddc31c6364b47dc0e6954bcfb57cfc3e7a8629e8Approve169630092022-07-06 7:16:0722 mins ago0x6647c3c6978418f1185ad92466b200ea33f86d7c IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000710447818 26.702541477
0x5f1cb8421d94ce1e2af8751200e4fd7782e8795016590750fd19e21d8c0329c5Approve169629922022-07-06 7:15:3323 mins ago0x6647c3c6978418f1185ad92466b200ea33f86d7c IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232409 26.5
0xb8a72d2fbaf679c1b6913484c725a30e49546a5547174e0d7c172d99a201be4dApprove169613912022-07-06 6:22:031 hr 16 mins ago0x6d2ab87997ba4d1447396b198f9dbd0e9969d3e1 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x4f59634f9046a47d0afc6ac86928c29f5acc3c9122f04e44990ee8812da7a705Approve169596872022-07-06 5:24:522 hrs 13 mins ago0x72352f518ae17d5cfa2a9ecc6d93f08c3854c81e IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0xa5c273d0758230c6658f7f4ff01d230b0d652e12ed32e12f850df27bc3123b69Approve169595042022-07-06 5:18:442 hrs 19 mins ago0x89103e45b47554feb60aad3eb7eab95d275e5d26 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0xdcaf583067ff075cd51b27604949c9c652f1e4441e2bebaacfb96ee64055d6ecApprove169594362022-07-06 5:16:242 hrs 22 mins ago0x0693a9954022d58947ebca3cd6597503e7254f4f IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x13a82f8cc8f66d95baa39c631b3726ed7f9e39399c860719e76827d64539ad6cApprove169593462022-07-06 5:13:242 hrs 25 mins ago0x39d7bb6eaf443a9bd4278db2f867579b1b2f47fc IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001265905127 27.213232025
0x227c27a1590dd6a70549dc54fde46c41bf9607f0acc11c3d1b77c197605bc940Approve169551052022-07-06 2:51:304 hrs 47 mins ago0xa821fad0f83fcd14dd05e5b3b9cba3563b20d13c IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.00072555 25
0xdccb2b7733fb170247b51f3f7c823675f2ea4a9cc4c544d769207c92860b9b60Approve169550982022-07-06 2:51:144 hrs 47 mins ago0xa821fad0f83fcd14dd05e5b3b9cba3563b20d13c IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.00072585 25
0x42f0a869ed86155a6a78785cc0c792105f119e6ad6c55b3803e7bc4c6ad68fe8Approve169533982022-07-06 1:54:265 hrs 44 mins ago0xcc86b531003f622a66614476a96aad96d66485c5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705377 26.5
0x334a3eeef073420eac66891a6a57b6a4e05edf562366a24dd679dd45eb0c3c0bApprove169533952022-07-06 1:54:205 hrs 44 mins ago0xcc86b531003f622a66614476a96aad96d66485c5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705377 26.5
0x39a3632df6981a7e519101af317079360186f6f12e453c3de72c016fc42f4ea6Approve169533852022-07-06 1:54:005 hrs 44 mins ago0xcc86b531003f622a66614476a96aad96d66485c5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x4098447e884704b74c655a0c4937a5cfa5287c4a49d74d0b07ed43af4ad4e0c0Approve169533572022-07-06 1:53:045 hrs 45 mins ago0xcc86b531003f622a66614476a96aad96d66485c5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705059 26.5
0x4c6efbc3edbdbcc949e635f922d537adc4a0242b8fb216fb26160ffd09ecc6c2Approve169500202022-07-06 0:01:307 hrs 37 mins ago0x792bec9576172e66e85c89bc1ccf8a6691975dbb IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705059 26.5
0x4492823d04ef61b312c0d08e828dfd39ee12c89e454753935159cfa5c0b3b54dApprove169483572022-07-05 23:05:458 hrs 32 mins ago0x7d46da87e4db2ff052d734d045ad3b049e8a2748 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705059 26.5
0x13d559f4833b7cd7e7ff8c4b1107046c4a769b2a386dc7c186a058d7d6de8613Approve169468952022-07-05 22:16:539 hrs 21 mins ago0x220955674d18843ccbf41d83e957c4c2875418cd IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x82df93d4861ec43dfabeaa47bd668f8c0f7cb2fbe3395f8c154c799b8bd60c7cApprove169468162022-07-05 22:14:159 hrs 24 mins ago0x231714c67436d8d3a1fc5077f4aaedde7b7feae7 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001232727 26.5
0x2af72713dac2ecf12ab9251c92434834e39d54a06bc3b90b5cece25145842440Transfer169454592022-07-05 21:29:3210 hrs 9 mins ago0x537f8355a7b45e7a890801b98c6b549e628592d6 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.005007794450.4
0x11971d46d7c99dd992393c7cb288afbaed3a96a4b2abc8990d6211012ad62869Approve169425592022-07-05 19:52:3411 hrs 45 mins ago0x523b3ff26cce64af58020fac45e5b73038def4f5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.000705377 26.5
0x8876a789f7b5531beae8f3a9db97d0720b88f38132401aa6936fc248e1774ae9Approve169425492022-07-05 19:52:1111 hrs 46 mins ago0x523b3ff26cce64af58020fac45e5b73038def4f5 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.001309317136 28.146462361
0x8593b892c7d353285e202000e8ac2d5a391681ad402875ccbdc013dc7a7d0d13Transfer169413352022-07-05 19:11:5312 hrs 26 mins ago0x9ae0ebe50882c97c5d5ef2e3d42cfb60f2e21e83 IN  0x490bf3abcab1fb5c88533d850f2a8d6d382984650 AVAX0.00205652525
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xac4073b228c8b590414ef1b4b3e85f5e7afd62534364d44bc55ed6ea77b5b5dd169209112022-07-05 7:46:2223 hrs 52 mins ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f0.778914886717529056 AVAX
0xac4073b228c8b590414ef1b4b3e85f5e7afd62534364d44bc55ed6ea77b5b5dd169209112022-07-05 7:46:2223 hrs 52 mins ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be3.894574433587645278 AVAX
0xac4073b228c8b590414ef1b4b3e85f5e7afd62534364d44bc55ed6ea77b5b5dd169209112022-07-05 7:46:2223 hrs 52 mins ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.245973122121324964 AVAX
0xac4073b228c8b590414ef1b4b3e85f5e7afd62534364d44bc55ed6ea77b5b5dd169209112022-07-05 7:46:2223 hrs 52 mins ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984654.919462442426499298 AVAX
0x0215f830ba2696a53c34e11831d32b10ec81e373a4a0523fef03bcc603b0bce7167754712022-07-01 22:34:084 days 9 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f0.506791542938254023 AVAX
0x0215f830ba2696a53c34e11831d32b10ec81e373a4a0523fef03bcc603b0bce7167754712022-07-01 22:34:084 days 9 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be2.533957714691270111 AVAX
0x0215f830ba2696a53c34e11831d32b10ec81e373a4a0523fef03bcc603b0bce7167754712022-07-01 22:34:084 days 9 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.160039434612080217 AVAX
0x0215f830ba2696a53c34e11831d32b10ec81e373a4a0523fef03bcc603b0bce7167754712022-07-01 22:34:084 days 9 hrs ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984653.200788692241604351 AVAX
0xdf4386f205aa3eb020c0400e063b100db27b3e1f81973ea9744d632bbcd328cc167021412022-06-30 5:46:556 days 1 hr ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f0.463327095021119521 AVAX
0xdf4386f205aa3eb020c0400e063b100db27b3e1f81973ea9744d632bbcd328cc167021412022-06-30 5:46:556 days 1 hr ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be2.316635475105597602 AVAX
0xdf4386f205aa3eb020c0400e063b100db27b3e1f81973ea9744d632bbcd328cc167021412022-06-30 5:46:556 days 1 hr ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.146313819480353532 AVAX
0xdf4386f205aa3eb020c0400e063b100db27b3e1f81973ea9744d632bbcd328cc167021412022-06-30 5:46:556 days 1 hr ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984652.926276389607070655 AVAX
0xf19cd26ffefebe0bf1e3ea71739d726ef2d85a8e72b52fab918625d3577786b4166646622022-06-29 8:55:406 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f1.156082848602511422 AVAX
0xf19cd26ffefebe0bf1e3ea71739d726ef2d85a8e72b52fab918625d3577786b4166646622022-06-29 8:55:406 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be5.780414243012557108 AVAX
0xf19cd26ffefebe0bf1e3ea71739d726ef2d85a8e72b52fab918625d3577786b4166646622022-06-29 8:55:406 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.365078794295529922 AVAX
0xf19cd26ffefebe0bf1e3ea71739d726ef2d85a8e72b52fab918625d3577786b4166646622022-06-29 8:55:406 days 22 hrs ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984657.301575885910598452 AVAX
0xa49af75a734bb64d2e24c845eb56b8c61eaf2e56dce09ad5b6317541e6f306eb166646072022-06-29 8:53:486 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f1.156082848602511422 AVAX
0xa49af75a734bb64d2e24c845eb56b8c61eaf2e56dce09ad5b6317541e6f306eb166646072022-06-29 8:53:486 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be5.780414243012557108 AVAX
0xa49af75a734bb64d2e24c845eb56b8c61eaf2e56dce09ad5b6317541e6f306eb166646072022-06-29 8:53:486 days 22 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.365078794295529922 AVAX
0xa49af75a734bb64d2e24c845eb56b8c61eaf2e56dce09ad5b6317541e6f306eb166646072022-06-29 8:53:486 days 22 hrs ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984657.301575885910598452 AVAX
0x2cb06b4ed477c9c5a72802f535a05ed6825b6eb231ca398cc083c483f82ca12e166391382022-06-28 18:44:357 days 12 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f0.531437897424151115 AVAX
0x2cb06b4ed477c9c5a72802f535a05ed6825b6eb231ca398cc083c483f82ca12e166391382022-06-28 18:44:357 days 12 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650xe63fb42e89cd67d93bcb6dc5e9388b347e3174be2.657189487120755571 AVAX
0x2cb06b4ed477c9c5a72802f535a05ed6825b6eb231ca398cc083c483f82ca12e166391382022-06-28 18:44:357 days 12 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d38298465 Trader Joe: Router0.167822493923416141 AVAX
0x2cb06b4ed477c9c5a72802f535a05ed6825b6eb231ca398cc083c483f82ca12e166391382022-06-28 18:44:357 days 12 hrs ago Trader Joe: Router 0x490bf3abcab1fb5c88533d850f2a8d6d382984653.356449878468322827 AVAX
0x51eacc06a183fbc2101e42df2d9e1e4eeec64951043f6ba2323fb66d380fb469165597292022-06-26 22:34:329 days 9 hrs ago 0x490bf3abcab1fb5c88533d850f2a8d6d382984650x02dd249ba72e5f1428257215de9b3b5db355429f0.493247378827716499 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Playmates

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-01-30
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

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

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8);

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory);

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory);

  /**
   * @dev Returns the bep token owner.
   */
  function getOwner() external view returns (address);

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

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WAVAX() external pure returns (address);
    function addLiquidityAVAX(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountAVAXMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountAVAX, uint liquidity);
    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);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForAVAXSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract Playmates is IERC20 {
    // Ownership moved to in-contract for customizability.
    address private _owner;

    mapping (address => uint256) _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) _isFeeExcluded;
    mapping (address => bool) private _isSniper;

    mapping (address => bool) private _liquidityHolders;

    uint256 constant private startingSupply = 2_000_000;

    string constant private _name = "Playmates";
    string constant private _symbol = "PLAYMATES";
    uint8 private _decimals = 18;

    uint256 private _tTotal = startingSupply * (10 ** _decimals);

    uint256 private snipeBlockAmt = 0;
    uint256 public snipersCaught = 0;
    bool private sameBlockActive = true;
    bool private sniperProtection = true;
    uint256 private _liqAddBlock = 0;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    struct StaticValuesStruct {
        uint16 maxBuyTaxes;
        uint16 maxSellTaxes;
        uint16 maxTransferTaxes;
        uint16 masterTaxDivisor;
    }

    struct Ratios {
        uint16 rewards;
        uint16 liquidity;
        uint16 marketing;
        uint16 treasury;
        uint16 total;
    }

    Fees public _taxRates = Fees({
        buyFee: 0,
        sellFee: 1000,
        transferFee: 4000
        });

    Ratios public _ratios = Ratios({
        rewards: 30,
        liquidity: 10,
        marketing: 10,
        treasury: 50,
        total: 100
        });

       

    StaticValuesStruct public staticVals = StaticValuesStruct({
        maxBuyTaxes: 2000,
        maxSellTaxes: 2000,
        maxTransferTaxes: 4000,
        masterTaxDivisor: 10000
        });

    IRouter02 public dexRouter;
    address public lpPair;
    address public currentRouter;

    address private WAVAX;
    address public DEAD = 0x000000000000000000000000000000000000dEaD;
    address private zero = 0x0000000000000000000000000000000000000000;

    address payable public marketingWallet = payable(0x8C400D07C258e07681587D3DBDc3dF1CE3306DD7);
    address payable private rewardsPool = payable(0xA3b4C11E2625b3A39c838DA649A28B00F3c49cCE);
    address payable private treasuryWallet = payable(0xE63fb42e89cD67d93bcb6DC5E9388B347E3174be);

    uint256 private _maxTxAmount = (_tTotal * 1) / 100;
    uint256 private _maxWalletSize = (_tTotal * 5) / 100;

    bool public contractSwapEnabled = false;
    uint256 private swapThreshold = _tTotal / 20000;
    uint256 private swapAmount = _tTotal * 5 / 1000;
    bool inSwap;

    bool public tradingEnabled = false;
    bool public hasLiqBeenAdded = false;

    uint256 vBuy1 = 250;
    uint256 vBuy2 = 500;
    uint256 vBuy3 = 1500;
    uint256 vBuy4 = 2500;

    IERC20 mansion = IERC20(0xA3b4C11E2625b3A39c838DA649A28B00F3c49cCE);


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

    modifier onlyOwner() {
        require(_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountAVAX, uint256 amount);
    event SniperCaught(address sniperAddress);

    constructor () {
        address msgSender = msg.sender;
        _tOwned[msgSender] = _tTotal;

        _owner = msgSender;

        currentRouter = 0x60aE616a2155Ee3d9A68541Ba4544862310933d4;

        dexRouter = IRouter02(currentRouter);
        lpPair = IFactoryV2(dexRouter.factory()).createPair(dexRouter.WAVAX(), address(this));
        lpPairs[lpPair] = true;
        _approve(msg.sender, currentRouter, type(uint256).max);
        _approve(address(this), currentRouter, type(uint256).max);

        WAVAX = dexRouter.WAVAX();

        _isFeeExcluded[owner()] = true;
        _isFeeExcluded[address(this)] = true;

        emit Transfer(zero, msg.sender, _tTotal);
        emit OwnershipTransferred(address(0), msgSender);
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.
    function owner() public view returns (address) {
        return _owner;
    }

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        _isFeeExcluded[_owner] = false;
        _isFeeExcluded[newOwner] = true;
        
        if(_tOwned[_owner] > 0) {
            _transfer(_owner, newOwner, _tOwned[_owner]);
        }
        
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
        
    }

    function renounceOwnership() public virtual onlyOwner {
        _isFeeExcluded[_owner] = false;
        _owner = address(0);
        emit OwnershipTransferred(_owner, address(0));
    }
//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    receive() external payable {}

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

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

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

    function _approve(address sender, address spender, uint256 amount) private {
        require(sender != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[sender][spender] = amount;
        emit Approval(sender, spender, amount);
    }

    function approveContractContingency() public onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function setStartingProtections(uint8 _block) external onlyOwner{
        require (snipeBlockAmt == 0 && _block <= 5 && !hasLiqBeenAdded);
        snipeBlockAmt = _block;
    }

    function isSniper(address account) public view returns (bool) {
        return _isSniper[account];
    }

    function removeSniper(address account) external onlyOwner() {
        require(_isSniper[account], "Account is not a recorded sniper.");
        _isSniper[account] = false;
    }

    function setProtectionSettings(bool antiSnipe, bool antiBlock) external onlyOwner() {
        sniperProtection = antiSnipe;
        sameBlockActive = antiBlock;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function changeRouterContingency(address router) external onlyOwner {
        require(!hasLiqBeenAdded);
        currentRouter = router;
    }

    function isFeeExcluded(address account) public view returns(bool) {
        return _isFeeExcluded[account];
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(hasLiqBeenAdded, "Liquidity must be added.");
        _liqAddBlock = block.number;
        tradingEnabled = true;
    }

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isFeeExcluded[account] = enabled;
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(buyFee <= staticVals.maxBuyTaxes
                && sellFee <= staticVals.maxSellTaxes
                && transferFee <= staticVals.maxTransferTaxes);
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setRatios(uint16 rewards, uint16 liquidity, uint16 marketing, uint16 treasury) external onlyOwner {
        _ratios.rewards = rewards;
        _ratios.liquidity = liquidity;
        _ratios.marketing = marketing;
        _ratios.treasury = treasury;
        _ratios.total = rewards + liquidity + marketing + treasury;
    }

    function setWallets(address payable marketing, address payable treasury, address payable rewards) external onlyOwner {
        marketingWallet = payable(marketing);
        treasuryWallet = payable(treasury);
        rewardsPool = payable(rewards);
    }

    function setContractSwapSettings(bool _enabled) external onlyOwner {
        contractSwapEnabled = _enabled;
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function updateMansionAddress(IERC20 _mansion) external onlyOwner {
        require(_mansion != IERC20(address(this)), "Mansion address cannot be this address");
        mansion = IERC20(_mansion);
        
    }

    function setNewRouter(address newRouter) external onlyOwner() {
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WAVAX());
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WAVAX());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (enabled = false) {
            lpPairs[pair] = false;
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "Cannot set a new pair this week!");
            }
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
        }
    }

    function setMaxTxPercent(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal / 1000), "Max Transaction amt must be above 0.1% of total supply.");
        _maxTxAmount = (_tTotal * percent) / divisor;
    }

    function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal / 1000), "Max Wallet amt must be above 0.1% of total supply.");
        _maxWalletSize = (_tTotal * percent) / divisor;
    }

    function getMaxTX() external view returns (uint256) {
        return _maxTxAmount / (10**_decimals);
    }

    function getMaxWallet() external view returns (uint256) {
        return _maxWalletSize / (10**_decimals);
    }

    function _hasLimits(address from, address to) private view returns (bool) {
        return from != owner()
            && to != owner()
            && tx.origin != owner()
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(_hasLimits(from, to)) {
            if(!tradingEnabled) {
                revert("Trading not yet enabled!");
            }

            if(lpPairs[from] || lpPairs[to]){
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            }
            if(to != currentRouter && !lpPairs[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
            }
        }

        bool takeFee = true;
        
        if(_isFeeExcluded[from] || _isFeeExcluded[to]){
            takeFee = false;
        }

        return _finalizeTransfer(from, to, amount, takeFee);
    }

    function _finalizeTransfer(address from, address to, uint256 amount, bool takeFee) internal returns (bool) {
        if (sniperProtection){
            if (isSniper(from) || isSniper(to)) {
                revert("Sniper rejected.");
            }

            if (!hasLiqBeenAdded) {
                _checkLiquidityAdd(from, to);
                if (!hasLiqBeenAdded && _hasLimits(from, to)) {
                    revert("Only owner can transfer at this time.");
                }
            } else {
                if (_liqAddBlock > 0 
                    && lpPairs[from] 
                    && _hasLimits(from, to)
                ) {
                    if (block.number - _liqAddBlock < snipeBlockAmt) {
                        _isSniper[to] = true;
                        snipersCaught ++;
                        emit SniperCaught(to);
                    }
                }
            }
        }
            
        _tOwned[from] -= amount;        

        if (inSwap) {
            return _basicTransfer(from, to, amount);
        }

        uint256 contractTokenBalance = _tOwned[address(this)];
        if(contractTokenBalance >= swapAmount)
            contractTokenBalance = swapAmount;

        if (!inSwap
            && !lpPairs[from]
            && contractSwapEnabled
            && contractTokenBalance >= swapThreshold
        ) {
            contractSwap(contractTokenBalance);
        }

        uint256 amountReceived = amount;

        if (takeFee) {
            amountReceived = takeTaxes(from, to, amount);
        }

        _tOwned[to] += amountReceived;

        emit Transfer(from, to, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _tOwned[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function setVBuy(uint256 _vBuy1, uint256 _vBuy2, uint256 _vBuy3, uint256 _vBuy4) external onlyOwner {
        require(_vBuy1 < _vBuy2, "vBuy1 must be less than vBuy2");
        vBuy1 = _vBuy1;
        require(_vBuy2 < _vBuy3, "vBuy2 must be less than vBuy3");
        vBuy2 = _vBuy2;
        require(_vBuy3 < _vBuy4, "vBuy3 must be less than vBuy4");
        vBuy3 = _vBuy3;
        require(_vBuy4 <= 2500, "vBuy4 must be less than 25%");
        vBuy4 = _vBuy4;
    }

    function getWhaleFee(address from) public view returns (uint256) {
        if(mansion.balanceOf(from) >= 1 &&
            mansion.balanceOf(from) < 20 ){return vBuy1;}
        if(mansion.balanceOf(from) >= 20 &&
            mansion.balanceOf(from) < 50 ){return vBuy2;}
        if(mansion.balanceOf(from) >= 50 &&
            mansion.balanceOf(from) < 100 ){return vBuy3;}
        if(mansion.balanceOf(from) >= 100) {return vBuy4;}
        else{
            return 0;
        }

    }

    function takeTaxes(address from, address to, uint256 amount) internal returns (uint256) {
        uint256 currentFee;
        if (from == lpPair) {
            currentFee = _taxRates.buyFee;
        } else if (to == lpPair) {
            currentFee = _taxRates.sellFee + getWhaleFee(from);
        } else {
            currentFee = _taxRates.transferFee;
        }

        if (currentFee == 0) {
            return amount;
        }

        uint256 feeAmount = amount * currentFee / staticVals.masterTaxDivisor;

        _tOwned[address(this)] += feeAmount;
        emit Transfer(from, address(this), feeAmount);

        return amount - feeAmount;
    }

    function contractSwap(uint256 numTokensToSwap) internal swapping {
        if (_ratios.total == 0) {
            return;
        }
        
        if(_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }

        uint256 amountToLiquify = ((numTokensToSwap * _ratios.liquidity) / (_ratios.total)) / 2;
        uint256 amountToRewardsPool = (numTokensToSwap * _ratios.rewards) / (_ratios.total);

        if(amountToRewardsPool > 0) {
            emit Transfer(address(this), rewardsPool, amountToRewardsPool);
        }

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

        dexRouter.swapExactTokensForAVAXSupportingFeeOnTransferTokens(
            numTokensToSwap - amountToLiquify - amountToRewardsPool,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountAVAX = address(this).balance;
        uint256 amountAVAXLiquidity = ((amountAVAX * _ratios.liquidity) / (_ratios.total)) / 2;

        
        

        if (amountToLiquify > 0) {
            dexRouter.addLiquidityAVAX{value: amountAVAXLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                DEAD,
                block.timestamp
            );
            emit AutoLiquify(amountAVAXLiquidity, amountToLiquify);
        }


        if(address(this).balance > 0){
            amountAVAX = address(this).balance;
            treasuryWallet.transfer((amountAVAX * _ratios.treasury) / (_ratios.treasury + _ratios.marketing));
            marketingWallet.transfer(address(this).balance);
        }
    }

    

    function _checkLiquidityAdd(address from, address to) private {
        require(!hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            
            _liqAddBlock = block.number;
            _liquidityHolders[from] = true;
            hasLiqBeenAdded = true;
            
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(_tOwned[msg.sender] >= amounts[i]);
            _transfer(msg.sender, accounts[i], amounts[i]*10**_decimals);
        }
    }

    function multiSendPercents(address[] memory accounts, uint256[] memory percents, uint256[] memory divisors) external {
        require(accounts.length == percents.length && percents.length == divisors.length, "Lengths do not match.");
        for (uint8 i = 0; i < accounts.length; i++) {
            require(_tOwned[msg.sender] >= (_tTotal * percents[i]) / divisors[i]);
            _transfer(msg.sender, accounts[i], (_tTotal * percents[i]) / divisors[i]);
        }
    }
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountAVAX","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniperAddress","type":"address"}],"name":"SniperCaught","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_ratios","outputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"treasury","type":"uint16"},{"internalType":"uint16","name":"total","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"approveContractContingency","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"changeRouterContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"}],"name":"getWhaleFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isFeeExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"percents","type":"uint256[]"},{"internalType":"uint256[]","name":"divisors","type":"uint256[]"}],"name":"multiSendPercents","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"nodeApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"antiSnipe","type":"bool"},{"internalType":"bool","name":"antiBlock","type":"bool"}],"name":"setProtectionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"rewards","type":"uint16"},{"internalType":"uint16","name":"liquidity","type":"uint16"},{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"treasury","type":"uint16"}],"name":"setRatios","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_block","type":"uint8"}],"name":"setStartingProtections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_vBuy1","type":"uint256"},{"internalType":"uint256","name":"_vBuy2","type":"uint256"},{"internalType":"uint256","name":"_vBuy3","type":"uint256"},{"internalType":"uint256","name":"_vBuy4","type":"uint256"}],"name":"setVBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"},{"internalType":"address payable","name":"treasury","type":"address"},{"internalType":"address payable","name":"rewards","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipersCaught","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"staticVals","outputs":[{"internalType":"uint16","name":"maxBuyTaxes","type":"uint16"},{"internalType":"uint16","name":"maxSellTaxes","type":"uint16"},{"internalType":"uint16","name":"maxTransferTaxes","type":"uint16"},{"internalType":"uint16","name":"masterTaxDivisor","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_mansion","type":"address"}],"name":"updateMansionAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006003556008805460ff191660129081179091556200002690600a62000809565b6200003590621e848062000821565b60098190556000600a818155600b829055600c805461ffff1916610101179055600d82905560408051606080820183529381526103e8602080830191909152610fa0918301829052600e805465ffffffffffff1916650fa003e80000179055825160a081018452601e81528082018590528084019490945260328486015260646080948501819052600f80546001600160501b03191668640032000a000a001e179055835194850184526107d080865291850191909152918301526127109190920152601080546001600160401b0319166727100fa007d007d01790556015805461dead6001600160a01b031991821617909155601680548216905560178054738c400d07c258e07681587d3dbdc3df1ce3306dd79083161790556018805473a3b4c11e2625b3a39c838da649a28b00f3c49cce9083161790556019805473e63fb42e89cd67d93bcb6dc5e9388b347e3174be9216919091179055906200019e90600162000821565b620001aa919062000843565b601a5560646009546005620001c0919062000821565b620001cc919062000843565b601b55601c805460ff19169055600954620001eb90614e209062000843565b601d556103e8600954600562000202919062000821565b6200020e919062000843565b601e55601f805462ffff001916905560fa6020556101f46021556105dc6022556109c4602355602480546001600160a01b03191673a3b4c11e2625b3a39c838da649a28b00f3c49cce1790553480156200026757600080fd5b506009543360008181526001602090815260408083209490945581546001600160a01b031990811684179092556013805483167360ae616a2155ee3d9a68541ba4544862310933d4908117909155601180549093168117909255835163c45a015560e01b815293519293919263c45a01559260048082019392918290030181865afa158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000321919062000866565b6001600160a01b031663c9c65396601160009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000383573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a9919062000866565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c919062000866565b601280546001600160a01b0319166001600160a01b039283169081179091556000908152600260205260409020805460ff191660011790556013546200046891339116600019620005c8565b601354620004849030906001600160a01b0316600019620005c8565b601160009054906101000a90046001600160a01b03166001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004fe919062000866565b601480546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff1990811660019081179092553085529382902080549094161790925560165460095483519081529251339491909116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92908290030190a36040516001600160a01b038216906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35062000891565b6001600160a01b038316620006305760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620006935760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000627565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200074b5781600019048211156200072f576200072f620006f4565b808516156200073d57918102915b93841c93908002906200070f565b509250929050565b600082620007645750600162000803565b81620007735750600062000803565b81600181146200078c57600281146200079757620007b7565b600191505062000803565b60ff841115620007ab57620007ab620006f4565b50506001821b62000803565b5060208310610133831016604e8410600b8410161715620007dc575081810a62000803565b620007e883836200070a565b8060001904821115620007ff57620007ff620006f4565b0290505b92915050565b60006200081a60ff84168362000753565b9392505050565b60008160001904831182151516156200083e576200083e620006f4565b500290565b6000826200086157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200087957600080fd5b81516001600160a01b03811681146200081a57600080fd5b6139d880620008a16000396000f3fe6080604052600436106103035760003560e01c8063590ffdce116101905780638da5cb5b116100dc578063dd62ed3e11610095578063e8a0e3f91161006f578063e8a0e3f914610a24578063eafb5a3c14610a44578063fb78680d14610a64578063fdb78c0e14610a8457600080fd5b8063dd62ed3e146109c8578063e630c2081461046e578063e79d416014610a0e57600080fd5b80638da5cb5b1461085c57806395d89b41146108a457806396c05089146108d6578063a9059cbb146108f6578063bca238aa14610916578063cf8477061461094f57600080fd5b806375cb1bd11161014957806380c581d11161012357806380c581d11461083c578063893d20e81461085c5780638a63bd9b1461087a5780638a8c523c1461088f57600080fd5b806375cb1bd1146107dc57806375f0a874146107fc578063780e11541461081c57600080fd5b8063590ffdce1461071c5780635e35bfb71461073c5780636ebd00781461075c57806370a0823114610771578063715018a6146107a757806371bce92d146107bc57600080fd5b806323b872dd1161024f57806333251a0b116102085780634129ecee116101e25780634129ecee1461069d578063452ed4f1146106bd5780634ada218b146106dd5780634fb2e45d146106fc57600080fd5b806333251a0b1461063d578063384f36b61461065d5780633f3cf56c1461067d57600080fd5b806323b872dd1461058657806326003957146105a65780632610eaca146105c65780632b112e49146105e6578063313ce567146105fb57806332cde6641461061d57600080fd5b80630758d924116102bc5780630fa604e4116102965780630fa604e4146104c7578063122fea3b146104ea57806318160ddd1461050a5780631b6afa2d1461051f57600080fd5b80630758d9241461044e578063095ea7b31461046e5780630f3a325f1461048e57600080fd5b8063020372e21461030f57806303fd2a4514610344578063044df7261461037c578063069d955f1461039e57806306fdde03146103f35780630712d1651461042e57600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50601f5461032f9062010000900460ff1681565b60405190151581526020015b60405180910390f35b34801561035057600080fd5b50601554610364906001600160a01b031681565b6040516001600160a01b03909116815260200161033b565b34801561038857600080fd5b5061039c6103973660046130fe565b610a9e565b005b3480156103aa57600080fd5b50600e546103ce9061ffff80821691620100008104821691600160201b9091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161033b565b3480156103ff57600080fd5b50604080518082019091526009815268506c61796d6174657360b81b60208201525b60405161033b9190613131565b34801561043a57600080fd5b5061039c610449366004613198565b610af4565b34801561045a57600080fd5b50601154610364906001600160a01b031681565b34801561047a57600080fd5b5061032f610489366004613204565b610bb9565b34801561049a57600080fd5b5061032f6104a9366004613230565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156104d357600080fd5b506104dc610c26565b60405190815260200161033b565b3480156104f657600080fd5b50601354610364906001600160a01b031681565b34801561051657600080fd5b506009546104dc565b34801561052b57600080fd5b506010546105589061ffff80821691620100008104821691600160201b8204811691600160301b90041684565b6040805161ffff9586168152938516602085015291841691830191909152909116606082015260800161033b565b34801561059257600080fd5b5061032f6105a136600461324d565b610c4c565b3480156105b257600080fd5b5061039c6105c136600461328e565b610cc6565b3480156105d257600080fd5b5061039c6105e13660046133ea565b610da2565b3480156105f257600080fd5b506104dc610ec1565b34801561060757600080fd5b5060085460405160ff909116815260200161033b565b34801561062957600080fd5b5061039c61063836600461344e565b610f16565b34801561064957600080fd5b5061039c610658366004613230565b610fce565b34801561066957600080fd5b5061039c610678366004613230565b61108b565b34801561068957600080fd5b5061039c61069836600461328e565b6110ed565b3480156106a957600080fd5b5061039c6106b8366004613491565b6111d4565b3480156106c957600080fd5b50601254610364906001600160a01b031681565b3480156106e957600080fd5b50601f5461032f90610100900460ff1681565b34801561070857600080fd5b5061039c610717366004613230565b611238565b34801561072857600080fd5b5061039c6107373660046134b4565b611379565b34801561074857600080fd5b506104dc610757366004613230565b6113ce565b34801561076857600080fd5b506104dc61173e565b34801561077d57600080fd5b506104dc61078c366004613230565b6001600160a01b031660009081526001602052604090205490565b3480156107b357600080fd5b5061039c61175f565b3480156107c857600080fd5b5061039c6107d73660046134d2565b6117e2565b3480156107e857600080fd5b5061039c6107f7366004613504565b611962565b34801561080857600080fd5b50601754610364906001600160a01b031681565b34801561082857600080fd5b5061039c61083736600461354f565b6119cb565b34801561084857600080fd5b5061039c6108573660046134b4565b611a08565b34801561086857600080fd5b506000546001600160a01b0316610364565b34801561088657600080fd5b5061032f611ac8565b34801561089b57600080fd5b5061039c611b13565b3480156108b057600080fd5b50604080518082019091526009815268504c41594d4154455360b81b6020820152610421565b3480156108e257600080fd5b5061039c6108f1366004613230565b611c02565b34801561090257600080fd5b5061032f610911366004613204565b611cb6565b34801561092257600080fd5b5061032f610931366004613230565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561095b57600080fd5b50600f546109939061ffff80821691620100008104821691600160201b8204811691600160301b8104821691600160401b9091041685565b6040805161ffff968716815294861660208601529285169284019290925283166060830152909116608082015260a00161033b565b3480156109d457600080fd5b506104dc6109e336600461356a565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a1a57600080fd5b506104dc600b5481565b348015610a3057600080fd5b5061039c610a3f3660046135a3565b611cc3565b348015610a5057600080fd5b5061039c610a5f366004613230565b611e1f565b348015610a7057600080fd5b5061039c610a7f3660046134d2565b612153565b348015610a9057600080fd5b50601c5461032f9060ff1681565b6000546001600160a01b03163314610ad15760405162461bcd60e51b8152600401610ac89061362b565b60405180910390fd5b600c805461ffff19166101009315159390930260ff191692909217901515179055565b6000546001600160a01b03163314610b1e5760405162461bcd60e51b8152600401610ac89061362b565b600f805461ffff86811663ffffffff199092169190911762010000868316021767ffffffff000000001916600160201b8583160267ffff000000000000191617600160301b918416919091021790558082610b798587613676565b610b839190613676565b610b8d9190613676565b600f805461ffff92909216600160401b0269ffff00000000000000001990921691909117905550505050565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c149086815260200190565b60405180910390a35060015b92915050565b600854600090610c3a9060ff16600a613780565b601b54610c47919061378f565b905090565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610cb1576001600160a01b038416600090815260046020908152604080832033845290915281208054849290610cab9084906137b1565b90915550505b610cbc8484846121bc565b90505b9392505050565b6000546001600160a01b03163314610cf05760405162461bcd60e51b8152600401610ac89061362b565b6103e8600954610d00919061378f565b8183600954610d0f91906137c8565b610d19919061378f565b1015610d825760405162461bcd60e51b815260206004820152603260248201527f4d61782057616c6c657420616d74206d7573742062652061626f766520302e31604482015271129037b3103a37ba30b61039bab838363c9760711b6064820152608401610ac8565b8082600954610d9191906137c8565b610d9b919061378f565b601b555050565b8051825114610deb5760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610ac8565b60005b82518160ff161015610ebc57818160ff1681518110610e0f57610e0f6137e7565b602002602001015160016000336001600160a01b03166001600160a01b03168152602001908152602001600020541015610e4857600080fd5b610ea933848360ff1681518110610e6157610e616137e7565b6020908102919091010151600854610e7d9060ff16600a613780565b858560ff1681518110610e9257610e926137e7565b6020026020010151610ea491906137c8565b6121bc565b5080610eb4816137fd565b915050610dee565b505050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49546015546001600160a01b0316600090815260408120549091610f099161381d565b600954610c4791906137b1565b6000546001600160a01b03163314610f405760405162461bcd60e51b8152600401610ac89061362b565b60105461ffff90811690841611801590610f6a575060105461ffff62010000909104811690831611155b8015610f87575060105461ffff600160201b909104811690821611155b610f9057600080fd5b600e805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff000000001916600160201b9190931602919091179055565b6000546001600160a01b03163314610ff85760405162461bcd60e51b8152600401610ac89061362b565b6001600160a01b03811660009081526006602052604090205460ff1661106a5760405162461bcd60e51b815260206004820152602160248201527f4163636f756e74206973206e6f742061207265636f7264656420736e697065726044820152601760f91b6064820152608401610ac8565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146110b55760405162461bcd60e51b8152600401610ac89061362b565b601f5462010000900460ff16156110cb57600080fd5b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111175760405162461bcd60e51b8152600401610ac89061362b565b6103e8600954611127919061378f565b818360095461113691906137c8565b611140919061378f565b10156111b45760405162461bcd60e51b815260206004820152603760248201527f4d6178205472616e73616374696f6e20616d74206d7573742062652061626f7660448201527f6520302e3125206f6620746f74616c20737570706c792e0000000000000000006064820152608401610ac8565b80826009546111c391906137c8565b6111cd919061378f565b601a555050565b6000546001600160a01b031633146111fe5760405162461bcd60e51b8152600401610ac89061362b565b600a54158015611212575060058160ff1611155b80156112275750601f5462010000900460ff16155b61123057600080fd5b60ff16600a55565b6000546001600160a01b031633146112625760405162461bcd60e51b8152600401610ac89061362b565b6001600160a01b0381166112885760405162461bcd60e51b8152600401610ac890613835565b6015546001600160a01b03828116911614156112b65760405162461bcd60e51b8152600401610ac890613835565b600080546001600160a01b039081168252600560209081526040808420805460ff19908116909155858416855281852080549091166001908117909155845490931684529190529020541561132e57600080546001600160a01b0316808252600160205260409091205461132c919083906121bc565b505b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b031633146113a35760405162461bcd60e51b8152600401610ac89061362b565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b602480546040516370a0823160e01b81526001600160a01b03848116600483015260009360019391909116916370a082319101602060405180830381865afa15801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190613892565b101580156114bc5750602480546040516370a0823160e01b81526001600160a01b0385811660048301526014939216916370a082319101602060405180830381865afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ba9190613892565b105b156114c957505060205490565b602480546040516370a0823160e01b81526001600160a01b0385811660048301526014939216916370a082319101602060405180830381865afa158015611514573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115389190613892565b101580156115b25750602480546040516370a0823160e01b81526001600160a01b0385811660048301526032939216916370a082319101602060405180830381865afa15801561158c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b09190613892565b105b156115bf57505060215490565b602480546040516370a0823160e01b81526001600160a01b0385811660048301526032939216916370a082319101602060405180830381865afa15801561160a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162e9190613892565b101580156116a85750602480546040516370a0823160e01b81526001600160a01b0385811660048301526064939216916370a082319101602060405180830381865afa158015611682573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a69190613892565b105b156116b557505060225490565b602480546040516370a0823160e01b81526001600160a01b0385811660048301526064939216916370a082319101602060405180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190613892565b1061173157505060235490565b506000919050565b919050565b6008546000906117529060ff16600a613780565b601a54610c47919061378f565b6000546001600160a01b031633146117895760405162461bcd60e51b8152600401610ac89061362b565b600080546001600160a01b0316815260056020526040808220805460ff1916905581546001600160a01b03191682555181907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3565b6000546001600160a01b0316331461180c5760405162461bcd60e51b8152600401610ac89061362b565b82841061185b5760405162461bcd60e51b815260206004820152601d60248201527f7642757931206d757374206265206c657373207468616e2076427579320000006044820152606401610ac8565b60208490558183106118af5760405162461bcd60e51b815260206004820152601d60248201527f7642757932206d757374206265206c657373207468616e2076427579330000006044820152606401610ac8565b60218390558082106119035760405162461bcd60e51b815260206004820152601d60248201527f7642757933206d757374206265206c657373207468616e2076427579340000006044820152606401610ac8565b60228290556109c481111561195a5760405162461bcd60e51b815260206004820152601b60248201527f7642757934206d757374206265206c657373207468616e2032352500000000006044820152606401610ac8565b602355505050565b6000546001600160a01b0316331461198c5760405162461bcd60e51b8152600401610ac89061362b565b601780546001600160a01b039485166001600160a01b031991821617909155601980549385169382169390931790925560188054919093169116179055565b6000546001600160a01b031633146119f55760405162461bcd60e51b8152600401610ac89061362b565b601c805460ff1916911515919091179055565b6000546001600160a01b03163314611a325760405162461bcd60e51b8152600401610ac89061362b565b50600060035415611a9c576203f48060035442611a4f91906137b1565b11611a9c5760405162461bcd60e51b815260206004820181905260248201527f43616e6e6f74207365742061206e657720706169722074686973207765656b216044820152606401610ac8565b6001600160a01b0382166000908152600260205260409020805460ff19166001179055426003555b5050565b600080546001600160a01b03163314611af35760405162461bcd60e51b8152600401610ac89061362b565b601154611b0d9030906001600160a01b031660001961251d565b50600190565b6000546001600160a01b03163314611b3d5760405162461bcd60e51b8152600401610ac89061362b565b601f54610100900460ff1615611b955760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610ac8565b601f5462010000900460ff16611bed5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610ac8565b43600d55601f805461ff001916610100179055565b6000546001600160a01b03163314611c2c5760405162461bcd60e51b8152600401610ac89061362b565b6001600160a01b038116301415611c945760405162461bcd60e51b815260206004820152602660248201527f4d616e73696f6e20616464726573732063616e6e6f742062652074686973206160448201526564647265737360d01b6064820152608401610ac8565b602480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610cbf3384846121bc565b81518351148015611cd5575080518251145b611d195760405162461bcd60e51b81526020600482015260156024820152742632b733ba3439903237903737ba1036b0ba31b41760591b6044820152606401610ac8565b60005b83518160ff161015611e1957818160ff1681518110611d3d57611d3d6137e7565b6020026020010151838260ff1681518110611d5a57611d5a6137e7565b6020026020010151600954611d6f91906137c8565b611d79919061378f565b336000908152600160205260409020541015611d9457600080fd5b611e0633858360ff1681518110611dad57611dad6137e7565b6020026020010151848460ff1681518110611dca57611dca6137e7565b6020026020010151868560ff1681518110611de757611de76137e7565b6020026020010151600954611dfc91906137c8565b610ea4919061378f565b5080611e11816137fd565b915050611d1c565b50505050565b6000546001600160a01b03163314611e495760405162461bcd60e51b8152600401610ac89061362b565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eb291906138ab565b6001600160a01b031663e6a4390530846001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2391906138ab565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f9291906138ab565b90506001600160a01b03811661210b57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200491906138ab565b6001600160a01b031663c9c6539630846001600160a01b03166373b295c26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612051573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207591906138ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156120c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120e691906138ab565b601280546001600160a01b0319166001600160a01b0392909216919091179055612127565b601280546001600160a01b0319166001600160a01b0383161790555b601180546001600160a01b0319166001600160a01b038416908117909155610ebc90309060001961251d565b6000546001600160a01b0316331461217d5760405162461bcd60e51b8152600401610ac89061362b565b828460095461218c91906137c8565b612196919061378f565b601d5560095481906121a99084906137c8565b6121b3919061378f565b601e5550505050565b60006001600160a01b0384166122225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ac8565b6001600160a01b0383166122845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ac8565b600082116122e65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610ac8565b6122f08484612641565b156124bd57601f54610100900460ff1661234c5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610ac8565b6001600160a01b03841660009081526002602052604090205460ff168061238b57506001600160a01b03831660009081526002602052604090205460ff165b156123f357601a548211156123f35760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610ac8565b6013546001600160a01b0384811691161480159061242a57506001600160a01b03831660009081526002602052604090205460ff16155b156124bd57601b5482612452856001600160a01b031660009081526001602052604090205490565b61245c919061381d565b11156124bd5760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610ac8565b6001600160a01b03841660009081526005602052604090205460019060ff16806124ff57506001600160a01b03841660009081526005602052604090205460ff165b15612508575060005b61251485858584612715565b95945050505050565b6001600160a01b03831661257f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ac8565b6001600160a01b0382166125e05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ac8565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080546001600160a01b0384811691161480159061266e57506000546001600160a01b03838116911614155b801561268557506000546001600160a01b03163214155b80156126aa57506001600160a01b03821660009081526007602052604090205460ff16155b80156126cf57506001600160a01b03831660009081526007602052604090205460ff16155b80156126e957506015546001600160a01b03838116911614155b80156126fd57506001600160a01b03821615155b8015610cbf575050506001600160a01b031630141590565b600c54600090610100900460ff1615612908576001600160a01b03851660009081526006602052604090205460ff168061276757506001600160a01b03841660009081526006602052604090205460ff165b156127a75760405162461bcd60e51b815260206004820152601060248201526f29b734b832b9103932b532b1ba32b21760811b6044820152606401610ac8565b601f5462010000900460ff1661283f576127c18585612a54565b601f5462010000900460ff161580156127df57506127df8585612641565b1561283a5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c79206f776e65722063616e207472616e736665722061742074686973206044820152643a34b6b29760d91b6064820152608401610ac8565b612908565b6000600d5411801561286957506001600160a01b03851660009081526002602052604090205460ff165b801561287a575061287a8585612641565b1561290857600a54600d5461288f90436137b1565b1015612908576001600160a01b0384166000908152600660205260408120805460ff19166001179055600b8054916128c6836138c8565b90915550506040516001600160a01b03851681527f18e6e5ce5c121466e41a954e72765d1ea02b8e6919043b61f0dab08b4c6572e59060200160405180910390a15b6001600160a01b038516600090815260016020526040812080548592906129309084906137b1565b9091555050601f5460ff16156129525761294b858585612b62565b9050612a4c565b30600090815260016020526040902054601e5481106129705750601e545b601f5460ff1615801561299c57506001600160a01b03861660009081526002602052604090205460ff16155b80156129aa5750601c5460ff165b80156129b85750601d548110155b156129c6576129c681612bd8565b8383156129db576129d8878787612fdb565b90505b6001600160a01b03861660009081526001602052604081208054839290612a0390849061381d565b92505081905550856001600160a01b0316876001600160a01b031660008051602061398383398151915283604051612a3d91815260200190565b60405180910390a36001925050505b949350505050565b601f5462010000900460ff1615612ab95760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610ac8565b612ac38282612641565b158015612add57506012546001600160a01b038281169116145b15611ac45743600d556001600160a01b038216600090815260076020908152604091829020805460ff199081166001908117909255601f805462ff0000191662010000179055601c80549091168217905591519182527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257910160405180910390a15050565b6001600160a01b038216600090815260016020526040812080548391908390612b8c90849061381d565b92505081905550826001600160a01b0316846001600160a01b031660008051602061398383398151915284604051612bc691815260200190565b60405180910390a35060019392505050565b601f805460ff19166001179055600f5461ffff600160401b90910416612bfd57612fce565b3060009081526004602090815260408083206011546001600160a01b0316845290915290205460001914612c56573060009081526004602090815260408083206011546001600160a01b03168452909152902060001990555b600f5460009060029061ffff600160401b8204811691612c7e916201000090910416856137c8565b612c88919061378f565b612c92919061378f565b600f5490915060009061ffff600160401b8204811691612cb39116856137c8565b612cbd919061378f565b90508015612cf8576018546040518281526001600160a01b039091169030906000805160206139838339815191529060200160405180910390a35b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612d2d57612d2d6137e7565b6001600160a01b039283166020918202929092010152601454825191169082906001908110612d5e57612d5e6137e7565b6001600160a01b0392831660209182029290920101526011541663762b156283612d8886886137b1565b612d9291906137b1565b60008430426040518663ffffffff1660e01b8152600401612db79594939291906138e3565b600060405180830381600087803b158015612dd157600080fd5b505af1158015612de5573d6000803e3d6000fd5b5050600f544792506000915060029061ffff600160401b8204811691612e13916201000090910416856137c8565b612e1d919061378f565b612e27919061378f565b90508415612f0157601154601554604051637c8d9fb960e11b81523060048201526024810188905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f91b3f7290839060c40160606040518083038185885af1158015612e9f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ec49190613954565b505060408051838152602081018890527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b4715612fc857601954600f544793506001600160a01b03909116906108fc90612f3e9061ffff600160201b8204811691600160301b900416613676565b600f5461ffff91821691612f5a91600160301b900416866137c8565b612f64919061378f565b6040518115909202916000818181858888f19350505050158015612f8c573d6000803e3d6000fd5b506017546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015612fc6573d6000803e3d6000fd5b505b50505050505b50601f805460ff19169055565b60125460009081906001600160a01b03868116911614156130035750600e5461ffff16613050565b6012546001600160a01b038581169116141561304057613022856113ce565b600e54613039919062010000900461ffff1661381d565b9050613050565b50600e54600160201b900461ffff165b8061305e5782915050610cbf565b601054600090600160301b900461ffff1661307983866137c8565b613083919061378f565b306000908152600160205260408120805492935083929091906130a790849061381d565b909155505060405181815230906001600160a01b038816906000805160206139838339815191529060200160405180910390a36130e481856137b1565b9695505050505050565b8035801515811461173957600080fd5b6000806040838503121561311157600080fd5b61311a836130ee565b9150613128602084016130ee565b90509250929050565b600060208083528351808285015260005b8181101561315e57858101830151858201604001528201613142565b81811115613170576000604083870101525b50601f01601f1916929092016040019392505050565b803561ffff8116811461173957600080fd5b600080600080608085870312156131ae57600080fd5b6131b785613186565b93506131c560208601613186565b92506131d360408601613186565b91506131e160608601613186565b905092959194509250565b6001600160a01b038116811461320157600080fd5b50565b6000806040838503121561321757600080fd5b8235613222816131ec565b946020939093013593505050565b60006020828403121561324257600080fd5b8135610cbf816131ec565b60008060006060848603121561326257600080fd5b833561326d816131ec565b9250602084013561327d816131ec565b929592945050506040919091013590565b600080604083850312156132a157600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156132ef576132ef6132b0565b604052919050565b600067ffffffffffffffff821115613311576133116132b0565b5060051b60200190565b600082601f83011261332c57600080fd5b8135602061334161333c836132f7565b6132c6565b82815260059290921b8401810191818101908684111561336057600080fd5b8286015b84811015613384578035613377816131ec565b8352918301918301613364565b509695505050505050565b600082601f8301126133a057600080fd5b813560206133b061333c836132f7565b82815260059290921b840181019181810190868411156133cf57600080fd5b8286015b8481101561338457803583529183019183016133d3565b600080604083850312156133fd57600080fd5b823567ffffffffffffffff8082111561341557600080fd5b6134218683870161331b565b9350602085013591508082111561343757600080fd5b506134448582860161338f565b9150509250929050565b60008060006060848603121561346357600080fd5b61346c84613186565b925061347a60208501613186565b915061348860408501613186565b90509250925092565b6000602082840312156134a357600080fd5b813560ff81168114610cbf57600080fd5b600080604083850312156134c757600080fd5b823561311a816131ec565b600080600080608085870312156134e857600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561351957600080fd5b8335613524816131ec565b92506020840135613534816131ec565b91506040840135613544816131ec565b809150509250925092565b60006020828403121561356157600080fd5b610cbf826130ee565b6000806040838503121561357d57600080fd5b8235613588816131ec565b91506020830135613598816131ec565b809150509250929050565b6000806000606084860312156135b857600080fd5b833567ffffffffffffffff808211156135d057600080fd5b6135dc8783880161331b565b945060208601359150808211156135f257600080fd5b6135fe8783880161338f565b9350604086013591508082111561361457600080fd5b506136218682870161338f565b9150509250925092565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff80831681851680830382111561369357613693613660565b01949350505050565b600181815b808511156136d75781600019048211156136bd576136bd613660565b808516156136ca57918102915b93841c93908002906136a1565b509250929050565b6000826136ee57506001610c20565b816136fb57506000610c20565b8160018114613711576002811461371b57613737565b6001915050610c20565b60ff84111561372c5761372c613660565b50506001821b610c20565b5060208310610133831016604e8410600b841016171561375a575081810a610c20565b613764838361369c565b806000190482111561377857613778613660565b029392505050565b6000610cbf60ff8416836136df565b6000826137ac57634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156137c3576137c3613660565b500390565b60008160001904831182151516156137e2576137e2613660565b500290565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff81141561381457613814613660565b60010192915050565b6000821982111561383057613830613660565b500190565b6020808252603d908201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660408201527f6572206f776e657220746f20746865207a65726f20616464726573732e000000606082015260800190565b6000602082840312156138a457600080fd5b5051919050565b6000602082840312156138bd57600080fd5b8151610cbf816131ec565b60006000198214156138dc576138dc613660565b5060010190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156139335784516001600160a01b03168352938301939183019160010161390e565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561396957600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d668a2a1123ddefffc47037e618cbaed0763215250af301d8f6d938de8de6eee64736f6c634300080b0033

Deployed ByteCode Sourcemap

4768:21287:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7557:35;;;;;;;;;;-1:-1:-1;7557:35:0;;;;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;7557:35:0;;;;;;;;6783:64;;;;;;;;;;-1:-1:-1;6783:64:0;;;;-1:-1:-1;;;;;6783:64:0;;;;;;-1:-1:-1;;;;;370:32:1;;;352:51;;340:2;325:18;6783:64:0;206:203:1;12971:169:0;;;;;;;;;;-1:-1:-1;12971:169:0;;;;;:::i;:::-;;:::i;:::-;;6155:113;;;;;;;;;;-1:-1:-1;6155:113:0;;;;;;;;;;;;;;;-1:-1:-1;;;6155:113:0;;;;;;;;;;1038:6:1;1071:15;;;1053:34;;1123:15;;;1118:2;1103:18;;1096:43;1175:15;;1155:18;;;1148:43;;;;1016:2;1001:18;6155:113:0;832:365:1;11085:80:0;;;;;;;;;;-1:-1:-1;11157:5:0;;;;;;;;;;;;-1:-1:-1;;;11157:5:0;;;;11085:80;;;;;;;:::i;14683:338::-;;;;;;;;;;-1:-1:-1;14683:338:0;;;;;:::i;:::-;;:::i;6657:26::-;;;;;;;;;;-1:-1:-1;6657:26:0;;;;-1:-1:-1;;;;;6657:26:0;;;11507:216;;;;;;;;;;-1:-1:-1;11507:216:0;;;;;:::i;:::-;;:::i;12669:106::-;;;;;;;;;;-1:-1:-1;12669:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;12749:18:0;12725:4;12749:18;;;:9;:18;;;;;;;;;12669:106;17741:114;;;;;;;;;;;;;:::i;:::-;;;3453:25:1;;;3441:2;3426:18;17741:114:0;3307:177:1;6718:28:0;;;;;;;;;;-1:-1:-1;6718:28:0;;;;-1:-1:-1;;;;;6718:28:0;;;10820:83;;;;;;;;;;-1:-1:-1;10893:7:0;;10820:83;;6454:194;;;;;;;;;;-1:-1:-1;6454:194:0;;;;;;;;;;;;;;;-1:-1:-1;;;6454:194:0;;;;;-1:-1:-1;;;6454:194:0;;;;;;;;;3722:6:1;3755:15;;;3737:34;;3807:15;;;3802:2;3787:18;;3780:43;3859:15;;;3839:18;;;3832:43;;;;3911:15;;;3906:2;3891:18;;3884:43;3699:3;3684:19;6454:194:0;3489:444:1;13308:306:0;;;;;;;;;;-1:-1:-1;13308:306:0;;;;;:::i;:::-;;:::i;17350:267::-;;;;;;;;;;-1:-1:-1;17350:267:0;;;;;:::i;:::-;;:::i;25193:371::-;;;;;;;;;;-1:-1:-1;25193:371:0;;;;;:::i;:::-;;:::i;15716:141::-;;;;;;;;;;;;;:::i;10909:80::-;;;;;;;;;;-1:-1:-1;10977:9:0;;10909:80;;10977:9;;;;7403:36:1;;7391:2;7376:18;10909:80:0;7261:184:1;14289:386:0;;;;;;;;;;-1:-1:-1;14289:386:0;;;;;:::i;:::-;;:::i;12783:180::-;;;;;;;;;;-1:-1:-1;12783:180:0;;;;;:::i;:::-;;:::i;13622:145::-;;;;;;;;;;-1:-1:-1;13622:145:0;;;;;:::i;:::-;;:::i;17073:269::-;;;;;;;;;;-1:-1:-1;17073:269:0;;;;;:::i;:::-;;:::i;12482:179::-;;;;;;;;;;-1:-1:-1;12482:179:0;;;;;:::i;:::-;;:::i;6690:21::-;;;;;;;;;;-1:-1:-1;6690:21:0;;;;-1:-1:-1;;;;;6690:21:0;;;7516:34;;;;;;;;;;-1:-1:-1;7516:34:0;;;;;;;;;;;9657:576;;;;;;;;;;-1:-1:-1;9657:576:0;;;;;:::i;:::-;;:::i;14152:129::-;;;;;;;;;;-1:-1:-1;14152:129:0;;;;;:::i;:::-;;:::i;21700:496::-;;;;;;;;;;-1:-1:-1;21700:496:0;;;;;:::i;:::-;;:::i;17625:108::-;;;;;;;;;;;;;:::i;11257:103::-;;;;;;;;;;-1:-1:-1;11257:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;11341:16:0;11323:7;11341:16;;;:7;:16;;;;;;;11257:103;10241:189;;;;;;;;;;;;;:::i;21215:477::-;;;;;;;;;;-1:-1:-1;21215:477:0;;;;;:::i;:::-;;:::i;15029:258::-;;;;;;;;;;-1:-1:-1;15029:258:0;;;;;:::i;:::-;;:::i;6928:92::-;;;;;;;;;;-1:-1:-1;6928:92:0;;;;-1:-1:-1;;;;;6928:92:0;;;15295:116;;;;;;;;;;-1:-1:-1;15295:116:0;;;;;:::i;:::-;;:::i;16643:422::-;;;;;;;;;;-1:-1:-1;16643:422:0;;;;;:::i;:::-;;:::i;11171:80::-;;;;;;;;;;-1:-1:-1;11223:7:0;9635:6;-1:-1:-1;;;;;9635:6:0;11171:80;17741:114;12301:173;;;;;;;;;;;;;:::i;13898:246::-;;;;;;;;;;;;;:::i;10995:84::-;;;;;;;;;;-1:-1:-1;11069:7:0;;;;;;;;;;;;-1:-1:-1;;;11069:7:0;;;;10995:84;;15865:216;;;;;;;;;;-1:-1:-1;15865:216:0;;;;;:::i;:::-;;:::i;13148:152::-;;;;;;;;;;-1:-1:-1;13148:152:0;;;;;:::i;:::-;;:::i;13775:115::-;;;;;;;;;;-1:-1:-1;13775:115:0;;;;;:::i;:::-;-1:-1:-1;;;;;13859:23:0;13835:4;13859:23;;;:14;:23;;;;;;;;;13775:115;6277:157;;;;;;;;;;-1:-1:-1;6277:157:0;;;;;;;;;;;;;;;-1:-1:-1;;;6277:157:0;;;;;-1:-1:-1;;;6277:157:0;;;;;-1:-1:-1;;;6277:157:0;;;;;;;;;;10259:6:1;10292:15;;;10274:34;;10344:15;;;10339:2;10324:18;;10317:43;10396:15;;;10376:18;;;10369:43;;;;10448:15;;10443:2;10428:18;;10421:43;10501:15;;;10495:3;10480:19;;10473:44;10236:3;10221:19;6277:157:0;10000:523:1;11366:133:0;;;;;;;;;;-1:-1:-1;11366:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;11468:19:0;;;11450:7;11468:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;11366:133;5557:32;;;;;;;;;;;;;;;;25572:480;;;;;;;;;;-1:-1:-1;25572:480:0;;;;;:::i;:::-;;:::i;16089:546::-;;;;;;;;;;-1:-1:-1;16089:546:0;;;;;:::i;:::-;;:::i;15419:289::-;;;;;;;;;;-1:-1:-1;15419:289:0;;;;;:::i;:::-;;:::i;7342:39::-;;;;;;;;;;-1:-1:-1;7342:39:0;;;;;;;;12971:169;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;;;;;;;;;13066:16:::1;:28:::0;;-1:-1:-1;;13105:27:0;13066:28:::1;::::0;::::1;;::::0;;;::::1;-1:-1:-1::0;;13105:27:0;;;;;;::::1;;;::::0;;12971:169::o;14683:338::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;14801:7:::1;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;14837:29:0;;;;;;;;;;::::1;;;-1:-1:-1::0;;14917:27:0;-1:-1:-1;;;14877:29:0;;::::1;;-1:-1:-1::0;;14917:27:0;;-1:-1:-1;;;14917:27:0;;::::1;::::0;;;::::1;;::::0;;;14877:29;14971:19:::1;14837:29:::0;14801:25;14971:19:::1;:::i;:::-;:31;;;;:::i;:::-;:42;;;;:::i;:::-;14955:7;:58:::0;;::::1;::::0;;;::::1;-1:-1:-1::0;;;14955:58:0::1;-1:-1:-1::0;;14955:58:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;14683:338:0:o;11507:216::-;11611:10;11582:4;11599:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11599:32:0;;;;;;;;;;:41;;;11656:37;11582:4;;11599:32;;11656:37;;;;11634:6;3453:25:1;;3441:2;3426:18;;3307:177;11656:37:0;;;;;;;;-1:-1:-1;11711:4:0;11507:216;;;;;:::o;17741:114::-;17837:9;;17788:7;;17833:13;;17837:9;;17833:2;:13;:::i;:::-;17815:14;;:32;;;;:::i;:::-;17808:39;;17741:114;:::o;13308:306::-;-1:-1:-1;;;;;13429:19:0;;13408:4;13429:19;;;:11;:19;;;;;;;;13449:10;13429:31;;;;;;;;-1:-1:-1;;13429:52:0;13425:126;;-1:-1:-1;;;;;13498:19:0;;;;;;:11;:19;;;;;;;;13518:10;13498:31;;;;;;;:41;;13533:6;;13498:19;:41;;13533:6;;13498:41;:::i;:::-;;;;-1:-1:-1;;13425:126:0;13570:36;13580:6;13588:9;13599:6;13570:9;:36::i;:::-;13563:43;;13308:306;;;;;;:::o;17350:267::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;17492:4:::1;17482:7;;:14;;;;:::i;:::-;17470:7;17459;17449;;:17;;;;:::i;:::-;17448:29;;;;:::i;:::-;:49;;17440:112;;;::::0;-1:-1:-1;;;17440:112:0;;14579:2:1;17440:112:0::1;::::0;::::1;14561:21:1::0;14618:2;14598:18;;;14591:30;14657:34;14637:18;;;14630:62;-1:-1:-1;;;14708:18:1;;;14701:48;14766:19;;17440:112:0::1;14377:414:1::0;17440:112:0::1;17602:7;17591;17581;;:17;;;;:::i;:::-;17580:29;;;;:::i;:::-;17563:14;:46:::0;-1:-1:-1;;17350:267:0:o;25193:371::-;25318:7;:14;25299:8;:15;:33;25291:67;;;;-1:-1:-1;;;25291:67:0;;14998:2:1;25291:67:0;;;14980:21:1;15037:2;15017:18;;;15010:30;-1:-1:-1;;;15056:18:1;;;15049:51;15117:18;;25291:67:0;14796:345:1;25291:67:0;25374:7;25369:188;25391:8;:15;25387:1;:19;;;25369:188;;;25459:7;25467:1;25459:10;;;;;;;;;;:::i;:::-;;;;;;;25436:7;:19;25444:10;-1:-1:-1;;;;;25436:19:0;-1:-1:-1;;;;;25436:19:0;;;;;;;;;;;;;:33;;25428:42;;;;;;25485:60;25495:10;25507:8;25516:1;25507:11;;;;;;;;;;:::i;:::-;;;;;;;;;;;25535:9;;25531:13;;25535:9;;25531:2;:13;:::i;:::-;25520:7;25528:1;25520:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;25485:9;:60::i;:::-;-1:-1:-1;25408:3:0;;;;:::i;:::-;;;;25369:188;;;;25193:371;;:::o;15716:141::-;11341:7;:16;;;;15818:4;;-1:-1:-1;;;;;15818:4:0;15769:7;11341:16;;;;;;;15769:7;;15808:39;;;:::i;:::-;15797:7;;:51;;;;:::i;14289:386::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;14406:10:::1;:22:::0;::::1;::::0;;::::1;14396:32:::0;;::::1;;::::0;::::1;::::0;:87:::1;;-1:-1:-1::0;14460:10:0::1;:23:::0;::::1;::::0;;;::::1;::::0;::::1;14449:34:::0;;::::1;;;14396:87;:150;;;;-1:-1:-1::0;14519:10:0::1;:27:::0;::::1;-1:-1:-1::0;;;14519:27:0;;::::1;::::0;::::1;14504:42:::0;;::::1;;;14396:150;14388:159;;;::::0;::::1;;14558:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;14594:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;14632:35:0::1;-1:-1:-1::0;;;14632:35:0;;;::::1;;::::0;;;::::1;::::0;;14289:386::o;12783:180::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12862:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;12854:64;;;::::0;-1:-1:-1;;;12854:64:0;;15793:2:1;12854:64:0::1;::::0;::::1;15775:21:1::0;15832:2;15812:18;;;15805:30;15871:34;15851:18;;;15844:62;-1:-1:-1;;;15922:18:1;;;15915:31;15963:19;;12854:64:0::1;15591:397:1::0;12854:64:0::1;-1:-1:-1::0;;;;;12929:18:0::1;12950:5;12929:18:::0;;;:9:::1;:18;::::0;;;;:26;;-1:-1:-1;;12929:26:0::1;::::0;;12783:180::o;13622:145::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;13710:15:::1;::::0;;;::::1;;;13709:16;13701:25;;;::::0;::::1;;13737:13;:22:::0;;-1:-1:-1;;;;;;13737:22:0::1;-1:-1:-1::0;;;;;13737:22:0;;;::::1;::::0;;;::::1;::::0;;13622:145::o;17073:269::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;17214:4:::1;17204:7;;:14;;;;:::i;:::-;17192:7;17181;17171;;:17;;;;:::i;:::-;17170:29;;;;:::i;:::-;:49;;17162:117;;;::::0;-1:-1:-1;;;17162:117:0;;16195:2:1;17162:117:0::1;::::0;::::1;16177:21:1::0;16234:2;16214:18;;;16207:30;16273:34;16253:18;;;16246:62;16344:25;16324:18;;;16317:53;16387:19;;17162:117:0::1;15993:419:1::0;17162:117:0::1;17327:7;17316;17306;;:17;;;;:::i;:::-;17305:29;;;;:::i;:::-;17290:12;:44:::0;-1:-1:-1;;17073:269:0:o;12482:179::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;12566:13:::1;::::0;:18;:33;::::1;;;;12598:1;12588:6;:11;;;;12566:33;:53;;;;-1:-1:-1::0;12604:15:0::1;::::0;;;::::1;;;12603:16;12566:53;12557:63;;;::::0;::::1;;12631:22;;:13;:22:::0;12482:179::o;9657:576::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9736:22:0;::::1;9728:96;;;;-1:-1:-1::0;;;9728:96:0::1;;;;;;;:::i;:::-;9855:4;::::0;-1:-1:-1;;;;;9843:16:0;;::::1;9855:4:::0;::::1;9843:16;;9835:90;;;;-1:-1:-1::0;;;9835:90:0::1;;;;;;;:::i;:::-;9961:5;9951:6:::0;;-1:-1:-1;;;;;9951:6:0;;::::1;9936:22:::0;;:14:::1;:22;::::0;;;;;;;:30;;-1:-1:-1;;9936:30:0;;::::1;::::0;;;9977:24;;::::1;::::0;;;;;:31;;;;::::1;9951:6:::0;9977:31;;::::1;::::0;;;10040:6;;;;::::1;10032:15:::0;;;;;;;;:19;10029:95:::1;;10078:6;::::0;;-1:-1:-1;;;;;10078:6:0::1;10096:15:::0;;;10078:6;10096:15:::1;::::0;;;;;;10068:44:::1;::::0;10078:6;10086:8;;10068:9:::1;:44::i;:::-;;10029:95;10144:6;:17:::0;;-1:-1:-1;;;;;;10144:17:0::1;-1:-1:-1::0;;;;;10144:17:0;::::1;::::0;;::::1;::::0;;10177:38:::1;::::0;10144:17;;;;10177:38:::1;::::0;10144:6;10177:38:::1;9657:576:::0;:::o;14152:129::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14240:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:33;;-1:-1:-1;;14240:33:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14152:129::o;21700:496::-;21779:7;;;:23;;-1:-1:-1;;;21779:23:0;;-1:-1:-1;;;;;370:32:1;;;21779:23:0;;;352:51:1;21756:7:0;;21806:1;;21779:7;;;;;:17;;325:18:1;21779:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;;:73;;;;-1:-1:-1;21824:7:0;;;:23;;-1:-1:-1;;;21824:23:0;;-1:-1:-1;;;;;370:32:1;;;21824:23:0;;;352:51:1;21850:2:0;;21824:7;;;:17;;325:18:1;21824:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;21779:73;21776:93;;;-1:-1:-1;;21862:5:0;;;21700:496::o;21776:93::-;21882:7;;;:23;;-1:-1:-1;;;21882:23:0;;-1:-1:-1;;;;;370:32:1;;;21882:23:0;;;352:51:1;21909:2:0;;21882:7;;;:17;;325:18:1;21882:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;:74;;;;-1:-1:-1;21928:7:0;;;:23;;-1:-1:-1;;;21928:23:0;;-1:-1:-1;;;;;370:32:1;;;21928:23:0;;;352:51:1;21954:2:0;;21928:7;;;:17;;325:18:1;21928:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:28;21882:74;21879:94;;;-1:-1:-1;;21966:5:0;;;21700:496::o;21879:94::-;21986:7;;;:23;;-1:-1:-1;;;21986:23:0;;-1:-1:-1;;;;;370:32:1;;;21986:23:0;;;352:51:1;22013:2:0;;21986:7;;;:17;;325:18:1;21986:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;:75;;;;-1:-1:-1;22032:7:0;;;:23;;-1:-1:-1;;;22032:23:0;;-1:-1:-1;;;;;370:32:1;;;22032:23:0;;;352:51:1;22058:3:0;;22032:7;;;:17;;325:18:1;22032:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;21986:75;21983:95;;;-1:-1:-1;;22071:5:0;;;21700:496::o;21983:95::-;22091:7;;;:23;;-1:-1:-1;;;22091:23:0;;-1:-1:-1;;;;;370:32:1;;;22091:23:0;;;352:51:1;22118:3:0;;22091:7;;;:17;;325:18:1;22091:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;22088:99;;-1:-1:-1;;22131:5:0;;;21700:496::o;22088:99::-;-1:-1:-1;22174:1:0;;21700:496;-1:-1:-1;21700:496:0:o;22088:99::-;21700:496;;;:::o;17625:108::-;17715:9;;17668:7;;17711:13;;17715:9;;17711:2;:13;:::i;:::-;17695:12;;:30;;;;:::i;10241:189::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;10331:5:::1;10321:6:::0;;-1:-1:-1;;;;;10321:6:0::1;10306:22:::0;;:14:::1;:22;::::0;;;;;:30;;-1:-1:-1;;10306:30:0::1;::::0;;10347:19;;-1:-1:-1;;;;;;10347:19:0::1;::::0;;10382:40;10331:5;;10382:40:::1;::::0;10331:5;;10382:40:::1;10241:189::o:0;21215:477::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;21343:6:::1;21334;:15;21326:57;;;::::0;-1:-1:-1;;;21326:57:0;;17238:2:1;21326:57:0::1;::::0;::::1;17220:21:1::0;17277:2;17257:18;;;17250:30;17316:31;17296:18;;;17289:59;17365:18;;21326:57:0::1;17036:353:1::0;21326:57:0::1;21394:5;:14:::0;;;21427:15;;::::1;21419:57;;;::::0;-1:-1:-1;;;21419:57:0;;17596:2:1;21419:57:0::1;::::0;::::1;17578:21:1::0;17635:2;17615:18;;;17608:30;17674:31;17654:18;;;17647:59;17723:18;;21419:57:0::1;17394:353:1::0;21419:57:0::1;21487:5;:14:::0;;;21520:15;;::::1;21512:57;;;::::0;-1:-1:-1;;;21512:57:0;;17954:2:1;21512:57:0::1;::::0;::::1;17936:21:1::0;17993:2;17973:18;;;17966:30;18032:31;18012:18;;;18005:59;18081:18;;21512:57:0::1;17752:353:1::0;21512:57:0::1;21580:5;:14:::0;;;21623:4:::1;21613:14:::0;::::1;;21605:54;;;::::0;-1:-1:-1;;;21605:54:0;;18312:2:1;21605:54:0::1;::::0;::::1;18294:21:1::0;18351:2;18331:18;;;18324:30;18390:29;18370:18;;;18363:57;18437:18;;21605:54:0::1;18110:351:1::0;21605:54:0::1;21670:5;:14:::0;-1:-1:-1;;;21215:477:0:o;15029:258::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;15157:15:::1;:36:::0;;-1:-1:-1;;;;;15157:36:0;;::::1;-1:-1:-1::0;;;;;;15157:36:0;;::::1;;::::0;;;15204:14:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;15249:11:::1;:30:::0;;;;;::::1;::::0;::::1;;::::0;;15029:258::o;15295:116::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;15373:19:::1;:30:::0;;-1:-1:-1;;15373:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15295:116::o;16643:422::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;-1:-1:-1;16734:5:0::1;16814:17;::::0;:22;16810:152:::1;;16903:6;16883:17;;16865:15;:35;;;;:::i;:::-;:44;16857:89;;;::::0;-1:-1:-1;;;16857:89:0;;18668:2:1;16857:89:0::1;::::0;::::1;18650:21:1::0;;;18687:18;;;18680:30;18746:34;18726:18;;;18719:62;18798:18;;16857:89:0::1;18466:356:1::0;16857:89:0::1;-1:-1:-1::0;;;;;16976:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;:20;;-1:-1:-1;;16976:20:0::1;16992:4;16976:20;::::0;;17031:15:::1;17011:17;:35:::0;16720:338:::1;16643:422:::0;;:::o;12301:173::-;12365:4;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;12414:9:::1;::::0;12382:62:::1;::::0;12399:4:::1;::::0;-1:-1:-1;;;;;12414:9:0::1;-1:-1:-1::0;;12382:8:0::1;:62::i;:::-;-1:-1:-1::0;12462:4:0::1;12301:173:::0;:::o;13898:246::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;13960:14:::1;::::0;::::1;::::0;::::1;;;13959:15;13951:52;;;::::0;-1:-1:-1;;;13951:52:0;;19029:2:1;13951:52:0::1;::::0;::::1;19011:21:1::0;19068:2;19048:18;;;19041:30;19107:26;19087:18;;;19080:54;19151:18;;13951:52:0::1;18827:348:1::0;13951:52:0::1;14022:15;::::0;;;::::1;;;14014:52;;;::::0;-1:-1:-1;;;14014:52:0;;19382:2:1;14014:52:0::1;::::0;::::1;19364:21:1::0;19421:2;19401:18;;;19394:30;19460:26;19440:18;;;19433:54;19504:18;;14014:52:0::1;19180:348:1::0;14014:52:0::1;14092:12;14077;:27:::0;14115:14:::1;:21:::0;;-1:-1:-1;;14115:21:0::1;;;::::0;;13898:246::o;15865:216::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15950:33:0;::::1;15977:4;15950:33;;15942:84;;;::::0;-1:-1:-1;;;15942:84:0;;19735:2:1;15942:84:0::1;::::0;::::1;19717:21:1::0;19774:2;19754:18;;;19747:30;19813:34;19793:18;;;19786:62;-1:-1:-1;;;19864:18:1;;;19857:36;19910:19;;15942:84:0::1;19533:402:1::0;15942:84:0::1;16037:7;:26:::0;;-1:-1:-1;;;;;;16037:26:0::1;-1:-1:-1::0;;;;;16037:26:0;;;::::1;::::0;;;::::1;::::0;;15865:216::o;13148:152::-;13228:4;13252:40;13262:10;13274:9;13285:6;13252:9;:40::i;25572:480::-;25727:8;:15;25708:8;:15;:34;:72;;;;;25765:8;:15;25746:8;:15;:34;25708:72;25700:106;;;;-1:-1:-1;;;25700:106:0;;14998:2:1;25700:106:0;;;14980:21:1;15037:2;15017:18;;;15010:30;-1:-1:-1;;;15056:18:1;;;15049:51;15117:18;;25700:106:0;14796:345:1;25700:106:0;25822:7;25817:228;25839:8;:15;25835:1;:19;;;25817:228;;;25933:8;25942:1;25933:11;;;;;;;;;;:::i;:::-;;;;;;;25918:8;25927:1;25918:11;;;;;;;;;;:::i;:::-;;;;;;;25908:7;;:21;;;;:::i;:::-;25907:37;;;;:::i;:::-;25892:10;25884:19;;;;:7;:19;;;;;;:60;;25876:69;;;;;;25960:73;25970:10;25982:8;25991:1;25982:11;;;;;;;;;;:::i;:::-;;;;;;;26021:8;26030:1;26021:11;;;;;;;;;;:::i;:::-;;;;;;;26006:8;26015:1;26006:11;;;;;;;;;;:::i;:::-;;;;;;;25996:7;;:21;;;;:::i;:::-;25995:37;;;;:::i;25960:73::-;-1:-1:-1;25856:3:0;;;;:::i;:::-;;;;25817:228;;;;25572:480;;;:::o;16089:546::-;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;16162:20:::1;16195:9;16162:43;;16216:16;16246:10;-1:-1:-1::0;;;;;16246:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16235:40:0::1;;16284:4;16291:10;-1:-1:-1::0;;;;;16291:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16235:75;::::0;-1:-1:-1;;;;;;16235:75:0::1;::::0;;;;;;-1:-1:-1;;;;;20426:15:1;;;16235:75:0::1;::::0;::::1;20408:34:1::0;20478:15;;20458:18;;;20451:43;20343:18;;16235:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16216:94:::0;-1:-1:-1;;;;;;16325:22:0;::::1;16321:201;;16384:10;-1:-1:-1::0;;;;;16384:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16373:43:0::1;;16425:4;16432:10;-1:-1:-1::0;;;;;16432:16:0::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16373:78;::::0;-1:-1:-1;;;;;;16373:78:0::1;::::0;;;;;;-1:-1:-1;;;;;20426:15:1;;;16373:78:0::1;::::0;::::1;20408:34:1::0;20478:15;;20458:18;;;20451:43;20343:18;;16373:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16364:6;:87:::0;;-1:-1:-1;;;;;;16364:87:0::1;-1:-1:-1::0;;;;;16364:87:0;;;::::1;::::0;;;::::1;::::0;;16321:201:::1;;;16493:6;:17:::0;;-1:-1:-1;;;;;;16493:17:0::1;-1:-1:-1::0;;;;;16493:17:0;::::1;;::::0;;16321:201:::1;16532:9;:22:::0;;-1:-1:-1;;;;;;16532:22:0::1;-1:-1:-1::0;;;;;16532:22:0;::::1;::::0;;::::1;::::0;;;16565:62:::1;::::0;16582:4:::1;::::0;-1:-1:-1;;16565:8:0::1;:62::i;15419:289::-:0;7924:6;;-1:-1:-1;;;;;7924:6:0;7934:10;7924:20;7916:65;;;;-1:-1:-1;;;7916:65:0;;;;;;;:::i;:::-;15619:16:::1;15599;15589:7;;:26;;;;:::i;:::-;15588:47;;;;:::i;:::-;15572:13;:63:::0;15660:7:::1;::::0;15687:13;;15660:23:::1;::::0;15670:13;;15660:23:::1;:::i;:::-;15659:41;;;;:::i;:::-;15646:10;:54:::0;-1:-1:-1;;;;15419:289:0:o;18231:1018::-;18310:4;-1:-1:-1;;;;;18335:18:0;;18327:68;;;;-1:-1:-1;;;18327:68:0;;20707:2:1;18327:68:0;;;20689:21:1;20746:2;20726:18;;;20719:30;20785:34;20765:18;;;20758:62;-1:-1:-1;;;20836:18:1;;;20829:35;20881:19;;18327:68:0;20505:401:1;18327:68:0;-1:-1:-1;;;;;18414:16:0;;18406:64;;;;-1:-1:-1;;;18406:64:0;;21113:2:1;18406:64:0;;;21095:21:1;21152:2;21132:18;;;21125:30;21191:34;21171:18;;;21164:62;-1:-1:-1;;;21242:18:1;;;21235:33;21285:19;;18406:64:0;20911:399:1;18406:64:0;18498:1;18489:6;:10;18481:64;;;;-1:-1:-1;;;18481:64:0;;21517:2:1;18481:64:0;;;21499:21:1;21556:2;21536:18;;;21529:30;21595:34;21575:18;;;21568:62;-1:-1:-1;;;21646:18:1;;;21639:39;21695:19;;18481:64:0;21315:405:1;18481:64:0;18559:20;18570:4;18576:2;18559:10;:20::i;:::-;18556:482;;;18600:14;;;;;;;18596:89;;18635:34;;-1:-1:-1;;;18635:34:0;;21927:2:1;18635:34:0;;;21909:21:1;21966:2;21946:18;;;21939:30;22005:26;21985:18;;;21978:54;22049:18;;18635:34:0;21725:348:1;18596:89:0;-1:-1:-1;;;;;18704:13:0;;;;;;:7;:13;;;;;;;;;:28;;-1:-1:-1;;;;;;18721:11:0;;;;;;:7;:11;;;;;;;;18704:28;18701:142;;;18770:12;;18760:6;:22;;18752:75;;;;-1:-1:-1;;;18752:75:0;;22280:2:1;18752:75:0;;;22262:21:1;22319:2;22299:18;;;22292:30;22358:34;22338:18;;;22331:62;-1:-1:-1;;;22409:18:1;;;22402:38;22457:19;;18752:75:0;22078:404:1;18752:75:0;18866:13;;-1:-1:-1;;;;;18860:19:0;;;18866:13;;18860:19;;;;:35;;-1:-1:-1;;;;;;18884:11:0;;;;;;:7;:11;;;;;;;;18883:12;18860:35;18857:170;;;18950:14;;18940:6;18924:13;18934:2;-1:-1:-1;;;;;11341:16:0;11323:7;11341:16;;;:7;:16;;;;;;;11257:103;18924:13;:22;;;;:::i;:::-;:40;;18916:95;;;;-1:-1:-1;;;18916:95:0;;22689:2:1;18916:95:0;;;22671:21:1;22728:2;22708:18;;;22701:30;22767:34;22747:18;;;22740:62;-1:-1:-1;;;22818:18:1;;;22811:40;22868:19;;18916:95:0;22487:406:1;18916:95:0;-1:-1:-1;;;;;19093:20:0;;19050:12;19093:20;;;:14;:20;;;;;;19065:4;;19093:20;;;:42;;-1:-1:-1;;;;;;19117:18:0;;;;;;:14;:18;;;;;;;;19093:42;19090:88;;;-1:-1:-1;19161:5:0;19090:88;19197:44;19215:4;19221:2;19225:6;19233:7;19197:17;:44::i;:::-;19190:51;18231:1018;-1:-1:-1;;;;;18231:1018:0:o;11952:341::-;-1:-1:-1;;;;;12046:20:0;;12038:69;;;;-1:-1:-1;;;12038:69:0;;23100:2:1;12038:69:0;;;23082:21:1;23139:2;23119:18;;;23112:30;23178:34;23158:18;;;23151:62;-1:-1:-1;;;23229:18:1;;;23222:34;23273:19;;12038:69:0;22898:400:1;12038:69:0;-1:-1:-1;;;;;12126:21:0;;12118:68;;;;-1:-1:-1;;;12118:68:0;;23505:2:1;12118:68:0;;;23487:21:1;23544:2;23524:18;;;23517:30;23583:34;23563:18;;;23556:62;-1:-1:-1;;;23634:18:1;;;23627:32;23676:19;;12118:68:0;23303:398:1;12118:68:0;-1:-1:-1;;;;;12199:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;12252:33;;3453:25:1;;;12252:33:0;;3426:18:1;12252:33:0;;;;;;;11952:341;;;:::o;17863:360::-;17931:4;9635:6;;-1:-1:-1;;;;;17955:15:0;;;9635:6;;17955:15;;;;:45;;-1:-1:-1;9608:7:0;9635:6;-1:-1:-1;;;;;17987:13:0;;;9635:6;;17987:13;;17955:45;:82;;;;-1:-1:-1;9608:7:0;9635:6;-1:-1:-1;;;;;9635:6:0;18017:9;:20;;17955:82;:121;;;;-1:-1:-1;;;;;;18055:21:0;;;;;;:17;:21;;;;;;;;18054:22;17955:121;:162;;;;-1:-1:-1;;;;;;18094:23:0;;;;;;:17;:23;;;;;;;;18093:24;17955:162;:189;;;;-1:-1:-1;18140:4:0;;-1:-1:-1;;;;;18134:10:0;;;18140:4;;18134:10;;17955:189;:222;;;;-1:-1:-1;;;;;;18161:16:0;;;;17955:222;:260;;;;-1:-1:-1;;;;;;;;18194:21:0;18210:4;18194:21;;;17863:360::o;19257:1723::-;19379:16;;19358:4;;19379:16;;;;;19375:817;;;-1:-1:-1;;;;;12749:18:0;;12725:4;12749:18;;;:9;:18;;;;;;;;19415:30;;;-1:-1:-1;;;;;;12749:18:0;;12725:4;12749:18;;;:9;:18;;;;;;;;19433:12;19411:97;;;19466:26;;-1:-1:-1;;;19466:26:0;;23908:2:1;19466:26:0;;;23890:21:1;23947:2;23927:18;;;23920:30;-1:-1:-1;;;23966:18:1;;;23959:46;24022:18;;19466:26:0;23706:340:1;19411:97:0;19529:15;;;;;;;19524:657;;19565:28;19584:4;19590:2;19565:18;:28::i;:::-;19617:15;;;;;;;19616:16;:40;;;;;19636:20;19647:4;19653:2;19636:10;:20::i;:::-;19612:136;;;19681:47;;-1:-1:-1;;;19681:47:0;;24253:2:1;19681:47:0;;;24235:21:1;24292:2;24272:18;;;24265:30;24331:34;24311:18;;;24304:62;-1:-1:-1;;;24382:18:1;;;24375:35;24427:19;;19681:47:0;24051:401:1;19612:136:0;19524:657;;;19807:1;19792:12;;:16;:55;;;;-1:-1:-1;;;;;;19834:13:0;;;;;;:7;:13;;;;;;;;19792:55;:101;;;;;19873:20;19884:4;19890:2;19873:10;:20::i;:::-;19788:378;;;19970:13;;19955:12;;19940:27;;:12;:27;:::i;:::-;:43;19936:211;;;-1:-1:-1;;;;;20012:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;20012:20:0;20028:4;20012:20;;;20059:13;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;20107:16:0;;-1:-1:-1;;;;;370:32:1;;352:51;;20107:16:0;;340:2:1;325:18;20107:16:0;;;;;;;19936:211;-1:-1:-1;;;;;20216:13:0;;;;;;:7;:13;;;;;:23;;20233:6;;20216:13;:23;;20233:6;;20216:23;:::i;:::-;;;;-1:-1:-1;;20264:6:0;;;;20260:78;;;20294:32;20309:4;20315:2;20319:6;20294:14;:32::i;:::-;20287:39;;;;20260:78;20397:4;20350:28;20381:22;;;:7;:22;;;;;;20441:10;;20417:34;;20414:85;;-1:-1:-1;20489:10:0;;20414:85;20517:6;;;;20516:7;:38;;;;-1:-1:-1;;;;;;20541:13:0;;;;;;:7;:13;;;;;;;;20540:14;20516:38;:74;;;;-1:-1:-1;20571:19:0;;;;20516:74;:128;;;;;20631:13;;20607:20;:37;;20516:128;20512:205;;;20671:34;20684:20;20671:12;:34::i;:::-;20754:6;20773:84;;;;20818:27;20828:4;20834:2;20838:6;20818:9;:27::i;:::-;20801:44;;20773:84;-1:-1:-1;;;;;20869:11:0;;;;;;:7;:11;;;;;:29;;20884:14;;20869:11;:29;;20884:14;;20869:29;:::i;:::-;;;;;;;;20931:2;-1:-1:-1;;;;;20916:34:0;20925:4;-1:-1:-1;;;;;20916:34:0;-1:-1:-1;;;;;;;;;;;20935:14:0;20916:34;;;;3453:25:1;;3441:2;3426:18;;3307:177;20916:34:0;;;;;;;;20968:4;20961:11;;;;19257:1723;;;;;;;:::o;24730:455::-;24812:15;;;;;;;24811:16;24803:64;;;;-1:-1:-1;;;24803:64:0;;24799:2:1;24803:64:0;;;24781:21:1;24838:2;24818:18;;;24811:30;24877:34;24857:18;;;24850:62;-1:-1:-1;;;24928:18:1;;;24921:33;24971:19;;24803:64:0;24597:399:1;24803:64:0;24883:20;24894:4;24900:2;24883:10;:20::i;:::-;24882:21;:37;;;;-1:-1:-1;24913:6:0;;-1:-1:-1;;;;;24907:12:0;;;24913:6;;24907:12;24882:37;24878:300;;;24965:12;24950;:27;-1:-1:-1;;;;;24992:23:0;;;;;;:17;:23;;;;;;;;;:30;;-1:-1:-1;;24992:30:0;;;25018:4;24992:30;;;;;;25037:15;:22;;-1:-1:-1;;25037:22:0;;;;;25088:19;:26;;;;;;;;;25134:32;;154:41:1;;;25134:32:0;;127:18:1;25134:32:0;;;;;;;24730:455;;:::o;20988:219::-;-1:-1:-1;;;;;21098:18:0;;21081:4;21098:18;;;:7;:18;;;;;:28;;21120:6;;21098:18;21081:4;;21098:28;;21120:6;;21098:28;:::i;:::-;;;;;;;;21159:9;-1:-1:-1;;;;;21142:35:0;21151:6;-1:-1:-1;;;;;21142:35:0;-1:-1:-1;;;;;;;;;;;21170:6:0;21142:35;;;;3453:25:1;;3441:2;3426:18;;3307:177;21142:35:0;;;;;;;;-1:-1:-1;21195:4:0;20988:219;;;;;:::o;22888:1826::-;7818:6;:13;;-1:-1:-1;;7818:13:0;7827:4;7818:13;;;22968:7:::1;:13:::0;::::1;-1:-1:-1::0;;;22968:13:0;;::::1;;22964:57;;23003:7;;22964:57;23064:4;23044:26;::::0;;;:11:::1;:26;::::0;;;;;;;23079:9:::1;::::0;-1:-1:-1;;;;;23079:9:0::1;23044:46:::0;;;;;;;;-1:-1:-1;;23044:67:0::1;23041:165;;23148:4;23128:26;::::0;;;:11:::1;:26;::::0;;;;;;;23163:9:::1;::::0;-1:-1:-1;;;;;23163:9:0::1;23128:46:::0;;;;;;;-1:-1:-1;;23128:66:0;;23041:165:::1;23286:7;:13:::0;23218:23:::1;::::0;23304:1:::1;::::0;23286:13:::1;-1:-1:-1::0;;;23286:13:0;::::1;::::0;::::1;::::0;23246:35:::1;::::0;23264:17;;;::::1;;23246:15:::0;:35:::1;:::i;:::-;23245:55;;;;:::i;:::-;23244:61;;;;:::i;:::-;23385:7;:13:::0;23218:87;;-1:-1:-1;23316:27:0::1;::::0;23385:13:::1;-1:-1:-1::0;;;23385:13:0;::::1;::::0;::::1;::::0;23347:33:::1;::::0;23365:15:::1;23347::::0;:33:::1;:::i;:::-;23346:53;;;;:::i;:::-;23316:83:::0;-1:-1:-1;23415:23:0;;23412:117:::1;;23484:11;::::0;23460:57:::1;::::0;3453:25:1;;;-1:-1:-1;;;;;23484:11:0;;::::1;::::0;23477:4:::1;::::0;-1:-1:-1;;;;;;;;;;;23460:57:0;3441:2:1;3426:18;23460:57:0::1;;;;;;;23412:117;23565:16;::::0;;23579:1:::1;23565:16:::0;;;;;::::1;::::0;;23541:21:::1;::::0;23565:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;23565:16:0::1;23541:40;;23610:4;23592;23597:1;23592:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23592:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;23636:5:::1;::::0;23626:7;;23636:5;::::1;::::0;23626:4;;23636:5;;23626:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;23626:15:0;;::::1;:7;::::0;;::::1;::::0;;;;;:15;23654:9:::1;::::0;::::1;:61;23766:19:::0;23730:33:::1;23748:15:::0;23730;:33:::1;:::i;:::-;:55;;;;:::i;:::-;23800:1;23816:4;23843;23863:15;23654:235;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;24022:7:0::1;:13:::0;23923:21:::1;::::0;-1:-1:-1;23902:18:0::1;::::0;-1:-1:-1;24040:1:0::1;::::0;24022:13:::1;-1:-1:-1::0;;;24022:13:0;::::1;::::0;::::1;::::0;23987:30:::1;::::0;24000:17;;;::::1;;23923:21:::0;23987:30:::1;:::i;:::-;23986:50;;;;:::i;:::-;23985:56;;;;:::i;:::-;23955:86:::0;-1:-1:-1;24080:19:0;;24076:353:::1;;24116:9;::::0;24295:4:::1;::::0;24116:232:::1;::::0;-1:-1:-1;;;24116:232:0;;24197:4:::1;24116:232;::::0;::::1;26327:34:1::0;26377:18;;;26370:34;;;24116:9:0::1;26420:18:1::0;;;26413:34;;;26463:18;;;26456:34;-1:-1:-1;;;;;24295:4:0;;::::1;26506:19:1::0;;;26499:44;24318:15:0::1;26559:19:1::0;;;26552:35;24116:9:0;::::1;::::0;:26:::1;::::0;24150:19;;26261::1;;24116:232:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;24368:49:0::1;::::0;;27083:25:1;;;27139:2;27124:18;;27117:34;;;24368:49:0::1;::::0;-1:-1:-1;27056:18:1;24368:49:0::1;;;;;;;24076:353;24446:21;:25:::0;24443:264:::1;;24536:14;::::0;24614:7:::1;:17:::0;24500:21:::1;::::0;-1:-1:-1;;;;;;24536:14:0;;::::1;::::0;:97:::1;::::0;24595:36:::1;::::0;24614:17:::1;-1:-1:-1::0;;;24614:17:0;::::1;::::0;::::1;::::0;-1:-1:-1;;;24595:16:0;::::1;;:36;:::i;:::-;24574:7;:16:::0;24560:72:::1;::::0;;::::1;::::0;24561:29:::1;::::0;-1:-1:-1;;;24574:16:0;::::1;;24561:10:::0;:29:::1;:::i;:::-;24560:72;;;;:::i;:::-;24536:97;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;24648:15:0::1;::::0;:47:::1;::::0;-1:-1:-1;;;;;24648:15:0;;::::1;::::0;24673:21:::1;24648:47:::0;::::1;;;::::0;:15:::1;:47:::0;:15;:47;24673:21;24648:15;:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24443:264;22953:1761;;;;;7842:1;-1:-1:-1::0;7854:6:0;:14;;-1:-1:-1;;7854:14:0;;;22888:1826::o;22204:676::-;22344:6;;22283:7;;;;-1:-1:-1;;;;;22336:14:0;;;22344:6;;22336:14;22332:244;;;-1:-1:-1;22380:9:0;:16;;;22332:244;;;22424:6;;-1:-1:-1;;;;;22418:12:0;;;22424:6;;22418:12;22414:162;;;22480:17;22492:4;22480:11;:17::i;:::-;22460:9;:17;:37;;;:17;;;;;:37;:::i;:::-;22447:50;;22414:162;;;-1:-1:-1;22543:9:0;:21;-1:-1:-1;;;22543:21:0;;;;22414:162;22592:15;22588:61;;22631:6;22624:13;;;;;22588:61;22703:10;:27;22661:17;;-1:-1:-1;;;22703:27:0;;;;22681:19;22690:10;22681:6;:19;:::i;:::-;:49;;;;:::i;:::-;22759:4;22743:22;;;;:7;:22;;;;;:35;;22661:69;;-1:-1:-1;22661:69:0;;22743:22;;;:35;;22661:69;;22743:35;:::i;:::-;;;;-1:-1:-1;;22794:40:0;;3453:25:1;;;22817:4:0;;-1:-1:-1;;;;;22794:40:0;;;-1:-1:-1;;;;;;;;;;;22794:40:0;3441:2:1;3426:18;22794:40:0;;;;;;;22854:18;22863:9;22854:6;:18;:::i;:::-;22847:25;22204:676;-1:-1:-1;;;;;;22204:676:0:o;414:160:1:-;479:20;;535:13;;528:21;518:32;;508:60;;564:1;561;554:12;579:248;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;741:26;757:9;741:26;:::i;:::-;731:36;;786:35;817:2;806:9;802:18;786:35;:::i;:::-;776:45;;579:248;;;;;:::o;1202:597::-;1314:4;1343:2;1372;1361:9;1354:21;1404:6;1398:13;1447:6;1442:2;1431:9;1427:18;1420:34;1472:1;1482:140;1496:6;1493:1;1490:13;1482:140;;;1591:14;;;1587:23;;1581:30;1557:17;;;1576:2;1553:26;1546:66;1511:10;;1482:140;;;1640:6;1637:1;1634:13;1631:91;;;1710:1;1705:2;1696:6;1685:9;1681:22;1677:31;1670:42;1631:91;-1:-1:-1;1783:2:1;1762:15;-1:-1:-1;;1758:29:1;1743:45;;;;1790:2;1739:54;;1202:597;-1:-1:-1;;;1202:597:1:o;1804:159::-;1871:20;;1931:6;1920:18;;1910:29;;1900:57;;1953:1;1950;1943:12;1968:401;2050:6;2058;2066;2074;2127:3;2115:9;2106:7;2102:23;2098:33;2095:53;;;2144:1;2141;2134:12;2095:53;2167:28;2185:9;2167:28;:::i;:::-;2157:38;;2214:37;2247:2;2236:9;2232:18;2214:37;:::i;:::-;2204:47;;2270:37;2303:2;2292:9;2288:18;2270:37;:::i;:::-;2260:47;;2326:37;2359:2;2348:9;2344:18;2326:37;:::i;:::-;2316:47;;1968:401;;;;;;;:::o;2599:131::-;-1:-1:-1;;;;;2674:31:1;;2664:42;;2654:70;;2720:1;2717;2710:12;2654:70;2599:131;:::o;2735:315::-;2803:6;2811;2864:2;2852:9;2843:7;2839:23;2835:32;2832:52;;;2880:1;2877;2870:12;2832:52;2919:9;2906:23;2938:31;2963:5;2938:31;:::i;:::-;2988:5;3040:2;3025:18;;;;3012:32;;-1:-1:-1;;;2735:315:1:o;3055:247::-;3114:6;3167:2;3155:9;3146:7;3142:23;3138:32;3135:52;;;3183:1;3180;3173:12;3135:52;3222:9;3209:23;3241:31;3266:5;3241:31;:::i;3938:456::-;4015:6;4023;4031;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;4139:9;4126:23;4158:31;4183:5;4158:31;:::i;:::-;4208:5;-1:-1:-1;4265:2:1;4250:18;;4237:32;4278:33;4237:32;4278:33;:::i;:::-;3938:456;;4330:7;;-1:-1:-1;;;4384:2:1;4369:18;;;;4356:32;;3938:456::o;4399:248::-;4467:6;4475;4528:2;4516:9;4507:7;4503:23;4499:32;4496:52;;;4544:1;4541;4534:12;4496:52;-1:-1:-1;;4567:23:1;;;4637:2;4622:18;;;4609:32;;-1:-1:-1;4399:248:1:o;4652:127::-;4713:10;4708:3;4704:20;4701:1;4694:31;4744:4;4741:1;4734:15;4768:4;4765:1;4758:15;4784:275;4855:2;4849:9;4920:2;4901:13;;-1:-1:-1;;4897:27:1;4885:40;;4955:18;4940:34;;4976:22;;;4937:62;4934:88;;;5002:18;;:::i;:::-;5038:2;5031:22;4784:275;;-1:-1:-1;4784:275:1:o;5064:183::-;5124:4;5157:18;5149:6;5146:30;5143:56;;;5179:18;;:::i;:::-;-1:-1:-1;5224:1:1;5220:14;5236:4;5216:25;;5064:183::o;5252:737::-;5306:5;5359:3;5352:4;5344:6;5340:17;5336:27;5326:55;;5377:1;5374;5367:12;5326:55;5413:6;5400:20;5439:4;5463:60;5479:43;5519:2;5479:43;:::i;:::-;5463:60;:::i;:::-;5557:15;;;5643:1;5639:10;;;;5627:23;;5623:32;;;5588:12;;;;5667:15;;;5664:35;;;5695:1;5692;5685:12;5664:35;5731:2;5723:6;5719:15;5743:217;5759:6;5754:3;5751:15;5743:217;;;5839:3;5826:17;5856:31;5881:5;5856:31;:::i;:::-;5900:18;;5938:12;;;;5776;;5743:217;;;-1:-1:-1;5978:5:1;5252:737;-1:-1:-1;;;;;;5252:737:1:o;5994:662::-;6048:5;6101:3;6094:4;6086:6;6082:17;6078:27;6068:55;;6119:1;6116;6109:12;6068:55;6155:6;6142:20;6181:4;6205:60;6221:43;6261:2;6221:43;:::i;6205:60::-;6299:15;;;6385:1;6381:10;;;;6369:23;;6365:32;;;6330:12;;;;6409:15;;;6406:35;;;6437:1;6434;6427:12;6406:35;6473:2;6465:6;6461:15;6485:142;6501:6;6496:3;6493:15;6485:142;;;6567:17;;6555:30;;6605:12;;;;6518;;6485:142;;6661:595;6779:6;6787;6840:2;6828:9;6819:7;6815:23;6811:32;6808:52;;;6856:1;6853;6846:12;6808:52;6896:9;6883:23;6925:18;6966:2;6958:6;6955:14;6952:34;;;6982:1;6979;6972:12;6952:34;7005:61;7058:7;7049:6;7038:9;7034:22;7005:61;:::i;:::-;6995:71;;7119:2;7108:9;7104:18;7091:32;7075:48;;7148:2;7138:8;7135:16;7132:36;;;7164:1;7161;7154:12;7132:36;;7187:63;7242:7;7231:8;7220:9;7216:24;7187:63;:::i;:::-;7177:73;;;6661:595;;;;;:::o;7450:328::-;7524:6;7532;7540;7593:2;7581:9;7572:7;7568:23;7564:32;7561:52;;;7609:1;7606;7599:12;7561:52;7632:28;7650:9;7632:28;:::i;:::-;7622:38;;7679:37;7712:2;7701:9;7697:18;7679:37;:::i;:::-;7669:47;;7735:37;7768:2;7757:9;7753:18;7735:37;:::i;:::-;7725:47;;7450:328;;;;;:::o;7783:269::-;7840:6;7893:2;7881:9;7872:7;7868:23;7864:32;7861:52;;;7909:1;7906;7899:12;7861:52;7948:9;7935:23;7998:4;7991:5;7987:16;7980:5;7977:27;7967:55;;8018:1;8015;8008:12;8057:315;8122:6;8130;8183:2;8171:9;8162:7;8158:23;8154:32;8151:52;;;8199:1;8196;8189:12;8151:52;8238:9;8225:23;8257:31;8282:5;8257:31;:::i;8377:385::-;8463:6;8471;8479;8487;8540:3;8528:9;8519:7;8515:23;8511:33;8508:53;;;8557:1;8554;8547:12;8508:53;-1:-1:-1;;8580:23:1;;;8650:2;8635:18;;8622:32;;-1:-1:-1;8701:2:1;8686:18;;8673:32;;8752:2;8737:18;8724:32;;-1:-1:-1;8377:385:1;-1:-1:-1;8377:385:1:o;8767:553::-;8868:6;8876;8884;8937:2;8925:9;8916:7;8912:23;8908:32;8905:52;;;8953:1;8950;8943:12;8905:52;8992:9;8979:23;9011:31;9036:5;9011:31;:::i;:::-;9061:5;-1:-1:-1;9118:2:1;9103:18;;9090:32;9131:33;9090:32;9131:33;:::i;:::-;9183:7;-1:-1:-1;9242:2:1;9227:18;;9214:32;9255:33;9214:32;9255:33;:::i;:::-;9307:7;9297:17;;;8767:553;;;;;:::o;9549:180::-;9605:6;9658:2;9646:9;9637:7;9633:23;9629:32;9626:52;;;9674:1;9671;9664:12;9626:52;9697:26;9713:9;9697:26;:::i;10528:388::-;10596:6;10604;10657:2;10645:9;10636:7;10632:23;10628:32;10625:52;;;10673:1;10670;10663:12;10625:52;10712:9;10699:23;10731:31;10756:5;10731:31;:::i;:::-;10781:5;-1:-1:-1;10838:2:1;10823:18;;10810:32;10851:33;10810:32;10851:33;:::i;:::-;10903:7;10893:17;;;10528:388;;;;;:::o;10921:821::-;11073:6;11081;11089;11142:2;11130:9;11121:7;11117:23;11113:32;11110:52;;;11158:1;11155;11148:12;11110:52;11198:9;11185:23;11227:18;11268:2;11260:6;11257:14;11254:34;;;11284:1;11281;11274:12;11254:34;11307:61;11360:7;11351:6;11340:9;11336:22;11307:61;:::i;:::-;11297:71;;11421:2;11410:9;11406:18;11393:32;11377:48;;11450:2;11440:8;11437:16;11434:36;;;11466:1;11463;11456:12;11434:36;11489:63;11544:7;11533:8;11522:9;11518:24;11489:63;:::i;:::-;11479:73;;11605:2;11594:9;11590:18;11577:32;11561:48;;11634:2;11624:8;11621:16;11618:36;;;11650:1;11647;11640:12;11618:36;;11673:63;11728:7;11717:8;11706:9;11702:24;11673:63;:::i;:::-;11663:73;;;10921:821;;;;;:::o;11747:356::-;11949:2;11931:21;;;11968:18;;;11961:30;12027:34;12022:2;12007:18;;12000:62;12094:2;12079:18;;11747:356::o;12108:127::-;12169:10;12164:3;12160:20;12157:1;12150:31;12200:4;12197:1;12190:15;12224:4;12221:1;12214:15;12240:224;12279:3;12307:6;12340:2;12337:1;12333:10;12370:2;12367:1;12363:10;12401:3;12397:2;12393:12;12388:3;12385:21;12382:47;;;12409:18;;:::i;:::-;12445:13;;12240:224;-1:-1:-1;;;;12240:224:1:o;12469:422::-;12558:1;12601:5;12558:1;12615:270;12636:7;12626:8;12623:21;12615:270;;;12695:4;12691:1;12687:6;12683:17;12677:4;12674:27;12671:53;;;12704:18;;:::i;:::-;12754:7;12744:8;12740:22;12737:55;;;12774:16;;;;12737:55;12853:22;;;;12813:15;;;;12615:270;;;12619:3;12469:422;;;;;:::o;12896:806::-;12945:5;12975:8;12965:80;;-1:-1:-1;13016:1:1;13030:5;;12965:80;13064:4;13054:76;;-1:-1:-1;13101:1:1;13115:5;;13054:76;13146:4;13164:1;13159:59;;;;13232:1;13227:130;;;;13139:218;;13159:59;13189:1;13180:10;;13203:5;;;13227:130;13264:3;13254:8;13251:17;13248:43;;;13271:18;;:::i;:::-;-1:-1:-1;;13327:1:1;13313:16;;13342:5;;13139:218;;13441:2;13431:8;13428:16;13422:3;13416:4;13413:13;13409:36;13403:2;13393:8;13390:16;13385:2;13379:4;13376:12;13372:35;13369:77;13366:159;;;-1:-1:-1;13478:19:1;;;13510:5;;13366:159;13557:34;13582:8;13576:4;13557:34;:::i;:::-;13627:6;13623:1;13619:6;13615:19;13606:7;13603:32;13600:58;;;13638:18;;:::i;:::-;13676:20;;12896:806;-1:-1:-1;;;12896:806:1:o;13707:140::-;13765:5;13794:47;13835:4;13825:8;13821:19;13815:4;13794:47;:::i;13852:217::-;13892:1;13918;13908:132;;13962:10;13957:3;13953:20;13950:1;13943:31;13997:4;13994:1;13987:15;14025:4;14022:1;14015:15;13908:132;-1:-1:-1;14054:9:1;;13852:217::o;14074:125::-;14114:4;14142:1;14139;14136:8;14133:34;;;14147:18;;:::i;:::-;-1:-1:-1;14184:9:1;;14074:125::o;14204:168::-;14244:7;14310:1;14306;14302:6;14298:14;14295:1;14292:21;14287:1;14280:9;14273:17;14269:45;14266:71;;;14317:18;;:::i;:::-;-1:-1:-1;14357:9:1;;14204:168::o;15146:127::-;15207:10;15202:3;15198:20;15195:1;15188:31;15238:4;15235:1;15228:15;15262:4;15259:1;15252:15;15278:175;15315:3;15359:4;15352:5;15348:16;15388:4;15379:7;15376:17;15373:43;;;15396:18;;:::i;:::-;15445:1;15432:15;;15278:175;-1:-1:-1;;15278:175:1:o;15458:128::-;15498:3;15529:1;15525:6;15522:1;15519:13;15516:39;;;15535:18;;:::i;:::-;-1:-1:-1;15571:9:1;;15458:128::o;16417:425::-;16619:2;16601:21;;;16658:2;16638:18;;;16631:30;16697:34;16692:2;16677:18;;16670:62;16768:31;16763:2;16748:18;;16741:59;16832:3;16817:19;;16417:425::o;16847:184::-;16917:6;16970:2;16958:9;16949:7;16945:23;16941:32;16938:52;;;16986:1;16983;16976:12;16938:52;-1:-1:-1;17009:16:1;;16847:184;-1:-1:-1;16847:184:1:o;19940:251::-;20010:6;20063:2;20051:9;20042:7;20038:23;20034:32;20031:52;;;20079:1;20076;20069:12;20031:52;20111:9;20105:16;20130:31;20155:5;20130:31;:::i;24457:135::-;24496:3;-1:-1:-1;;24517:17:1;;24514:43;;;24537:18;;:::i;:::-;-1:-1:-1;24584:1:1;24573:13;;24457:135::o;25001:980::-;25263:4;25311:3;25300:9;25296:19;25342:6;25331:9;25324:25;25368:2;25406:6;25401:2;25390:9;25386:18;25379:34;25449:3;25444:2;25433:9;25429:18;25422:31;25473:6;25508;25502:13;25539:6;25531;25524:22;25577:3;25566:9;25562:19;25555:26;;25616:2;25608:6;25604:15;25590:29;;25637:1;25647:195;25661:6;25658:1;25655:13;25647:195;;;25726:13;;-1:-1:-1;;;;;25722:39:1;25710:52;;25817:15;;;;25782:12;;;;25758:1;25676:9;25647:195;;;-1:-1:-1;;;;;;;25898:32:1;;;;25893:2;25878:18;;25871:60;-1:-1:-1;;;25962:3:1;25947:19;25940:35;25859:3;25001:980;-1:-1:-1;;;25001:980:1:o;26598:306::-;26686:6;26694;26702;26755:2;26743:9;26734:7;26730:23;26726:32;26723:52;;;26771:1;26768;26761:12;26723:52;26800:9;26794:16;26784:26;;26850:2;26839:9;26835:18;26829:25;26819:35;;26894:2;26883:9;26879:18;26873:25;26863:35;;26598:306;;;;;:::o

Swarm Source

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