Contract 0xC337208Bb7ffB850A913aE26621cee5EF30Bf11d 9

 

Contract Overview

PooChain: POOP Token
Balance:
0 ETH

ETH Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x05adf973b3985b2e288e50971112c4af3e2f69db243a97d72dbc861c7663be53Approve1457428082023-10-31 13:48:32164 days 19 hrs ago0xd3dc3b4d4fb9b24a4c0f82d2dc2726efe2e07a7a IN  PooChain: POOP Token0 ETH0.00007348 0.1
0xa708ce2c742ef8fc6256e153f1f003c8be377d80a1d06d0193c7f2d99c41fbbfApprove1246403992023-08-24 23:08:06232 days 10 hrs ago0x60e4b2ddce57438d69e226550bc78ef737ce8fa4 IN  PooChain: POOP Token0 ETH0.00004648 0.1
0xf01d1beb2b8ab4758e0ee9667ce976c2616235708e7c0768f4c9c6fdf9648a8aTransfer922480212023-05-19 10:42:27329 days 22 hrs ago0xe1267f686ad2aa57fdaca379eb07101b1a2c46ac IN  PooChain: POOP Token0 ETH0.00007677 0.1
0x90267675d005419cf2744f03f863cadb5fefd191496ed75fcf8bade702833b5fApprove921825622023-05-19 6:06:53330 days 3 hrs ago0xd61cd5d5bb695c7c9d5d0d6dc6f586f6ece18989 IN  PooChain: POOP Token0 ETH0.000060350.1
0x2f5d97ac9e89cf7f4734f804337a4ca58a03a4c818efd3360bf8b930d47ad797Approve920658492023-05-18 21:16:35330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00008583 0.1
0x7c7deabfbb2472e09dc3cf3817edc276c3e52364edad1b495830babb904fb37bApprove920656282023-05-18 21:15:37330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00008552 0.1
0xf3643b2e92574ccb98cc6c0a392d2e2c8dbda14b9b18aff94d14f2ce9e76d53bApprove920619212023-05-18 20:58:50330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00009433 0.1
0x1d4be2aa7f72bd9233501a324948e62579de6081303c5df11665c62338530d7cApprove920613352023-05-18 20:56:08330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00009576 0.1
0x407bfd64124959b9ac334ba7c776cf760dea5052225660d42e2cdb5c1501aee0Approve920608252023-05-18 20:53:49330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00009576 0.1
0xd89402b15e46d4e1a3937d559bde4f75d700e75030508b9800db83127ea28df7Approve920607782023-05-18 20:53:37330 days 12 hrs ago0x63302a101d50a2f7cc73ea64fa04c112edf94817 IN  PooChain: POOP Token0 ETH0.00009775 0.1
0x986d8d06297d0f80dc2bc92e9330a68f7bde3b02aa123b1478568b94731fa8cbTransfer919408592023-05-18 12:15:16330 days 21 hrs ago0x92bf4750f5b414b84f627315efcb52dcf52389ef IN  PooChain: POOP Token0 ETH0.000081680.1
0x7654aa99188e6e2e65f7458782918852cd34efa9d2549611ed4530cba1fed9aeTransfer919404812023-05-18 12:13:41330 days 21 hrs ago0xcf7a6ae2fa56918f0ca58986b3ed79ac49caf0e9 IN  PooChain: POOP Token0 ETH0.000081680.1
0xa2901821b1388af9480eaa537084d15672138f3e40843634009ae2759a226de4Transfer919369332023-05-18 11:58:48330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007676 0.1
0x9cc380caec985d4e12c9fdf7b83e8f6d8e8703f7c0b256e4e97016c0974d9382Approve919351632023-05-18 11:51:26330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007239 0.1
0xb62af8dcdeab04fc1f8153200f6af7738d3647cccb61daa7f506376995c2ba37Approve919341512023-05-18 11:47:09330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.000072 0.1
0x35cc8af07eda05c5250229bad51a8016718cf5c488fc5675af4e2b82b16bb4c1Approve919340842023-05-18 11:46:52330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007239 0.1
0xbf8724477b8c74cfda1ea5e9b9411996471a06669669f0f82251080fa37876c9Approve919339472023-05-18 11:46:17330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007239 0.1
0xee156ac8029fe43e0668ea9f8e504ec74f4cb333857b293fec7c9c99a4dd8011Approve919338602023-05-18 11:45:55330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007239 0.1
0x5b020d7df53a6248f930b42c9d227234a65ef22485cef61e2660b34c892356fbApprove919336102023-05-18 11:44:53330 days 21 hrs ago0xc40a4bdbaa10995047f7e5a81d93183c300012fe IN  PooChain: POOP Token0 ETH0.00007074 0.1
0x892dea07c3d49aed100f1d236c65ef3b2f028b3b4d048730e0dc289a70545c3aApprove898174982023-05-12 4:06:40337 days 5 hrs ago0x46ef1f48351c0a8c0cc562e47f877b6ba2ca9761 IN  PooChain: POOP Token0 ETH0.0001212 0.1
0xed8aa42c3ca388bb415cd70625b19bb12f8e6ca9e2a46c3f23ade7559255341aApprove897312562023-05-11 22:05:21337 days 11 hrs ago0xd377cffcc52c16bf6e9840e77f78f42ddb946568 IN  PooChain: POOP Token0 ETH0.00012813 0.1
0x0bfac692dc7a371ad2648487802128c3aeb62135a117e128be81606ea411061eApprove897307502023-05-11 22:03:14337 days 11 hrs ago0xd377cffcc52c16bf6e9840e77f78f42ddb946568 IN  PooChain: POOP Token0 ETH0.00013084 0.1
0xc07781c5ee1508b39265c7b7b3dee513af68cb54a7bc9e5b54bc1ddf36a1cf49Approve897266862023-05-11 21:46:16337 days 11 hrs ago0x3e63848803178c4c570b9d77032135297035252c IN  PooChain: POOP Token0 ETH0.0001788 0.1
0x50d602f634bc7826bfa1b3a23cc4ad00318674614c86043052d976197a41ff76Approve897263732023-05-11 21:44:57337 days 11 hrs ago0x3e63848803178c4c570b9d77032135297035252c IN  PooChain: POOP Token0 ETH0.00017851 0.1
0xc98014582a99d034991fd67afc4c023e088b440328146247ebc814741944a5eeApprove897142042023-05-11 20:53:46337 days 12 hrs ago0x3e63848803178c4c570b9d77032135297035252c IN  PooChain: POOP Token0 ETH0.00016194 0.1
[ Download CSV Export 

OVERVIEW

PooChain is a community driven blockchain created on the BSC on May 31st, 2022. PooChain mainet went live in December 2022. Arbitrum is pairing since the blockchain was deployed.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x5e91cafd142b36b35af5491a677236123443fb1acdf494c8074c3eb257480888897349722023-05-11 22:20:48337 days 11 hrs ago PooChain: POOP Token0x13f32c1c3f13b6b6c8fe230c4f915eb9607e1e0c0.011888208075617596 ETH
0x5e91cafd142b36b35af5491a677236123443fb1acdf494c8074c3eb257480888897349722023-05-11 22:20:48337 days 11 hrs ago SushiSwap: Router PooChain: POOP Token0.004812405850914911 ETH
0x5e91cafd142b36b35af5491a677236123443fb1acdf494c8074c3eb257480888897349722023-05-11 22:20:48337 days 11 hrs ago PooChain: POOP Token SushiSwap: Router0.028303208898810741 ETH
0x5e91cafd142b36b35af5491a677236123443fb1acdf494c8074c3eb257480888897349722023-05-11 22:20:48337 days 11 hrs ago SushiSwap: Router PooChain: POOP Token0.035379011123513426 ETH
0xe4e6a2335bfa09e7c2b3fc70ed075a789a93475acb3bbd9edf75e64e143c2bbb795637012023-04-12 4:19:38367 days 5 hrs ago PooChain: POOP Token0x13f32c1c3f13b6b6c8fe230c4f915eb9607e1e0c0.013987573227030283 ETH
0xe4e6a2335bfa09e7c2b3fc70ed075a789a93475acb3bbd9edf75e64e143c2bbb795637012023-04-12 4:19:38367 days 5 hrs ago SushiSwap: Router PooChain: POOP Token0.005671694717294482 ETH
0xe4e6a2335bfa09e7c2b3fc70ed075a789a93475acb3bbd9edf75e64e143c2bbb795637012023-04-12 4:19:38367 days 5 hrs ago PooChain: POOP Token SushiSwap: Router0.033263514038943208 ETH
0xe4e6a2335bfa09e7c2b3fc70ed075a789a93475acb3bbd9edf75e64e143c2bbb795637012023-04-12 4:19:38367 days 5 hrs ago SushiSwap: Router PooChain: POOP Token0.041579392548679009 ETH
0xb5fee5a68504720355253d62b9f3631ec2babbf9c08dadf0742c96f004fd7c1c748521832023-03-29 8:52:28381 days 34 mins ago PooChain: POOP Token0x13f32c1c3f13b6b6c8fe230c4f915eb9607e1e0c0.033884534806875787 ETH
0xb5fee5a68504720355253d62b9f3631ec2babbf9c08dadf0742c96f004fd7c1c748521832023-03-29 8:52:28381 days 34 mins ago SushiSwap: Router PooChain: POOP Token0.014036085157125342 ETH
0xb5fee5a68504720355253d62b9f3631ec2babbf9c08dadf0742c96f004fd7c1c748521832023-03-29 8:52:28381 days 34 mins ago PooChain: POOP Token SushiSwap: Router0.079393798599001785 ETH
0xb5fee5a68504720355253d62b9f3631ec2babbf9c08dadf0742c96f004fd7c1c748521832023-03-29 8:52:28381 days 34 mins ago SushiSwap: Router PooChain: POOP Token0.09924224824875223 ETH
0xf2706380f534918d02e84b3b12547e211496b97ee3d4110bf84698181120bd2b718848272023-03-20 20:14:06389 days 13 hrs ago 0x6e25fabcacd6af4dced41c7af6adfdf9a45b1b23 PooChain: POOP Token0 ETH
0xf2706380f534918d02e84b3b12547e211496b97ee3d4110bf84698181120bd2b718848272023-03-20 20:14:06389 days 13 hrs ago SushiSwap: Router PooChain: POOP Token0 ETH
0xf2706380f534918d02e84b3b12547e211496b97ee3d4110bf84698181120bd2b718848272023-03-20 20:14:06389 days 13 hrs ago SushiSwap: Router PooChain: POOP Token0 ETH
0x6ec1d4789a60e27184e36002059e6ed3497e2fb7e88dab08b76ec4ee2529c0fb717458672023-03-20 10:41:09389 days 22 hrs ago 0xc064266c5e913ecc8a22c5c5924b41ded82b3fa7 PooChain: POOP Token0 ETH
0xfc058d84ef592913e2d6fe71f635d614e717b045fe26010214ee32a69b8a67eb717452732023-03-20 10:38:39389 days 22 hrs ago 0xc064266c5e913ecc8a22c5c5924b41ded82b3fa7 PooChain: POOP Token0 ETH
0x03401174a9a47d8e893e72dd1e1ef0c328ffa7ac331fb89c2d25abdde0034266717422122023-03-20 10:26:03389 days 23 hrs ago 0x6e25fabcacd6af4dced41c7af6adfdf9a45b1b23 PooChain: POOP Token0 ETH
0x03401174a9a47d8e893e72dd1e1ef0c328ffa7ac331fb89c2d25abdde0034266717422122023-03-20 10:26:03389 days 23 hrs ago 0x6e25fabcacd6af4dced41c7af6adfdf9a45b1b23 PooChain: POOP Token0 ETH
0x5869ba17a9a77a7fc83994aaa3a8faf8d2d67db24e0eecb4c259f0ee83525be4716443262023-03-20 3:36:43390 days 5 hrs ago 0x6e25fabcacd6af4dced41c7af6adfdf9a45b1b23 PooChain: POOP Token0 ETH
0x5869ba17a9a77a7fc83994aaa3a8faf8d2d67db24e0eecb4c259f0ee83525be4716443262023-03-20 3:36:43390 days 5 hrs ago SushiSwap: Router PooChain: POOP Token0 ETH
0x5869ba17a9a77a7fc83994aaa3a8faf8d2d67db24e0eecb4c259f0ee83525be4716443262023-03-20 3:36:43390 days 5 hrs ago SushiSwap: Router PooChain: POOP Token0 ETH
0x791b5a7ecf45305ffe48d406987023ae13715acbe016f434ad7a2ef5c66f827b716434342023-03-20 3:33:03390 days 5 hrs ago 0xc064266c5e913ecc8a22c5c5924b41ded82b3fa7 PooChain: POOP Token0 ETH
0x791b5a7ecf45305ffe48d406987023ae13715acbe016f434ad7a2ef5c66f827b716434342023-03-20 3:33:03390 days 5 hrs ago 0xc064266c5e913ecc8a22c5c5924b41ded82b3fa7 PooChain: POOP Token0 ETH
0x74eade4fc7d8e70d3c0179d13cedc24fa8700b41c065593a06e8c34cd8abc4b4711183962023-03-18 14:33:36391 days 18 hrs ago KyberSwap: Meta Aggregation Router v2 PooChain: POOP Token0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PooChain

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2023-03-12
*/

//  SPDX-License-Identifier: MIT
pragma solidity >=0.8.19;

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

    function transfer(address recipient, uint256 amount) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

library SafeMath {

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
} 

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

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

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

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

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

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

    function name() external pure returns (string memory);

    function symbol() external pure returns (string memory);

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

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

    function WETH() external pure returns (address);

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

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

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

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

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

contract PooChain is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    address public constant deadAddress = address(0xdead);

    bool private swapping;

    address public marketingWallet;
    address public devWallet;
    address public lpWallet;

    uint256 public maxTransactionAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

    uint256 public buyTotalFees;
    uint256 public buyMarketingFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;

    uint256 public sellTotalFees;
    uint256 public sellMarketingFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;

    /******************/

    // exlcude from fees and max transaction amount
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;

    // store addresses that a automatic market maker pairs. Any transfer *to* these addresses
    // could be subject to a maximum transfer amount
    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event LimitsRemoved();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event marketingWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event devWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event lpWalletUpdated(
        address indexed newWallet,
        address indexed oldWallet
    );

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    constructor() ERC20("PooChain", "POOP") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506
        );

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        uint256 _buyMarketingFee = 1;
        uint256 _buyLiquidityFee = 4;
        uint256 _buyDevFee = 0;

        uint256 _sellMarketingFee = 1;
        uint256 _sellLiquidityFee = 4;
        uint256 _sellDevFee = 0;

        uint256 totalSupply = 1000000000 * 1e18;

        maxTransactionAmount = (totalSupply * 2) / 100;
        maxWallet = (totalSupply * 2) / 100;
        swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet

        buyMarketingFee = _buyMarketingFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;

        sellMarketingFee = _sellMarketingFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;

        marketingWallet = address(0x13F32c1c3F13B6b6c8Fe230c4F915eB9607E1E0C); 
        devWallet = address(0x13F32c1c3F13B6b6c8Fe230c4F915eB9607E1E0C);
        lpWallet = msg.sender;

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(marketingWallet, true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(marketingWallet, true);

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    // once enabled, can never be turned off
    function enableTrading() external onlyOwner {
        tradingActive = true;
        swapEnabled = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        limitsInEffect = false;
        emit LimitsRemoved();
        return true;
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount)
        external
        onlyOwner
        returns (bool)
    {
        require(
            newAmount >= (totalSupply() * 1) / 100000,
            "Swap amount cannot be lower than 0.001% total supply."
        );
        require(
            newAmount <= (totalSupply() * 5) / 1000,
            "Swap amount cannot be higher than 0.5% total supply."
        );
        swapTokensAtAmount = newAmount;
        return true;
    }

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTransactionAmount lower than 0.1%"
        );
        maxTransactionAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    // only use to disable contract sales if absolutely necessary (emergency use only)
    function updateSwapEnabled(bool enabled) external onlyOwner {
        swapEnabled = enabled;
    }

    function updateBuyFees(
        uint256 _marketingFee,
        uint256 _liquidityFee,
        uint256 _devFee
    ) external onlyOwner {
        buyMarketingFee = _marketingFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _devFee;
        buyTotalFees = buyMarketingFee + buyLiquidityFee + buyDevFee;
        require(buyTotalFees <= 11, "Must keep fees at 11% or less");
    }

    function updateSellFees(
        uint256 _marketingFee,
        uint256 _liquidityFee,
        uint256 _devFee
    ) external onlyOwner {
        sellMarketingFee = _marketingFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _devFee;
        sellTotalFees = sellMarketingFee + sellLiquidityFee + sellDevFee;
        require(sellTotalFees <= 11, "Must keep fees at  11% or less");
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );

        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateMarketingWallet(address newMarketingWallet)
        external
        onlyOwner
    {
        emit marketingWalletUpdated(newMarketingWallet, marketingWallet);
        marketingWallet = newMarketingWallet;
    }

    function updateLPWallet(address newLPWallet)
        external
        onlyOwner
    {
        emit lpWalletUpdated(newLPWallet, lpWallet);
        lpWallet = newLPWallet;
    }

    function updateDevWallet(address newWallet) external onlyOwner {
        emit devWalletUpdated(newWallet, devWallet);
        devWallet = newWallet;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    event BoughtEarly(address indexed sniper);

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Buy transfer amount exceeds the maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "Sell transfer amount exceeds the maxTransactionAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (
            canSwap &&
            swapEnabled &&
            !swapping &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // if any account belongs to _isExcludedFromFee account then remove the fee
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if (takeFee) {
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForDev += (fees * sellDevFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForDev += (fees * buyDevFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
            }

            amount -= fees;
        }

        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity +
            tokensForMarketing +
            tokensForDev;
        bool success;

        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractBalance > swapTokensAtAmount * 20) {
            contractBalance = swapTokensAtAmount * 20;
        }

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) /
            totalTokensToSwap /
            2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div(
            totalTokensToSwap
        );
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);

        uint256 ethForLiquidity = ethBalance - ethForMarketing - ethForDev;

        tokensForLiquidity = 0;
        tokensForMarketing = 0;
        tokensForDev = 0;

        (success, ) = address(devWallet).call{value: ethForDev}("");

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
            emit SwapAndLiquify(
                amountToSwapForETH,
                ethForLiquidity,
                tokensForLiquidity
            );
        }

        (success, ) = address(marketingWallet).call{
            value: address(this).balance
        }("");
    }
}

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":true,"internalType":"address","name":"sniper","type":"address"}],"name":"BoughtEarly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsRemoved","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":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"lpWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","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":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLPWallet","type":"address"}],"name":"updateLPWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMarketingWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526001600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff0219169083151502179055506000600c60026101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600881526020017f506f6f436861696e0000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f504f4f50000000000000000000000000000000000000000000000000000000008152508160039081620000e0919062000e06565b508060049081620000f2919062000e06565b50505062000115620001096200064d60201b60201c565b6200065560201b60201c565b6000731b02da8cb0d097eb8d57a175b88c7d8b479975069050620001418160016200071b60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062000f57565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000f57565b6040518363ffffffff1660e01b81526004016200029492919062000f9a565b6020604051808303816000875af1158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000f57565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200032260a05160016200071b60201b60201c565b6200033760a05160016200080560201b60201c565b600060019050600060049050600080600190506000600490506000806b033b2e3c9fd0803ce80000009050606460028262000373919062000ff6565b6200037f919062001070565b600981905550606460028262000396919062000ff6565b620003a2919062001070565b600b81905550612710600582620003ba919062000ff6565b620003c6919062001070565b600a8190555086600e8190555085600f8190555084601081905550601054600f54600e54620003f69190620010a8565b620004029190620010a8565b600d81905550836012819055508260138190555081601481905550601454601354601254620004329190620010a8565b6200043e9190620010a8565b6011819055507313f32c1c3f13b6b6c8fe230c4f915eb9607e1e0c600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507313f32c1c3f13b6b6c8fe230c4f915eb9607e1e0c600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200055162000543620008a660201b60201c565b6001620008d060201b60201c565b62000564306001620008d060201b60201c565b6200057961dead6001620008d060201b60201c565b620005ae600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008d060201b60201c565b620005d0620005c2620008a660201b60201c565b60016200071b60201b60201c565b620005e33060016200071b60201b60201c565b620005f861dead60016200071b60201b60201c565b6200062d600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200071b60201b60201c565b6200063f338262000a0a60201b60201c565b505050505050505062001240565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200072b6200064d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000751620008a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007a19062001144565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008e06200064d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1662000906620008a660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200095f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009569062001144565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051620009fe919062001183565b60405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a7390620011f0565b60405180910390fd5b62000a906000838362000b8260201b60201c565b806002600082825462000aa49190620010a8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000afb9190620010a8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b62919062001223565b60405180910390a362000b7e6000838362000b8760201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c0e57607f821691505b60208210810362000c245762000c2362000bc6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c4f565b62000c9a868362000c4f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000ce762000ce162000cdb8462000cb2565b62000cbc565b62000cb2565b9050919050565b6000819050919050565b62000d038362000cc6565b62000d1b62000d128262000cee565b84845462000c5c565b825550505050565b600090565b62000d3262000d23565b62000d3f81848462000cf8565b505050565b5b8181101562000d675762000d5b60008262000d28565b60018101905062000d45565b5050565b601f82111562000db65762000d808162000c2a565b62000d8b8462000c3f565b8101602085101562000d9b578190505b62000db362000daa8562000c3f565b83018262000d44565b50505b505050565b600082821c905092915050565b600062000ddb6000198460080262000dbb565b1980831691505092915050565b600062000df6838362000dc8565b9150826002028217905092915050565b62000e118262000b8c565b67ffffffffffffffff81111562000e2d5762000e2c62000b97565b5b62000e39825462000bf5565b62000e4682828562000d6b565b600060209050601f83116001811462000e7e576000841562000e69578287015190505b62000e75858262000de8565b86555062000ee5565b601f19841662000e8e8662000c2a565b60005b8281101562000eb85784890151825560018201915060208501945060208101905062000e91565b8683101562000ed8578489015162000ed4601f89168262000dc8565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f1f8262000ef2565b9050919050565b62000f318162000f12565b811462000f3d57600080fd5b50565b60008151905062000f518162000f26565b92915050565b60006020828403121562000f705762000f6f62000eed565b5b600062000f808482850162000f40565b91505092915050565b62000f948162000f12565b82525050565b600060408201905062000fb1600083018562000f89565b62000fc0602083018462000f89565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010038262000cb2565b9150620010108362000cb2565b9250828202620010208162000cb2565b915082820484148315176200103a576200103962000fc7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200107d8262000cb2565b91506200108a8362000cb2565b9250826200109d576200109c62001041565b5b828204905092915050565b6000620010b58262000cb2565b9150620010c28362000cb2565b9250828201905080821115620010dd57620010dc62000fc7565b5b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200112c602083620010e3565b91506200113982620010f4565b602082019050919050565b600060208201905081810360008301526200115f816200111d565b9050919050565b60008115159050919050565b6200117d8162001166565b82525050565b60006020820190506200119a600083018462001172565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620011d8601f83620010e3565b9150620011e582620011a0565b602082019050919050565b600060208201905081810360008301526200120b81620011c9565b9050919050565b6200121d8162000cb2565b82525050565b60006020820190506200123a600083018462001212565b92915050565b60805160a051614ecf62001290600039600081816111e70152611902015260008181610daf015281816137e4015281816138c5015281816138ec0152818161398801526139af0152614ecf6000f3fe6080604052600436106103395760003560e01c80638da5cb5b116101ab578063bbc0c742116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610c35578063f637434214610c5e578063f8b45b0514610c89578063fbc10c5514610cb457610340565b8063dd62ed3e14610ba2578063e2f4560514610bdf578063f11a24d314610c0a57610340565b8063c18bc195116100d1578063c18bc19514610ae6578063c8c8ebe414610b0f578063d257b34f14610b3a578063d85ba06314610b7757610340565b8063bbc0c74214610a69578063c024666814610a94578063c17b5b8c14610abd57610340565b80639c3b4fdc11610164578063a457c2d71161013e578063a457c2d714610989578063a9059cbb146109c6578063aacebbe314610a03578063b62496f514610a2c57610340565b80639c3b4fdc146109085780639fccce3214610933578063a0d82dc51461095e57610340565b80638da5cb5b1461080a5780638ea5220f146108355780639213691314610860578063924de9b71461088b57806395d89b41146108b45780639a7a23d6146108df57610340565b806349bd5a5e11610285578063715018a61161022357806375f0a874116101fd57806375f0a874146107745780637bce5a041461079f5780638095d564146107ca5780638a8c523c146107f357610340565b8063715018a614610709578063751039fc146107205780637571336a1461074b57610340565b80636303516c1161025f5780636303516c1461064b5780636a486a8e146106765780636ddd1713146106a157806370a08231146106cc57610340565b806349bd5a5e146105b85780634a62bb65146105e35780634fbee1931461060e57610340565b80631a8145bb116102f257806323b872dd116102cc57806323b872dd146104e857806327c8f83514610525578063313ce56714610550578063395093511461057b57610340565b80631a8145bb146104695780631f3fed8f14610494578063203e727e146104bf57610340565b806306fdde0314610345578063095ea7b31461037057806310d5de53146103ad5780631694505e146103ea57806318160ddd146104155780631816467f1461044057610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610cdd565b6040516103679190613b0e565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613bc9565b610d6f565b6040516103a49190613c24565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190613c3f565b610d8d565b6040516103e19190613c24565b60405180910390f35b3480156103f657600080fd5b506103ff610dad565b60405161040c9190613ccb565b60405180910390f35b34801561042157600080fd5b5061042a610dd1565b6040516104379190613cf5565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190613c3f565b610ddb565b005b34801561047557600080fd5b5061047e610f17565b60405161048b9190613cf5565b60405180910390f35b3480156104a057600080fd5b506104a9610f1d565b6040516104b69190613cf5565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613d10565b610f23565b005b3480156104f457600080fd5b5061050f600480360381019061050a9190613d3d565b611032565b60405161051c9190613c24565b60405180910390f35b34801561053157600080fd5b5061053a61112a565b6040516105479190613d9f565b60405180910390f35b34801561055c57600080fd5b50610565611130565b6040516105729190613dd6565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613bc9565b611139565b6040516105af9190613c24565b60405180910390f35b3480156105c457600080fd5b506105cd6111e5565b6040516105da9190613d9f565b60405180910390f35b3480156105ef57600080fd5b506105f8611209565b6040516106059190613c24565b60405180910390f35b34801561061a57600080fd5b5061063560048036038101906106309190613c3f565b61121c565b6040516106429190613c24565b60405180910390f35b34801561065757600080fd5b50610660611272565b60405161066d9190613d9f565b60405180910390f35b34801561068257600080fd5b5061068b611298565b6040516106989190613cf5565b60405180910390f35b3480156106ad57600080fd5b506106b661129e565b6040516106c39190613c24565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190613c3f565b6112b1565b6040516107009190613cf5565b60405180910390f35b34801561071557600080fd5b5061071e6112f9565b005b34801561072c57600080fd5b50610735611381565b6040516107429190613c24565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613e1d565b61144d565b005b34801561078057600080fd5b50610789611524565b6040516107969190613d9f565b60405180910390f35b3480156107ab57600080fd5b506107b461154a565b6040516107c19190613cf5565b60405180910390f35b3480156107d657600080fd5b506107f160048036038101906107ec9190613e5d565b611550565b005b3480156107ff57600080fd5b5061080861164f565b005b34801561081657600080fd5b5061081f611703565b60405161082c9190613d9f565b60405180910390f35b34801561084157600080fd5b5061084a61172d565b6040516108579190613d9f565b60405180910390f35b34801561086c57600080fd5b50610875611753565b6040516108829190613cf5565b60405180910390f35b34801561089757600080fd5b506108b260048036038101906108ad9190613eb0565b611759565b005b3480156108c057600080fd5b506108c96117f2565b6040516108d69190613b0e565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613e1d565b611884565b005b34801561091457600080fd5b5061091d61199c565b60405161092a9190613cf5565b60405180910390f35b34801561093f57600080fd5b506109486119a2565b6040516109559190613cf5565b60405180910390f35b34801561096a57600080fd5b506109736119a8565b6040516109809190613cf5565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613bc9565b6119ae565b6040516109bd9190613c24565b60405180910390f35b3480156109d257600080fd5b506109ed60048036038101906109e89190613bc9565b611a99565b6040516109fa9190613c24565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613c3f565b611ab7565b005b348015610a3857600080fd5b50610a536004803603810190610a4e9190613c3f565b611bf3565b604051610a609190613c24565b60405180910390f35b348015610a7557600080fd5b50610a7e611c13565b604051610a8b9190613c24565b60405180910390f35b348015610aa057600080fd5b50610abb6004803603810190610ab69190613e1d565b611c26565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613e5d565b611d4b565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613d10565b611e4a565b005b348015610b1b57600080fd5b50610b24611f59565b604051610b319190613cf5565b60405180910390f35b348015610b4657600080fd5b50610b616004803603810190610b5c9190613d10565b611f5f565b604051610b6e9190613c24565b60405180910390f35b348015610b8357600080fd5b50610b8c6120b4565b604051610b999190613cf5565b60405180910390f35b348015610bae57600080fd5b50610bc96004803603810190610bc49190613edd565b6120ba565b604051610bd69190613cf5565b60405180910390f35b348015610beb57600080fd5b50610bf4612141565b604051610c019190613cf5565b60405180910390f35b348015610c1657600080fd5b50610c1f612147565b604051610c2c9190613cf5565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190613c3f565b61214d565b005b348015610c6a57600080fd5b50610c73612244565b604051610c809190613cf5565b60405180910390f35b348015610c9557600080fd5b50610c9e61224a565b604051610cab9190613cf5565b60405180910390f35b348015610cc057600080fd5b50610cdb6004803603810190610cd69190613c3f565b612250565b005b606060038054610cec90613f4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1890613f4c565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b5050505050905090565b6000610d83610d7c61238c565b8484612394565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610de361238c565b73ffffffffffffffffffffffffffffffffffffffff16610e01611703565b73ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90613fc9565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b60155481565b610f2b61238c565b73ffffffffffffffffffffffffffffffffffffffff16610f49611703565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613fc9565b60405180910390fd5b670de0b6b3a76400006103e86001610fb5610dd1565b610fbf9190614018565b610fc99190614089565b610fd39190614089565b811015611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c9061412c565b60405180910390fd5b670de0b6b3a7640000816110299190614018565b60098190555050565b600061103f84848461255d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108a61238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561110a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611101906141be565b60405180910390fd5b61111e8561111661238c565b858403612394565b60019150509392505050565b61dead81565b60006012905090565b60006111db61114661238c565b84846001600061115461238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d691906141de565b612394565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600c60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600c60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61130161238c565b73ffffffffffffffffffffffffffffffffffffffff1661131f611703565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613fc9565b60405180910390fd5b61137f600061302c565b565b600061138b61238c565b73ffffffffffffffffffffffffffffffffffffffff166113a9611703565b73ffffffffffffffffffffffffffffffffffffffff16146113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690613fc9565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055507f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef60405160405180910390a16001905090565b61145561238c565b73ffffffffffffffffffffffffffffffffffffffff16611473611703565b73ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613fc9565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61155861238c565b73ffffffffffffffffffffffffffffffffffffffff16611576611703565b73ffffffffffffffffffffffffffffffffffffffff16146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613fc9565b60405180910390fd5b82600e8190555081600f8190555080601081905550601054600f54600e546115f491906141de565b6115fe91906141de565b600d81905550600b600d54111561164a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116419061425e565b60405180910390fd5b505050565b61165761238c565b73ffffffffffffffffffffffffffffffffffffffff16611675611703565b73ffffffffffffffffffffffffffffffffffffffff16146116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c290613fc9565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b61176161238c565b73ffffffffffffffffffffffffffffffffffffffff1661177f611703565b73ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc90613fc9565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60606004805461180190613f4c565b80601f016020809104026020016040519081016040528092919081815260200182805461182d90613f4c565b801561187a5780601f1061184f5761010080835404028352916020019161187a565b820191906000526020600020905b81548152906001019060200180831161185d57829003601f168201915b5050505050905090565b61188c61238c565b73ffffffffffffffffffffffffffffffffffffffff166118aa611703565b73ffffffffffffffffffffffffffffffffffffffff1614611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613fc9565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361198e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611985906142f0565b60405180910390fd5b61199882826130f2565b5050565b60105481565b60175481565b60145481565b600080600160006119bd61238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190614382565b60405180910390fd5b611a8e611a8561238c565b85858403612394565b600191505092915050565b6000611aad611aa661238c565b848461255d565b6001905092915050565b611abf61238c565b73ffffffffffffffffffffffffffffffffffffffff16611add611703565b73ffffffffffffffffffffffffffffffffffffffff1614611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a90613fc9565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a6020528060005260406000206000915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b611c2e61238c565b73ffffffffffffffffffffffffffffffffffffffff16611c4c611703565b73ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9990613fc9565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d3f9190613c24565b60405180910390a25050565b611d5361238c565b73ffffffffffffffffffffffffffffffffffffffff16611d71611703565b73ffffffffffffffffffffffffffffffffffffffff1614611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe90613fc9565b60405180910390fd5b826012819055508160138190555080601481905550601454601354601254611def91906141de565b611df991906141de565b601181905550600b6011541115611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c906143ee565b60405180910390fd5b505050565b611e5261238c565b73ffffffffffffffffffffffffffffffffffffffff16611e70611703565b73ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613fc9565b60405180910390fd5b670de0b6b3a76400006103e86005611edc610dd1565b611ee69190614018565b611ef09190614089565b611efa9190614089565b811015611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3390614480565b60405180910390fd5b670de0b6b3a764000081611f509190614018565b600b8190555050565b60095481565b6000611f6961238c565b73ffffffffffffffffffffffffffffffffffffffff16611f87611703565b73ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613fc9565b60405180910390fd5b620186a06001611feb610dd1565b611ff59190614018565b611fff9190614089565b821015612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890614512565b60405180910390fd5b6103e8600561204e610dd1565b6120589190614018565b6120629190614089565b8211156120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b906145a4565b60405180910390fd5b81600a8190555060019050919050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600f5481565b61215561238c565b73ffffffffffffffffffffffffffffffffffffffff16612173611703565b73ffffffffffffffffffffffffffffffffffffffff16146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090613fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222f90614636565b60405180910390fd5b6122418161302c565b50565b60135481565b600b5481565b61225861238c565b73ffffffffffffffffffffffffffffffffffffffff16612276611703565b73ffffffffffffffffffffffffffffffffffffffff16146122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c390613fc9565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8e4fb3162b55d3fcdb7507ecfed5ab4ea5d2bd7494d0bb621d698a52ea3f74b460405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa906146c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124699061475a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125509190613cf5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c3906147ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361263b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126329061487e565b60405180910390fd5b600081036126545761264f83836000613193565b613027565b600c60009054906101000a900460ff1615612b4f57612671611703565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126df57506126af611703565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127185750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612752575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561276b5750600560149054906101000a900460ff16155b15612b4e57600c60019054906101000a900460ff1661286557601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128255750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b906148ea565b60405180910390fd5b5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129085750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129af57600954811115612952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129499061497c565b60405180910390fd5b600b5461295e836112b1565b8261296991906141de565b11156129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a1906149e8565b60405180910390fd5b612b4d565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a525750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aa157600954811115612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9390614a7a565b60405180910390fd5b612b4c565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b4b57600b54612afe836112b1565b82612b0991906141de565b1115612b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b41906149e8565b60405180910390fd5b5b5b5b5b5b6000612b5a306112b1565b90506000600a548210159050808015612b7f5750600c60029054906101000a900460ff165b8015612b985750600560149054906101000a900460ff16155b8015612bee5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c445750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c9a5750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cde576001600560146101000a81548160ff021916908315150217905550612cc2613412565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d945750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9e57600090505b6000811561301757601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e0157506000601154115b15612ece57612e2e6064612e20601154886136f990919063ffffffff16565b61370f90919063ffffffff16565b905060115460135482612e419190614018565b612e4b9190614089565b60166000828254612e5c91906141de565b9250508190555060115460145482612e749190614018565b612e7e9190614089565b60176000828254612e8f91906141de565b9250508190555060115460125482612ea79190614018565b612eb19190614089565b60156000828254612ec291906141de565b92505081905550612ff3565b601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f2957506000600d54115b15612ff257612f566064612f48600d54886136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600d54600f5482612f699190614018565b612f739190614089565b60166000828254612f8491906141de565b92505081905550600d5460105482612f9c9190614018565b612fa69190614089565b60176000828254612fb791906141de565b92505081905550600d54600e5482612fcf9190614018565b612fd99190614089565b60156000828254612fea91906141de565b925050819055505b5b600081111561300857613007873083613193565b5b80856130149190614a9a565b94505b613022878787613193565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f9906147ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132689061487e565b60405180910390fd5b61327c838383613725565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990614b40565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461339591906141de565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133f99190613cf5565b60405180910390a361340c84848461372a565b50505050565b600061341d306112b1565b9050600060175460155460165461343491906141de565b61343e91906141de565b90506000808314806134505750600082145b1561345d575050506136f7565b6014600a5461346c9190614018565b831115613485576014600a546134829190614018565b92505b6000600283601654866134989190614018565b6134a29190614089565b6134ac9190614089565b905060006134c3828661372f90919063ffffffff16565b905060004790506134d382613745565b60006134e8824761372f90919063ffffffff16565b9050600061351387613505601554856136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600061353e88613530601754866136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600081838561354f9190614a9a565b6135599190614a9a565b9050600060168190555060006015819055506000601781905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516135b990614b91565b60006040518083038185875af1925050503d80600081146135f6576040519150601f19603f3d011682016040523d82523d6000602084013e6135fb565b606091505b5050809850506000871180156136115750600081115b1561365e576136208782613982565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260165460405161365593929190614ba6565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516136a490614b91565b60006040518083038185875af1925050503d80600081146136e1576040519150601f19603f3d011682016040523d82523d6000602084013e6136e6565b606091505b505080985050505050505050505050505b565b600081836137079190614018565b905092915050565b6000818361371d9190614089565b905092915050565b505050565b505050565b6000818361373d9190614a9a565b905092915050565b6000600267ffffffffffffffff81111561376257613761614bdd565b5b6040519080825280602002602001820160405280156137905781602001602082028036833780820191505090505b50905030816000815181106137a8576137a7614c0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138719190614c50565b8160018151811061388557613884614c0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138ea307f000000000000000000000000000000000000000000000000000000000000000084612394565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161394c959493929190614d76565b600060405180830381600087803b15801561396657600080fd5b505af115801561397a573d6000803e3d6000fd5b505050505050565b6139ad307f000000000000000000000000000000000000000000000000000000000000000084612394565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a3496959493929190614dd0565b60606040518083038185885af1158015613a52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a779190614e46565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ab8578082015181840152602081019050613a9d565b60008484015250505050565b6000601f19601f8301169050919050565b6000613ae082613a7e565b613aea8185613a89565b9350613afa818560208601613a9a565b613b0381613ac4565b840191505092915050565b60006020820190508181036000830152613b288184613ad5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6082613b35565b9050919050565b613b7081613b55565b8114613b7b57600080fd5b50565b600081359050613b8d81613b67565b92915050565b6000819050919050565b613ba681613b93565b8114613bb157600080fd5b50565b600081359050613bc381613b9d565b92915050565b60008060408385031215613be057613bdf613b30565b5b6000613bee85828601613b7e565b9250506020613bff85828601613bb4565b9150509250929050565b60008115159050919050565b613c1e81613c09565b82525050565b6000602082019050613c396000830184613c15565b92915050565b600060208284031215613c5557613c54613b30565b5b6000613c6384828501613b7e565b91505092915050565b6000819050919050565b6000613c91613c8c613c8784613b35565b613c6c565b613b35565b9050919050565b6000613ca382613c76565b9050919050565b6000613cb582613c98565b9050919050565b613cc581613caa565b82525050565b6000602082019050613ce06000830184613cbc565b92915050565b613cef81613b93565b82525050565b6000602082019050613d0a6000830184613ce6565b92915050565b600060208284031215613d2657613d25613b30565b5b6000613d3484828501613bb4565b91505092915050565b600080600060608486031215613d5657613d55613b30565b5b6000613d6486828701613b7e565b9350506020613d7586828701613b7e565b9250506040613d8686828701613bb4565b9150509250925092565b613d9981613b55565b82525050565b6000602082019050613db46000830184613d90565b92915050565b600060ff82169050919050565b613dd081613dba565b82525050565b6000602082019050613deb6000830184613dc7565b92915050565b613dfa81613c09565b8114613e0557600080fd5b50565b600081359050613e1781613df1565b92915050565b60008060408385031215613e3457613e33613b30565b5b6000613e4285828601613b7e565b9250506020613e5385828601613e08565b9150509250929050565b600080600060608486031215613e7657613e75613b30565b5b6000613e8486828701613bb4565b9350506020613e9586828701613bb4565b9250506040613ea686828701613bb4565b9150509250925092565b600060208284031215613ec657613ec5613b30565b5b6000613ed484828501613e08565b91505092915050565b60008060408385031215613ef457613ef3613b30565b5b6000613f0285828601613b7e565b9250506020613f1385828601613b7e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f6457607f821691505b602082108103613f7757613f76613f1d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fb3602083613a89565b9150613fbe82613f7d565b602082019050919050565b60006020820190508181036000830152613fe281613fa6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061402382613b93565b915061402e83613b93565b925082820261403c81613b93565b9150828204841483151761405357614052613fe9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061409482613b93565b915061409f83613b93565b9250826140af576140ae61405a565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000614116602f83613a89565b9150614121826140ba565b604082019050919050565b6000602082019050818103600083015261414581614109565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006141a8602883613a89565b91506141b38261414c565b604082019050919050565b600060208201905081810360008301526141d78161419b565b9050919050565b60006141e982613b93565b91506141f483613b93565b925082820190508082111561420c5761420b613fe9565b5b92915050565b7f4d757374206b656570206665657320617420313125206f72206c657373000000600082015250565b6000614248601d83613a89565b915061425382614212565b602082019050919050565b600060208201905081810360008301526142778161423b565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006142da603983613a89565b91506142e58261427e565b604082019050919050565b60006020820190508181036000830152614309816142cd565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061436c602583613a89565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b7f4d757374206b65657020666565732061742020313125206f72206c6573730000600082015250565b60006143d8601e83613a89565b91506143e3826143a2565b602082019050919050565b60006020820190508181036000830152614407816143cb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b600061446a602483613a89565b91506144758261440e565b604082019050919050565b600060208201905081810360008301526144998161445d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006144fc603583613a89565b9150614507826144a0565b604082019050919050565b6000602082019050818103600083015261452b816144ef565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061458e603483613a89565b915061459982614532565b604082019050919050565b600060208201905081810360008301526145bd81614581565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614620602683613a89565b915061462b826145c4565b604082019050919050565b6000602082019050818103600083015261464f81614613565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146b2602483613a89565b91506146bd82614656565b604082019050919050565b600060208201905081810360008301526146e1816146a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614744602283613a89565b915061474f826146e8565b604082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147d6602583613a89565b91506147e18261477a565b604082019050919050565b60006020820190508181036000830152614805816147c9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614868602383613a89565b91506148738261480c565b604082019050919050565b600060208201905081810360008301526148978161485b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006148d4601683613a89565b91506148df8261489e565b602082019050919050565b60006020820190508181036000830152614903816148c7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614966603583613a89565b91506149718261490a565b604082019050919050565b6000602082019050818103600083015261499581614959565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149d2601383613a89565b91506149dd8261499c565b602082019050919050565b60006020820190508181036000830152614a01816149c5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a64603683613a89565b9150614a6f82614a08565b604082019050919050565b60006020820190508181036000830152614a9381614a57565b9050919050565b6000614aa582613b93565b9150614ab083613b93565b9250828203905081811115614ac857614ac7613fe9565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b2a602683613a89565b9150614b3582614ace565b604082019050919050565b60006020820190508181036000830152614b5981614b1d565b9050919050565b600081905092915050565b50565b6000614b7b600083614b60565b9150614b8682614b6b565b600082019050919050565b6000614b9c82614b6e565b9150819050919050565b6000606082019050614bbb6000830186613ce6565b614bc86020830185613ce6565b614bd56040830184613ce6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614c4a81613b67565b92915050565b600060208284031215614c6657614c65613b30565b5b6000614c7484828501614c3b565b91505092915050565b6000819050919050565b6000614ca2614c9d614c9884614c7d565b613c6c565b613b93565b9050919050565b614cb281614c87565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ced81613b55565b82525050565b6000614cff8383614ce4565b60208301905092915050565b6000602082019050919050565b6000614d2382614cb8565b614d2d8185614cc3565b9350614d3883614cd4565b8060005b83811015614d69578151614d508882614cf3565b9750614d5b83614d0b565b925050600181019050614d3c565b5085935050505092915050565b600060a082019050614d8b6000830188613ce6565b614d986020830187614ca9565b8181036040830152614daa8186614d18565b9050614db96060830185613d90565b614dc66080830184613ce6565b9695505050505050565b600060c082019050614de56000830189613d90565b614df26020830188613ce6565b614dff6040830187614ca9565b614e0c6060830186614ca9565b614e196080830185613d90565b614e2660a0830184613ce6565b979650505050505050565b600081519050614e4081613b9d565b92915050565b600080600060608486031215614e5f57614e5e613b30565b5b6000614e6d86828701614e31565b9350506020614e7e86828701614e31565b9250506040614e8f86828701614e31565b915050925092509256fea26469706673582212203841827d4766709540005915b3949b55a644b9445014fb6bb179618466ce42f664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103395760003560e01c80638da5cb5b116101ab578063bbc0c742116100f7578063dd62ed3e11610095578063f2fde38b1161006f578063f2fde38b14610c35578063f637434214610c5e578063f8b45b0514610c89578063fbc10c5514610cb457610340565b8063dd62ed3e14610ba2578063e2f4560514610bdf578063f11a24d314610c0a57610340565b8063c18bc195116100d1578063c18bc19514610ae6578063c8c8ebe414610b0f578063d257b34f14610b3a578063d85ba06314610b7757610340565b8063bbc0c74214610a69578063c024666814610a94578063c17b5b8c14610abd57610340565b80639c3b4fdc11610164578063a457c2d71161013e578063a457c2d714610989578063a9059cbb146109c6578063aacebbe314610a03578063b62496f514610a2c57610340565b80639c3b4fdc146109085780639fccce3214610933578063a0d82dc51461095e57610340565b80638da5cb5b1461080a5780638ea5220f146108355780639213691314610860578063924de9b71461088b57806395d89b41146108b45780639a7a23d6146108df57610340565b806349bd5a5e11610285578063715018a61161022357806375f0a874116101fd57806375f0a874146107745780637bce5a041461079f5780638095d564146107ca5780638a8c523c146107f357610340565b8063715018a614610709578063751039fc146107205780637571336a1461074b57610340565b80636303516c1161025f5780636303516c1461064b5780636a486a8e146106765780636ddd1713146106a157806370a08231146106cc57610340565b806349bd5a5e146105b85780634a62bb65146105e35780634fbee1931461060e57610340565b80631a8145bb116102f257806323b872dd116102cc57806323b872dd146104e857806327c8f83514610525578063313ce56714610550578063395093511461057b57610340565b80631a8145bb146104695780631f3fed8f14610494578063203e727e146104bf57610340565b806306fdde0314610345578063095ea7b31461037057806310d5de53146103ad5780631694505e146103ea57806318160ddd146104155780631816467f1461044057610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610cdd565b6040516103679190613b0e565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613bc9565b610d6f565b6040516103a49190613c24565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf9190613c3f565b610d8d565b6040516103e19190613c24565b60405180910390f35b3480156103f657600080fd5b506103ff610dad565b60405161040c9190613ccb565b60405180910390f35b34801561042157600080fd5b5061042a610dd1565b6040516104379190613cf5565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190613c3f565b610ddb565b005b34801561047557600080fd5b5061047e610f17565b60405161048b9190613cf5565b60405180910390f35b3480156104a057600080fd5b506104a9610f1d565b6040516104b69190613cf5565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190613d10565b610f23565b005b3480156104f457600080fd5b5061050f600480360381019061050a9190613d3d565b611032565b60405161051c9190613c24565b60405180910390f35b34801561053157600080fd5b5061053a61112a565b6040516105479190613d9f565b60405180910390f35b34801561055c57600080fd5b50610565611130565b6040516105729190613dd6565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190613bc9565b611139565b6040516105af9190613c24565b60405180910390f35b3480156105c457600080fd5b506105cd6111e5565b6040516105da9190613d9f565b60405180910390f35b3480156105ef57600080fd5b506105f8611209565b6040516106059190613c24565b60405180910390f35b34801561061a57600080fd5b5061063560048036038101906106309190613c3f565b61121c565b6040516106429190613c24565b60405180910390f35b34801561065757600080fd5b50610660611272565b60405161066d9190613d9f565b60405180910390f35b34801561068257600080fd5b5061068b611298565b6040516106989190613cf5565b60405180910390f35b3480156106ad57600080fd5b506106b661129e565b6040516106c39190613c24565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190613c3f565b6112b1565b6040516107009190613cf5565b60405180910390f35b34801561071557600080fd5b5061071e6112f9565b005b34801561072c57600080fd5b50610735611381565b6040516107429190613c24565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613e1d565b61144d565b005b34801561078057600080fd5b50610789611524565b6040516107969190613d9f565b60405180910390f35b3480156107ab57600080fd5b506107b461154a565b6040516107c19190613cf5565b60405180910390f35b3480156107d657600080fd5b506107f160048036038101906107ec9190613e5d565b611550565b005b3480156107ff57600080fd5b5061080861164f565b005b34801561081657600080fd5b5061081f611703565b60405161082c9190613d9f565b60405180910390f35b34801561084157600080fd5b5061084a61172d565b6040516108579190613d9f565b60405180910390f35b34801561086c57600080fd5b50610875611753565b6040516108829190613cf5565b60405180910390f35b34801561089757600080fd5b506108b260048036038101906108ad9190613eb0565b611759565b005b3480156108c057600080fd5b506108c96117f2565b6040516108d69190613b0e565b60405180910390f35b3480156108eb57600080fd5b5061090660048036038101906109019190613e1d565b611884565b005b34801561091457600080fd5b5061091d61199c565b60405161092a9190613cf5565b60405180910390f35b34801561093f57600080fd5b506109486119a2565b6040516109559190613cf5565b60405180910390f35b34801561096a57600080fd5b506109736119a8565b6040516109809190613cf5565b60405180910390f35b34801561099557600080fd5b506109b060048036038101906109ab9190613bc9565b6119ae565b6040516109bd9190613c24565b60405180910390f35b3480156109d257600080fd5b506109ed60048036038101906109e89190613bc9565b611a99565b6040516109fa9190613c24565b60405180910390f35b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613c3f565b611ab7565b005b348015610a3857600080fd5b50610a536004803603810190610a4e9190613c3f565b611bf3565b604051610a609190613c24565b60405180910390f35b348015610a7557600080fd5b50610a7e611c13565b604051610a8b9190613c24565b60405180910390f35b348015610aa057600080fd5b50610abb6004803603810190610ab69190613e1d565b611c26565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613e5d565b611d4b565b005b348015610af257600080fd5b50610b0d6004803603810190610b089190613d10565b611e4a565b005b348015610b1b57600080fd5b50610b24611f59565b604051610b319190613cf5565b60405180910390f35b348015610b4657600080fd5b50610b616004803603810190610b5c9190613d10565b611f5f565b604051610b6e9190613c24565b60405180910390f35b348015610b8357600080fd5b50610b8c6120b4565b604051610b999190613cf5565b60405180910390f35b348015610bae57600080fd5b50610bc96004803603810190610bc49190613edd565b6120ba565b604051610bd69190613cf5565b60405180910390f35b348015610beb57600080fd5b50610bf4612141565b604051610c019190613cf5565b60405180910390f35b348015610c1657600080fd5b50610c1f612147565b604051610c2c9190613cf5565b60405180910390f35b348015610c4157600080fd5b50610c5c6004803603810190610c579190613c3f565b61214d565b005b348015610c6a57600080fd5b50610c73612244565b604051610c809190613cf5565b60405180910390f35b348015610c9557600080fd5b50610c9e61224a565b604051610cab9190613cf5565b60405180910390f35b348015610cc057600080fd5b50610cdb6004803603810190610cd69190613c3f565b612250565b005b606060038054610cec90613f4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1890613f4c565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b5050505050905090565b6000610d83610d7c61238c565b8484612394565b6001905092915050565b60196020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750681565b6000600254905090565b610de361238c565b73ffffffffffffffffffffffffffffffffffffffff16610e01611703565b73ffffffffffffffffffffffffffffffffffffffff1614610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e90613fc9565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b60155481565b610f2b61238c565b73ffffffffffffffffffffffffffffffffffffffff16610f49611703565b73ffffffffffffffffffffffffffffffffffffffff1614610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613fc9565b60405180910390fd5b670de0b6b3a76400006103e86001610fb5610dd1565b610fbf9190614018565b610fc99190614089565b610fd39190614089565b811015611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c9061412c565b60405180910390fd5b670de0b6b3a7640000816110299190614018565b60098190555050565b600061103f84848461255d565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061108a61238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561110a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611101906141be565b60405180910390fd5b61111e8561111661238c565b858403612394565b60019150509392505050565b61dead81565b60006012905090565b60006111db61114661238c565b84846001600061115461238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111d691906141de565b612394565b6001905092915050565b7f0000000000000000000000006e25fabcacd6af4dced41c7af6adfdf9a45b1b2381565b600c60009054906101000a900460ff1681565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b600c60029054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61130161238c565b73ffffffffffffffffffffffffffffffffffffffff1661131f611703565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613fc9565b60405180910390fd5b61137f600061302c565b565b600061138b61238c565b73ffffffffffffffffffffffffffffffffffffffff166113a9611703565b73ffffffffffffffffffffffffffffffffffffffff16146113ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f690613fc9565b60405180910390fd5b6000600c60006101000a81548160ff0219169083151502179055507f7bfa7bacf025baa75e5308bf15bcf2948f406c7ebe3eb1a8bb611862b9d647ef60405160405180910390a16001905090565b61145561238c565b73ffffffffffffffffffffffffffffffffffffffff16611473611703565b73ffffffffffffffffffffffffffffffffffffffff16146114c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c090613fc9565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b61155861238c565b73ffffffffffffffffffffffffffffffffffffffff16611576611703565b73ffffffffffffffffffffffffffffffffffffffff16146115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613fc9565b60405180910390fd5b82600e8190555081600f8190555080601081905550601054600f54600e546115f491906141de565b6115fe91906141de565b600d81905550600b600d54111561164a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116419061425e565b60405180910390fd5b505050565b61165761238c565b73ffffffffffffffffffffffffffffffffffffffff16611675611703565b73ffffffffffffffffffffffffffffffffffffffff16146116cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c290613fc9565b60405180910390fd5b6001600c60016101000a81548160ff0219169083151502179055506001600c60026101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b61176161238c565b73ffffffffffffffffffffffffffffffffffffffff1661177f611703565b73ffffffffffffffffffffffffffffffffffffffff16146117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc90613fc9565b60405180910390fd5b80600c60026101000a81548160ff02191690831515021790555050565b60606004805461180190613f4c565b80601f016020809104026020016040519081016040528092919081815260200182805461182d90613f4c565b801561187a5780601f1061184f5761010080835404028352916020019161187a565b820191906000526020600020905b81548152906001019060200180831161185d57829003601f168201915b5050505050905090565b61188c61238c565b73ffffffffffffffffffffffffffffffffffffffff166118aa611703565b73ffffffffffffffffffffffffffffffffffffffff1614611900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f790613fc9565b60405180910390fd5b7f0000000000000000000000006e25fabcacd6af4dced41c7af6adfdf9a45b1b2373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361198e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611985906142f0565b60405180910390fd5b61199882826130f2565b5050565b60105481565b60175481565b60145481565b600080600160006119bd61238c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190614382565b60405180910390fd5b611a8e611a8561238c565b85858403612394565b600191505092915050565b6000611aad611aa661238c565b848461255d565b6001905092915050565b611abf61238c565b73ffffffffffffffffffffffffffffffffffffffff16611add611703565b73ffffffffffffffffffffffffffffffffffffffff1614611b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2a90613fc9565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a6020528060005260406000206000915054906101000a900460ff1681565b600c60019054906101000a900460ff1681565b611c2e61238c565b73ffffffffffffffffffffffffffffffffffffffff16611c4c611703565b73ffffffffffffffffffffffffffffffffffffffff1614611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9990613fc9565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611d3f9190613c24565b60405180910390a25050565b611d5361238c565b73ffffffffffffffffffffffffffffffffffffffff16611d71611703565b73ffffffffffffffffffffffffffffffffffffffff1614611dc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbe90613fc9565b60405180910390fd5b826012819055508160138190555080601481905550601454601354601254611def91906141de565b611df991906141de565b601181905550600b6011541115611e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3c906143ee565b60405180910390fd5b505050565b611e5261238c565b73ffffffffffffffffffffffffffffffffffffffff16611e70611703565b73ffffffffffffffffffffffffffffffffffffffff1614611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613fc9565b60405180910390fd5b670de0b6b3a76400006103e86005611edc610dd1565b611ee69190614018565b611ef09190614089565b611efa9190614089565b811015611f3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3390614480565b60405180910390fd5b670de0b6b3a764000081611f509190614018565b600b8190555050565b60095481565b6000611f6961238c565b73ffffffffffffffffffffffffffffffffffffffff16611f87611703565b73ffffffffffffffffffffffffffffffffffffffff1614611fdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd490613fc9565b60405180910390fd5b620186a06001611feb610dd1565b611ff59190614018565b611fff9190614089565b821015612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890614512565b60405180910390fd5b6103e8600561204e610dd1565b6120589190614018565b6120629190614089565b8211156120a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209b906145a4565b60405180910390fd5b81600a8190555060019050919050565b600d5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b600f5481565b61215561238c565b73ffffffffffffffffffffffffffffffffffffffff16612173611703565b73ffffffffffffffffffffffffffffffffffffffff16146121c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c090613fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222f90614636565b60405180910390fd5b6122418161302c565b50565b60135481565b600b5481565b61225861238c565b73ffffffffffffffffffffffffffffffffffffffff16612276611703565b73ffffffffffffffffffffffffffffffffffffffff16146122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c390613fc9565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8e4fb3162b55d3fcdb7507ecfed5ab4ea5d2bd7494d0bb621d698a52ea3f74b460405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa906146c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124699061475a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516125509190613cf5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c3906147ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361263b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126329061487e565b60405180910390fd5b600081036126545761264f83836000613193565b613027565b600c60009054906101000a900460ff1615612b4f57612671611703565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126df57506126af611703565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127185750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612752575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561276b5750600560149054906101000a900460ff16155b15612b4e57600c60019054906101000a900460ff1661286557601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128255750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285b906148ea565b60405180910390fd5b5b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129085750601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129af57600954811115612952576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129499061497c565b60405180910390fd5b600b5461295e836112b1565b8261296991906141de565b11156129aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a1906149e8565b60405180910390fd5b612b4d565b601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a525750601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612aa157600954811115612a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9390614a7a565b60405180910390fd5b612b4c565b601960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b4b57600b54612afe836112b1565b82612b0991906141de565b1115612b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b41906149e8565b60405180910390fd5b5b5b5b5b5b6000612b5a306112b1565b90506000600a548210159050808015612b7f5750600c60029054906101000a900460ff165b8015612b985750600560149054906101000a900460ff16155b8015612bee5750601a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c445750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612c9a5750601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cde576001600560146101000a81548160ff021916908315150217905550612cc2613412565b6000600560146101000a81548160ff0219169083151502179055505b6000600560149054906101000a900460ff16159050601860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612d945750601860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d9e57600090505b6000811561301757601a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e0157506000601154115b15612ece57612e2e6064612e20601154886136f990919063ffffffff16565b61370f90919063ffffffff16565b905060115460135482612e419190614018565b612e4b9190614089565b60166000828254612e5c91906141de565b9250508190555060115460145482612e749190614018565b612e7e9190614089565b60176000828254612e8f91906141de565b9250508190555060115460125482612ea79190614018565b612eb19190614089565b60156000828254612ec291906141de565b92505081905550612ff3565b601a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f2957506000600d54115b15612ff257612f566064612f48600d54886136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600d54600f5482612f699190614018565b612f739190614089565b60166000828254612f8491906141de565b92505081905550600d5460105482612f9c9190614018565b612fa69190614089565b60176000828254612fb791906141de565b92505081905550600d54600e5482612fcf9190614018565b612fd99190614089565b60156000828254612fea91906141de565b925050819055505b5b600081111561300857613007873083613193565b5b80856130149190614a9a565b94505b613022878787613193565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f9906147ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132689061487e565b60405180910390fd5b61327c838383613725565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015613302576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132f990614b40565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461339591906141de565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133f99190613cf5565b60405180910390a361340c84848461372a565b50505050565b600061341d306112b1565b9050600060175460155460165461343491906141de565b61343e91906141de565b90506000808314806134505750600082145b1561345d575050506136f7565b6014600a5461346c9190614018565b831115613485576014600a546134829190614018565b92505b6000600283601654866134989190614018565b6134a29190614089565b6134ac9190614089565b905060006134c3828661372f90919063ffffffff16565b905060004790506134d382613745565b60006134e8824761372f90919063ffffffff16565b9050600061351387613505601554856136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600061353e88613530601754866136f990919063ffffffff16565b61370f90919063ffffffff16565b9050600081838561354f9190614a9a565b6135599190614a9a565b9050600060168190555060006015819055506000601781905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516135b990614b91565b60006040518083038185875af1925050503d80600081146135f6576040519150601f19603f3d011682016040523d82523d6000602084013e6135fb565b606091505b5050809850506000871180156136115750600081115b1561365e576136208782613982565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561868260165460405161365593929190614ba6565b60405180910390a15b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516136a490614b91565b60006040518083038185875af1925050503d80600081146136e1576040519150601f19603f3d011682016040523d82523d6000602084013e6136e6565b606091505b505080985050505050505050505050505b565b600081836137079190614018565b905092915050565b6000818361371d9190614089565b905092915050565b505050565b505050565b6000818361373d9190614a9a565b905092915050565b6000600267ffffffffffffffff81111561376257613761614bdd565b5b6040519080825280602002602001820160405280156137905781602001602082028036833780820191505090505b50905030816000815181106137a8576137a7614c0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561384d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138719190614c50565b8160018151811061388557613884614c0c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138ea307f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750684612394565b7f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161394c959493929190614d76565b600060405180830381600087803b15801561396657600080fd5b505af115801561397a573d6000803e3d6000fd5b505050505050565b6139ad307f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750684612394565b7f0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613a3496959493929190614dd0565b60606040518083038185885af1158015613a52573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a779190614e46565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613ab8578082015181840152602081019050613a9d565b60008484015250505050565b6000601f19601f8301169050919050565b6000613ae082613a7e565b613aea8185613a89565b9350613afa818560208601613a9a565b613b0381613ac4565b840191505092915050565b60006020820190508181036000830152613b288184613ad5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613b6082613b35565b9050919050565b613b7081613b55565b8114613b7b57600080fd5b50565b600081359050613b8d81613b67565b92915050565b6000819050919050565b613ba681613b93565b8114613bb157600080fd5b50565b600081359050613bc381613b9d565b92915050565b60008060408385031215613be057613bdf613b30565b5b6000613bee85828601613b7e565b9250506020613bff85828601613bb4565b9150509250929050565b60008115159050919050565b613c1e81613c09565b82525050565b6000602082019050613c396000830184613c15565b92915050565b600060208284031215613c5557613c54613b30565b5b6000613c6384828501613b7e565b91505092915050565b6000819050919050565b6000613c91613c8c613c8784613b35565b613c6c565b613b35565b9050919050565b6000613ca382613c76565b9050919050565b6000613cb582613c98565b9050919050565b613cc581613caa565b82525050565b6000602082019050613ce06000830184613cbc565b92915050565b613cef81613b93565b82525050565b6000602082019050613d0a6000830184613ce6565b92915050565b600060208284031215613d2657613d25613b30565b5b6000613d3484828501613bb4565b91505092915050565b600080600060608486031215613d5657613d55613b30565b5b6000613d6486828701613b7e565b9350506020613d7586828701613b7e565b9250506040613d8686828701613bb4565b9150509250925092565b613d9981613b55565b82525050565b6000602082019050613db46000830184613d90565b92915050565b600060ff82169050919050565b613dd081613dba565b82525050565b6000602082019050613deb6000830184613dc7565b92915050565b613dfa81613c09565b8114613e0557600080fd5b50565b600081359050613e1781613df1565b92915050565b60008060408385031215613e3457613e33613b30565b5b6000613e4285828601613b7e565b9250506020613e5385828601613e08565b9150509250929050565b600080600060608486031215613e7657613e75613b30565b5b6000613e8486828701613bb4565b9350506020613e9586828701613bb4565b9250506040613ea686828701613bb4565b9150509250925092565b600060208284031215613ec657613ec5613b30565b5b6000613ed484828501613e08565b91505092915050565b60008060408385031215613ef457613ef3613b30565b5b6000613f0285828601613b7e565b9250506020613f1385828601613b7e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f6457607f821691505b602082108103613f7757613f76613f1d565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fb3602083613a89565b9150613fbe82613f7d565b602082019050919050565b60006020820190508181036000830152613fe281613fa6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061402382613b93565b915061402e83613b93565b925082820261403c81613b93565b9150828204841483151761405357614052613fe9565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061409482613b93565b915061409f83613b93565b9250826140af576140ae61405a565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000614116602f83613a89565b9150614121826140ba565b604082019050919050565b6000602082019050818103600083015261414581614109565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006141a8602883613a89565b91506141b38261414c565b604082019050919050565b600060208201905081810360008301526141d78161419b565b9050919050565b60006141e982613b93565b91506141f483613b93565b925082820190508082111561420c5761420b613fe9565b5b92915050565b7f4d757374206b656570206665657320617420313125206f72206c657373000000600082015250565b6000614248601d83613a89565b915061425382614212565b602082019050919050565b600060208201905081810360008301526142778161423b565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b60006142da603983613a89565b91506142e58261427e565b604082019050919050565b60006020820190508181036000830152614309816142cd565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061436c602583613a89565b915061437782614310565b604082019050919050565b6000602082019050818103600083015261439b8161435f565b9050919050565b7f4d757374206b65657020666565732061742020313125206f72206c6573730000600082015250565b60006143d8601e83613a89565b91506143e3826143a2565b602082019050919050565b60006020820190508181036000830152614407816143cb565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b600061446a602483613a89565b91506144758261440e565b604082019050919050565b600060208201905081810360008301526144998161445d565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b60006144fc603583613a89565b9150614507826144a0565b604082019050919050565b6000602082019050818103600083015261452b816144ef565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b600061458e603483613a89565b915061459982614532565b604082019050919050565b600060208201905081810360008301526145bd81614581565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614620602683613a89565b915061462b826145c4565b604082019050919050565b6000602082019050818103600083015261464f81614613565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006146b2602483613a89565b91506146bd82614656565b604082019050919050565b600060208201905081810360008301526146e1816146a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614744602283613a89565b915061474f826146e8565b604082019050919050565b6000602082019050818103600083015261477381614737565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006147d6602583613a89565b91506147e18261477a565b604082019050919050565b60006020820190508181036000830152614805816147c9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000614868602383613a89565b91506148738261480c565b604082019050919050565b600060208201905081810360008301526148978161485b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006148d4601683613a89565b91506148df8261489e565b602082019050919050565b60006020820190508181036000830152614903816148c7565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614966603583613a89565b91506149718261490a565b604082019050919050565b6000602082019050818103600083015261499581614959565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006149d2601383613a89565b91506149dd8261499c565b602082019050919050565b60006020820190508181036000830152614a01816149c5565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a64603683613a89565b9150614a6f82614a08565b604082019050919050565b60006020820190508181036000830152614a9381614a57565b9050919050565b6000614aa582613b93565b9150614ab083613b93565b9250828203905081811115614ac857614ac7613fe9565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614b2a602683613a89565b9150614b3582614ace565b604082019050919050565b60006020820190508181036000830152614b5981614b1d565b9050919050565b600081905092915050565b50565b6000614b7b600083614b60565b9150614b8682614b6b565b600082019050919050565b6000614b9c82614b6e565b9150819050919050565b6000606082019050614bbb6000830186613ce6565b614bc86020830185613ce6565b614bd56040830184613ce6565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050614c4a81613b67565b92915050565b600060208284031215614c6657614c65613b30565b5b6000614c7484828501614c3b565b91505092915050565b6000819050919050565b6000614ca2614c9d614c9884614c7d565b613c6c565b613b93565b9050919050565b614cb281614c87565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614ced81613b55565b82525050565b6000614cff8383614ce4565b60208301905092915050565b6000602082019050919050565b6000614d2382614cb8565b614d2d8185614cc3565b9350614d3883614cd4565b8060005b83811015614d69578151614d508882614cf3565b9750614d5b83614d0b565b925050600181019050614d3c565b5085935050505092915050565b600060a082019050614d8b6000830188613ce6565b614d986020830187614ca9565b8181036040830152614daa8186614d18565b9050614db96060830185613d90565b614dc66080830184613ce6565b9695505050505050565b600060c082019050614de56000830189613d90565b614df26020830188613ce6565b614dff6040830187614ca9565b614e0c6060830186614ca9565b614e196080830185613d90565b614e2660a0830184613ce6565b979650505050505050565b600081519050614e4081613b9d565b92915050565b600080600060608486031215614e5f57614e5e613b30565b5b6000614e6d86828701614e31565b9350506020614e7e86828701614e31565b9250506040614e8f86828701614e31565b915050925092509256fea26469706673582212203841827d4766709540005915b3949b55a644b9445014fb6bb179618466ce42f664736f6c63430008130033

Deployed ByteCode Sourcemap

12179:15537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2544:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3458:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13329:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12257:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2865:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20557:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13113:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13073;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17680:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3635:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12360:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2764:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4135:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12315:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12667:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20722:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12520:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12928:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12747:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2981:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;666:103;;;;;;;;;;;;;:::i;:::-;;16953:152;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18227:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12452:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12821;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18598:403;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16789:112;;;;;;;;;;;;;:::i;:::-;;443:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12963:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18490:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2652:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19620:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12895:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13153:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13039:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4358:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3116:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20128:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13550:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12707:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19430:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19009:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17963:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12552:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17175:497;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12787:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12594:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12858:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;777:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13001:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12634:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20367:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2544:100;2598:13;2631:5;2624:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2544:100;:::o;3458:169::-;3541:4;3558:39;3567:12;:10;:12::i;:::-;3581:7;3590:6;3558:8;:39::i;:::-;3615:4;3608:11;;3458:169;;;;:::o;13329:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;12257:51::-;;;:::o;2865:108::-;2926:7;2953:12;;2946:19;;2865:108;:::o;20557:157::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20664:9:::1;;;;;;;;;;;20636:38;;20653:9;20636:38;;;;;;;;;;;;20697:9;20685;;:21;;;;;;;;;;;;;;;;;;20557:157:::0;:::o;13113:33::-;;;;:::o;13073:::-;;;;:::o;17680:275::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17817:4:::1;17809;17804:1;17788:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17787:26;;;;:::i;:::-;17786:35;;;;:::i;:::-;17776:6;:45;;17754:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;17940:6;17930;:17;;;;:::i;:::-;17907:20;:40;;;;17680:275:::0;:::o;3635:492::-;3775:4;3792:36;3802:6;3810:9;3821:6;3792:9;:36::i;:::-;3841:24;3868:11;:19;3880:6;3868:19;;;;;;;;;;;;;;;:33;3888:12;:10;:12::i;:::-;3868:33;;;;;;;;;;;;;;;;3841:60;;3940:6;3920:16;:26;;3912:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4027:57;4036:6;4044:12;:10;:12::i;:::-;4077:6;4058:16;:25;4027:8;:57::i;:::-;4115:4;4108:11;;;3635:492;;;;;:::o;12360:53::-;12406:6;12360:53;:::o;2764:93::-;2822:5;2847:2;2840:9;;2764:93;:::o;4135:215::-;4223:4;4240:80;4249:12;:10;:12::i;:::-;4263:7;4309:10;4272:11;:25;4284:12;:10;:12::i;:::-;4272:25;;;;;;;;;;;;;;;:34;4298:7;4272:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4240:8;:80::i;:::-;4338:4;4331:11;;4135:215;;;;:::o;12315:38::-;;;:::o;12667:33::-;;;;;;;;;;;;;:::o;20722:126::-;20788:4;20812:19;:28;20832:7;20812:28;;;;;;;;;;;;;;;;;;;;;;;;;20805:35;;20722:126;;;:::o;12520:23::-;;;;;;;;;;;;;:::o;12928:28::-;;;;:::o;12747:31::-;;;;;;;;;;;;;:::o;2981:127::-;3055:7;3082:9;:18;3092:7;3082:18;;;;;;;;;;;;;;;;3075:25;;2981:127;;;:::o;666:103::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;731:30:::1;758:1;731:18;:30::i;:::-;666:103::o:0;16953:152::-;17005:4;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17039:5:::1;17022:14;;:22;;;;;;;;;;;;;;;;;;17060:15;;;;;;;;;;17093:4;17086:11;;16953:152:::0;:::o;18227:167::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18382:4:::1;18340:31;:39;18372:6;18340:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18227:167:::0;;:::o;12452:30::-;;;;;;;;;;;;;:::o;12821:::-;;;;:::o;18598:403::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18766:13:::1;18748:15;:31;;;;18808:13;18790:15;:31;;;;18844:7;18832:9;:19;;;;18913:9;;18895:15;;18877;;:33;;;;:::i;:::-;:45;;;;:::i;:::-;18862:12;:60;;;;18957:2;18941:12;;:18;;18933:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;18598:403:::0;;;:::o;16789:112::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16860:4:::1;16844:13;;:20;;;;;;;;;;;;;;;;;;16889:4;16875:11;;:18;;;;;;;;;;;;;;;;;;16789:112::o:0;443:87::-;489:7;516:6;;;;;;;;;;;509:13;;443:87;:::o;12489:24::-;;;;;;;;;;;;;:::o;12963:31::-;;;;:::o;18490:100::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18575:7:::1;18561:11;;:21;;;;;;;;;;;;;;;;;;18490:100:::0;:::o;2652:104::-;2708:13;2741:7;2734:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2652:104;:::o;19620:304::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19764:13:::1;19756:21;;:4;:21;;::::0;19734:128:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;19875:41;19904:4;19910:5;19875:28;:41::i;:::-;19620:304:::0;;:::o;12895:24::-;;;;:::o;13153:27::-;;;;:::o;13039:25::-;;;;:::o;4358:413::-;4451:4;4468:24;4495:11;:25;4507:12;:10;:12::i;:::-;4495:25;;;;;;;;;;;;;;;:34;4521:7;4495:34;;;;;;;;;;;;;;;;4468:61;;4568:15;4548:16;:35;;4540:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;4661:67;4670:12;:10;:12::i;:::-;4684:7;4712:15;4693:16;:34;4661:8;:67::i;:::-;4759:4;4752:11;;;4358:413;;;;:::o;3116:175::-;3202:4;3219:42;3229:12;:10;:12::i;:::-;3243:9;3254:6;3219:9;:42::i;:::-;3279:4;3272:11;;3116:175;;;;:::o;20128:231::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20288:15:::1;;;;;;;;;;;20245:59;;20268:18;20245:59;;;;;;;;;;;;20333:18;20315:15;;:36;;;;;;;;;;;;;;;;;;20128:231:::0;:::o;13550:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;12707:33::-;;;;;;;;;;;;;:::o;19430:182::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19546:8:::1;19515:19;:28;19535:7;19515:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;19586:7;19570:34;;;19595:8;19570:34;;;;;;:::i;:::-;;;;;;;;19430:182:::0;;:::o;19009:413::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19179:13:::1;19160:16;:32;;;;19222:13;19203:16;:32;;;;19259:7;19246:10;:20;;;;19331:10;;19312:16;;19293;;:35;;;;:::i;:::-;:48;;;;:::i;:::-;19277:13;:64;;;;19377:2;19360:13;;:19;;19352:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19009:413:::0;;;:::o;17963:256::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18103:4:::1;18095;18090:1;18074:13;:11;:13::i;:::-;:17;;;;:::i;:::-;18073:26;;;;:::i;:::-;18072:35;;;;:::i;:::-;18062:6;:45;;18040:131;;;;;;;;;;;;:::i;:::-;;;;;;;;;18204:6;18194;:17;;;;:::i;:::-;18182:9;:29;;;;17963:256:::0;:::o;12552:35::-;;;;:::o;17175:497::-;17283:4;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17362:6:::1;17357:1;17341:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17340:28;;;;:::i;:::-;17327:9;:41;;17305:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;17517:4;17512:1;17496:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17495:26;;;;:::i;:::-;17482:9;:39;;17460:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;17633:9;17612:18;:30;;;;17660:4;17653:11;;17175:497:::0;;;:::o;12787:27::-;;;;:::o;3299:151::-;3388:7;3415:11;:18;3427:5;3415:18;;;;;;;;;;;;;;;:27;3434:7;3415:27;;;;;;;;;;;;;;;;3408:34;;3299:151;;;;:::o;12594:33::-;;;;:::o;12858:30::-;;;;:::o;777:201::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;886:1:::1;866:22;;:8;:22;;::::0;858:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;942:28;961:8;942:18;:28::i;:::-;777:201:::0;:::o;13001:31::-;;;;:::o;12634:24::-;;;;:::o;20367:182::-;589:12;:10;:12::i;:::-;578:23;;:7;:5;:7::i;:::-;:23;;;570:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20499:8:::1;;;;;;;;;;;20470:38;;20486:11;20470:38;;;;;;;;;;;;20530:11;20519:8;;:22;;;;;;;;;;;;;;;;;;20367:182:::0;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;5927:380::-;6080:1;6063:19;;:5;:19;;;6055:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6161:1;6142:21;;:7;:21;;;6134:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6245:6;6215:11;:18;6227:5;6215:18;;;;;;;;;;;;;;;:27;6234:7;6215:27;;;;;;;;;;;;;;;:36;;;;6283:7;6267:32;;6276:5;6267:32;;;6292:6;6267:32;;;;;;:::i;:::-;;;;;;;;5927:380;;;:::o;20906:3924::-;21054:1;21038:18;;:4;:18;;;21030:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21131:1;21117:16;;:2;:16;;;21109:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21200:1;21190:6;:11;21186:93;;21218:28;21234:4;21240:2;21244:1;21218:15;:28::i;:::-;21261:7;;21186:93;21295:14;;;;;;;;;;;21291:1694;;;21356:7;:5;:7::i;:::-;21348:15;;:4;:15;;;;:49;;;;;21390:7;:5;:7::i;:::-;21384:13;;:2;:13;;;;21348:49;:86;;;;;21432:1;21418:16;;:2;:16;;;;21348:86;:128;;;;;21469:6;21455:21;;:2;:21;;;;21348:128;:158;;;;;21498:8;;;;;;;;;;;21497:9;21348:158;21326:1648;;;21546:13;;;;;;;;;;;21541:223;;21618:19;:25;21638:4;21618:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21647:19;:23;21667:2;21647:23;;;;;;;;;;;;;;;;;;;;;;;;;21618:52;21584:160;;;;;;;;;;;;:::i;:::-;;;;;;;;;21541:223;21838:25;:31;21864:4;21838:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;21895:31;:35;21927:2;21895:35;;;;;;;;;;;;;;;;;;;;;;;;;21894:36;21838:92;21812:1147;;;22017:20;;22007:6;:30;;21973:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;22225:9;;22208:13;22218:2;22208:9;:13::i;:::-;22199:6;:22;;;;:::i;:::-;:35;;22165:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;21812:1147;;;22403:25;:29;22429:2;22403:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;22458:31;:37;22490:4;22458:37;;;;;;;;;;;;;;;;;;;;;;;;;22457:38;22403:92;22377:582;;;22582:20;;22572:6;:30;;22538:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;22377:582;;;22739:31;:35;22771:2;22739:35;;;;;;;;;;;;;;;;;;;;;;;;;22734:225;;22859:9;;22842:13;22852:2;22842:9;:13::i;:::-;22833:6;:22;;;;:::i;:::-;:35;;22799:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;22734:225;22377:582;21812:1147;21326:1648;21291:1694;22997:28;23028:24;23046:4;23028:9;:24::i;:::-;22997:55;;23065:12;23104:18;;23080:20;:42;;23065:57;;23153:7;:35;;;;;23177:11;;;;;;;;;;;23153:35;:61;;;;;23206:8;;;;;;;;;;;23205:9;23153:61;:110;;;;;23232:25;:31;23258:4;23232:31;;;;;;;;;;;;;;;;;;;;;;;;;23231:32;23153:110;:153;;;;;23281:19;:25;23301:4;23281:25;;;;;;;;;;;;;;;;;;;;;;;;;23280:26;23153:153;:194;;;;;23324:19;:23;23344:2;23324:23;;;;;;;;;;;;;;;;;;;;;;;;;23323:24;23153:194;23135:326;;;23385:4;23374:8;;:15;;;;;;;;;;;;;;;;;;23406:10;:8;:10::i;:::-;23444:5;23433:8;;:16;;;;;;;;;;;;;;;;;;23135:326;23473:12;23489:8;;;;;;;;;;;23488:9;23473:24;;23599:19;:25;23619:4;23599:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23628:19;:23;23648:2;23628:23;;;;;;;;;;;;;;;;;;;;;;;;;23599:52;23595:100;;;23678:5;23668:15;;23595:100;23707:12;23812:7;23808:969;;;23864:25;:29;23890:2;23864:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23913:1;23897:13;;:17;23864:50;23860:768;;;23942:34;23972:3;23942:25;23953:13;;23942:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;23935:41;;24045:13;;24025:16;;24018:4;:23;;;;:::i;:::-;24017:41;;;;:::i;:::-;23995:18;;:63;;;;;;;:::i;:::-;;;;;;;;24115:13;;24101:10;;24094:4;:17;;;;:::i;:::-;24093:35;;;;:::i;:::-;24077:12;;:51;;;;;;;:::i;:::-;;;;;;;;24197:13;;24177:16;;24170:4;:23;;;;:::i;:::-;24169:41;;;;:::i;:::-;24147:18;;:63;;;;;;;:::i;:::-;;;;;;;;23860:768;;;24272:25;:31;24298:4;24272:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;24322:1;24307:12;;:16;24272:51;24268:360;;;24351:33;24380:3;24351:24;24362:12;;24351:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;24344:40;;24452:12;;24433:15;;24426:4;:22;;;;:::i;:::-;24425:39;;;;:::i;:::-;24403:18;;:61;;;;;;;:::i;:::-;;;;;;;;24520:12;;24507:9;;24500:4;:16;;;;:::i;:::-;24499:33;;;;:::i;:::-;24483:12;;:49;;;;;;;:::i;:::-;;;;;;;;24600:12;;24581:15;;24574:4;:22;;;;:::i;:::-;24573:39;;;;:::i;:::-;24551:18;;:61;;;;;;;:::i;:::-;;;;;;;;24268:360;23860:768;24655:1;24648:4;:8;24644:91;;;24677:42;24693:4;24707;24714;24677:15;:42::i;:::-;24644:91;24761:4;24751:14;;;;;:::i;:::-;;;23808:969;24789:33;24805:4;24811:2;24815:6;24789:15;:33::i;:::-;21019:3811;;;;20906:3924;;;;:::o;986:191::-;1060:16;1079:6;;;;;;;;;;;1060:25;;1105:8;1096:6;;:17;;;;;;;;;;;;;;;;;;1160:8;1129:40;;1150:8;1129:40;;;;;;;;;;;;1049:128;986:191;:::o;19932:188::-;20049:5;20015:25;:31;20041:4;20015:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20106:5;20072:40;;20100:4;20072:40;;;;;;;;;;;;19932:188;;:::o;4779:733::-;4937:1;4919:20;;:6;:20;;;4911:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5021:1;5000:23;;:9;:23;;;4992:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5076:47;5097:6;5105:9;5116:6;5076:20;:47::i;:::-;5136:21;5160:9;:17;5170:6;5160:17;;;;;;;;;;;;;;;;5136:41;;5213:6;5196:13;:23;;5188:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5334:6;5318:13;:22;5298:9;:17;5308:6;5298:17;;;;;;;;;;;;;;;:42;;;;5386:6;5362:9;:20;5372:9;5362:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5427:9;5410:35;;5419:6;5410:35;;;5438:6;5410:35;;;;;;:::i;:::-;;;;;;;;5458:46;5478:6;5486:9;5497:6;5458:19;:46::i;:::-;4900:612;4779:733;;;:::o;25957:1756::-;25996:23;26022:24;26040:4;26022:9;:24::i;:::-;25996:50;;26057:25;26153:12;;26119:18;;26085;;:52;;;;:::i;:::-;:80;;;;:::i;:::-;26057:108;;26176:12;26224:1;26205:15;:20;:46;;;;26250:1;26229:17;:22;26205:46;26201:85;;;26268:7;;;;;26201:85;26341:2;26320:18;;:23;;;;:::i;:::-;26302:15;:41;26298:115;;;26399:2;26378:18;;:23;;;;:::i;:::-;26360:41;;26298:115;26474:23;26587:1;26554:17;26519:18;;26501:15;:36;;;;:::i;:::-;26500:71;;;;:::i;:::-;:88;;;;:::i;:::-;26474:114;;26599:26;26628:36;26648:15;26628;:19;;:36;;;;:::i;:::-;26599:65;;26677:25;26705:21;26677:49;;26739:36;26756:18;26739:16;:36::i;:::-;26788:18;26809:44;26835:17;26809:21;:25;;:44;;;;:::i;:::-;26788:65;;26866:23;26892:81;26945:17;26892:34;26907:18;;26892:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;26866:107;;26984:17;27004:51;27037:17;27004:28;27019:12;;27004:10;:14;;:28;;;;:::i;:::-;:32;;:51;;;;:::i;:::-;26984:71;;27068:23;27125:9;27107:15;27094:10;:28;;;;:::i;:::-;:40;;;;:::i;:::-;27068:66;;27168:1;27147:18;:22;;;;27201:1;27180:18;:22;;;;27228:1;27213:12;:16;;;;27264:9;;;;;;;;;;;27256:23;;27287:9;27256:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27242:59;;;;;27336:1;27318:15;:19;:42;;;;;27359:1;27341:15;:19;27318:42;27314:278;;;27377:46;27390:15;27407;27377:12;:46::i;:::-;27443:137;27476:18;27513:15;27547:18;;27443:137;;;;;;;;:::i;:::-;;;;;;;;27314:278;27626:15;;;;;;;;;;;27618:29;;27669:21;27618:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27604:101;;;;;25985:1728;;;;;;;;;;25957:1756;:::o;6711:98::-;6769:7;6800:1;6796;:5;;;;:::i;:::-;6789:12;;6711:98;;;;:::o;6817:::-;6875:7;6906:1;6902;:5;;;;:::i;:::-;6895:12;;6817:98;;;;:::o;6315:125::-;;;;:::o;6448:124::-;;;;:::o;6605:98::-;6663:7;6694:1;6690;:5;;;;:::i;:::-;6683:12;;6605:98;;;;:::o;24838:589::-;24964:21;25002:1;24988:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24964:40;;25033:4;25015;25020:1;25015:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;25059:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25049:4;25054:1;25049:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;25094:62;25111:4;25126:15;25144:11;25094:8;:62::i;:::-;25195:15;:66;;;25276:11;25302:1;25346:4;25373;25393:15;25195:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24893:534;24838:589;:::o;25435:514::-;25583:62;25600:4;25615:15;25633:11;25583:8;:62::i;:::-;25688:15;:31;;;25727:9;25760:4;25780:11;25806:1;25849;25892:8;;;;;;;;;;;25915:15;25688:253;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25435:514;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:329::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:53;5415:7;5406:6;5395:9;5391:22;5370:53;:::i;:::-;5360:63;;5316:117;5111:329;;;;:::o;5446:619::-;5523:6;5531;5539;5588:2;5576:9;5567:7;5563:23;5559:32;5556:119;;;5594:79;;:::i;:::-;5556:119;5714:1;5739:53;5784:7;5775:6;5764:9;5760:22;5739:53;:::i;:::-;5729:63;;5685:117;5841:2;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5812:118;5969:2;5995:53;6040:7;6031:6;6020:9;6016:22;5995:53;:::i;:::-;5985:63;;5940:118;5446:619;;;;;:::o;6071:118::-;6158:24;6176:5;6158:24;:::i;:::-;6153:3;6146:37;6071:118;;:::o;6195:222::-;6288:4;6326:2;6315:9;6311:18;6303:26;;6339:71;6407:1;6396:9;6392:17;6383:6;6339:71;:::i;:::-;6195:222;;;;:::o;6423:86::-;6458:7;6498:4;6491:5;6487:16;6476:27;;6423:86;;;:::o;6515:112::-;6598:22;6614:5;6598:22;:::i;:::-;6593:3;6586:35;6515:112;;:::o;6633:214::-;6722:4;6760:2;6749:9;6745:18;6737:26;;6773:67;6837:1;6826:9;6822:17;6813:6;6773:67;:::i;:::-;6633:214;;;;:::o;6853:116::-;6923:21;6938:5;6923:21;:::i;:::-;6916:5;6913:32;6903:60;;6959:1;6956;6949:12;6903:60;6853:116;:::o;6975:133::-;7018:5;7056:6;7043:20;7034:29;;7072:30;7096:5;7072:30;:::i;:::-;6975:133;;;;:::o;7114:468::-;7179:6;7187;7236:2;7224:9;7215:7;7211:23;7207:32;7204:119;;;7242:79;;:::i;:::-;7204:119;7362:1;7387:53;7432:7;7423:6;7412:9;7408:22;7387:53;:::i;:::-;7377:63;;7333:117;7489:2;7515:50;7557:7;7548:6;7537:9;7533:22;7515:50;:::i;:::-;7505:60;;7460:115;7114:468;;;;;:::o;7588:619::-;7665:6;7673;7681;7730:2;7718:9;7709:7;7705:23;7701:32;7698:119;;;7736:79;;:::i;:::-;7698:119;7856:1;7881:53;7926:7;7917:6;7906:9;7902:22;7881:53;:::i;:::-;7871:63;;7827:117;7983:2;8009:53;8054:7;8045:6;8034:9;8030:22;8009:53;:::i;:::-;7999:63;;7954:118;8111:2;8137:53;8182:7;8173:6;8162:9;8158:22;8137:53;:::i;:::-;8127:63;;8082:118;7588:619;;;;;:::o;8213:323::-;8269:6;8318:2;8306:9;8297:7;8293:23;8289:32;8286:119;;;8324:79;;:::i;:::-;8286:119;8444:1;8469:50;8511:7;8502:6;8491:9;8487:22;8469:50;:::i;:::-;8459:60;;8415:114;8213:323;;;;:::o;8542:474::-;8610:6;8618;8667:2;8655:9;8646:7;8642:23;8638:32;8635:119;;;8673:79;;:::i;:::-;8635:119;8793:1;8818:53;8863:7;8854:6;8843:9;8839:22;8818:53;:::i;:::-;8808:63;;8764:117;8920:2;8946:53;8991:7;8982:6;8971:9;8967:22;8946:53;:::i;:::-;8936:63;;8891:118;8542:474;;;;;:::o;9022:180::-;9070:77;9067:1;9060:88;9167:4;9164:1;9157:15;9191:4;9188:1;9181:15;9208:320;9252:6;9289:1;9283:4;9279:12;9269:22;;9336:1;9330:4;9326:12;9357:18;9347:81;;9413:4;9405:6;9401:17;9391:27;;9347:81;9475:2;9467:6;9464:14;9444:18;9441:38;9438:84;;9494:18;;:::i;:::-;9438:84;9259:269;9208:320;;;:::o;9534:182::-;9674:34;9670:1;9662:6;9658:14;9651:58;9534:182;:::o;9722:366::-;9864:3;9885:67;9949:2;9944:3;9885:67;:::i;:::-;9878:74;;9961:93;10050:3;9961:93;:::i;:::-;10079:2;10074:3;10070:12;10063:19;;9722:366;;;:::o;10094:419::-;10260:4;10298:2;10287:9;10283:18;10275:26;;10347:9;10341:4;10337:20;10333:1;10322:9;10318:17;10311:47;10375:131;10501:4;10375:131;:::i;:::-;10367:139;;10094:419;;;:::o;10519:180::-;10567:77;10564:1;10557:88;10664:4;10661:1;10654:15;10688:4;10685:1;10678:15;10705:410;10745:7;10768:20;10786:1;10768:20;:::i;:::-;10763:25;;10802:20;10820:1;10802:20;:::i;:::-;10797:25;;10857:1;10854;10850:9;10879:30;10897:11;10879:30;:::i;:::-;10868:41;;11058:1;11049:7;11045:15;11042:1;11039:22;11019:1;11012:9;10992:83;10969:139;;11088:18;;:::i;:::-;10969:139;10753:362;10705:410;;;;:::o;11121:180::-;11169:77;11166:1;11159:88;11266:4;11263:1;11256:15;11290:4;11287:1;11280:15;11307:185;11347:1;11364:20;11382:1;11364:20;:::i;:::-;11359:25;;11398:20;11416:1;11398:20;:::i;:::-;11393:25;;11437:1;11427:35;;11442:18;;:::i;:::-;11427:35;11484:1;11481;11477:9;11472:14;;11307:185;;;;:::o;11498:234::-;11638:34;11634:1;11626:6;11622:14;11615:58;11707:17;11702:2;11694:6;11690:15;11683:42;11498:234;:::o;11738:366::-;11880:3;11901:67;11965:2;11960:3;11901:67;:::i;:::-;11894:74;;11977:93;12066:3;11977:93;:::i;:::-;12095:2;12090:3;12086:12;12079:19;;11738:366;;;:::o;12110:419::-;12276:4;12314:2;12303:9;12299:18;12291:26;;12363:9;12357:4;12353:20;12349:1;12338:9;12334:17;12327:47;12391:131;12517:4;12391:131;:::i;:::-;12383:139;;12110:419;;;:::o;12535:227::-;12675:34;12671:1;12663:6;12659:14;12652:58;12744:10;12739:2;12731:6;12727:15;12720:35;12535:227;:::o;12768:366::-;12910:3;12931:67;12995:2;12990:3;12931:67;:::i;:::-;12924:74;;13007:93;13096:3;13007:93;:::i;:::-;13125:2;13120:3;13116:12;13109:19;;12768:366;;;:::o;13140:419::-;13306:4;13344:2;13333:9;13329:18;13321:26;;13393:9;13387:4;13383:20;13379:1;13368:9;13364:17;13357:47;13421:131;13547:4;13421:131;:::i;:::-;13413:139;;13140:419;;;:::o;13565:191::-;13605:3;13624:20;13642:1;13624:20;:::i;:::-;13619:25;;13658:20;13676:1;13658:20;:::i;:::-;13653:25;;13701:1;13698;13694:9;13687:16;;13722:3;13719:1;13716:10;13713:36;;;13729:18;;:::i;:::-;13713:36;13565:191;;;;:::o;13762:179::-;13902:31;13898:1;13890:6;13886:14;13879:55;13762:179;:::o;13947:366::-;14089:3;14110:67;14174:2;14169:3;14110:67;:::i;:::-;14103:74;;14186:93;14275:3;14186:93;:::i;:::-;14304:2;14299:3;14295:12;14288:19;;13947:366;;;:::o;14319:419::-;14485:4;14523:2;14512:9;14508:18;14500:26;;14572:9;14566:4;14562:20;14558:1;14547:9;14543:17;14536:47;14600:131;14726:4;14600:131;:::i;:::-;14592:139;;14319:419;;;:::o;14744:244::-;14884:34;14880:1;14872:6;14868:14;14861:58;14953:27;14948:2;14940:6;14936:15;14929:52;14744:244;:::o;14994:366::-;15136:3;15157:67;15221:2;15216:3;15157:67;:::i;:::-;15150:74;;15233:93;15322:3;15233:93;:::i;:::-;15351:2;15346:3;15342:12;15335:19;;14994:366;;;:::o;15366:419::-;15532:4;15570:2;15559:9;15555:18;15547:26;;15619:9;15613:4;15609:20;15605:1;15594:9;15590:17;15583:47;15647:131;15773:4;15647:131;:::i;:::-;15639:139;;15366:419;;;:::o;15791:224::-;15931:34;15927:1;15919:6;15915:14;15908:58;16000:7;15995:2;15987:6;15983:15;15976:32;15791:224;:::o;16021:366::-;16163:3;16184:67;16248:2;16243:3;16184:67;:::i;:::-;16177:74;;16260:93;16349:3;16260:93;:::i;:::-;16378:2;16373:3;16369:12;16362:19;;16021:366;;;:::o;16393:419::-;16559:4;16597:2;16586:9;16582:18;16574:26;;16646:9;16640:4;16636:20;16632:1;16621:9;16617:17;16610:47;16674:131;16800:4;16674:131;:::i;:::-;16666:139;;16393:419;;;:::o;16818:180::-;16958:32;16954:1;16946:6;16942:14;16935:56;16818:180;:::o;17004:366::-;17146:3;17167:67;17231:2;17226:3;17167:67;:::i;:::-;17160:74;;17243:93;17332:3;17243:93;:::i;:::-;17361:2;17356:3;17352:12;17345:19;;17004:366;;;:::o;17376:419::-;17542:4;17580:2;17569:9;17565:18;17557:26;;17629:9;17623:4;17619:20;17615:1;17604:9;17600:17;17593:47;17657:131;17783:4;17657:131;:::i;:::-;17649:139;;17376:419;;;:::o;17801:223::-;17941:34;17937:1;17929:6;17925:14;17918:58;18010:6;18005:2;17997:6;17993:15;17986:31;17801:223;:::o;18030:366::-;18172:3;18193:67;18257:2;18252:3;18193:67;:::i;:::-;18186:74;;18269:93;18358:3;18269:93;:::i;:::-;18387:2;18382:3;18378:12;18371:19;;18030:366;;;:::o;18402:419::-;18568:4;18606:2;18595:9;18591:18;18583:26;;18655:9;18649:4;18645:20;18641:1;18630:9;18626:17;18619:47;18683:131;18809:4;18683:131;:::i;:::-;18675:139;;18402:419;;;:::o;18827:240::-;18967:34;18963:1;18955:6;18951:14;18944:58;19036:23;19031:2;19023:6;19019:15;19012:48;18827:240;:::o;19073:366::-;19215:3;19236:67;19300:2;19295:3;19236:67;:::i;:::-;19229:74;;19312:93;19401:3;19312:93;:::i;:::-;19430:2;19425:3;19421:12;19414:19;;19073:366;;;:::o;19445:419::-;19611:4;19649:2;19638:9;19634:18;19626:26;;19698:9;19692:4;19688:20;19684:1;19673:9;19669:17;19662:47;19726:131;19852:4;19726:131;:::i;:::-;19718:139;;19445:419;;;:::o;19870:239::-;20010:34;20006:1;19998:6;19994:14;19987:58;20079:22;20074:2;20066:6;20062:15;20055:47;19870:239;:::o;20115:366::-;20257:3;20278:67;20342:2;20337:3;20278:67;:::i;:::-;20271:74;;20354:93;20443:3;20354:93;:::i;:::-;20472:2;20467:3;20463:12;20456:19;;20115:366;;;:::o;20487:419::-;20653:4;20691:2;20680:9;20676:18;20668:26;;20740:9;20734:4;20730:20;20726:1;20715:9;20711:17;20704:47;20768:131;20894:4;20768:131;:::i;:::-;20760:139;;20487:419;;;:::o;20912:225::-;21052:34;21048:1;21040:6;21036:14;21029:58;21121:8;21116:2;21108:6;21104:15;21097:33;20912:225;:::o;21143:366::-;21285:3;21306:67;21370:2;21365:3;21306:67;:::i;:::-;21299:74;;21382:93;21471:3;21382:93;:::i;:::-;21500:2;21495:3;21491:12;21484:19;;21143:366;;;:::o;21515:419::-;21681:4;21719:2;21708:9;21704:18;21696:26;;21768:9;21762:4;21758:20;21754:1;21743:9;21739:17;21732:47;21796:131;21922:4;21796:131;:::i;:::-;21788:139;;21515:419;;;:::o;21940:223::-;22080:34;22076:1;22068:6;22064:14;22057:58;22149:6;22144:2;22136:6;22132:15;22125:31;21940:223;:::o;22169:366::-;22311:3;22332:67;22396:2;22391:3;22332:67;:::i;:::-;22325:74;;22408:93;22497:3;22408:93;:::i;:::-;22526:2;22521:3;22517:12;22510:19;;22169:366;;;:::o;22541:419::-;22707:4;22745:2;22734:9;22730:18;22722:26;;22794:9;22788:4;22784:20;22780:1;22769:9;22765:17;22758:47;22822:131;22948:4;22822:131;:::i;:::-;22814:139;;22541:419;;;:::o;22966:221::-;23106:34;23102:1;23094:6;23090:14;23083:58;23175:4;23170:2;23162:6;23158:15;23151:29;22966:221;:::o;23193:366::-;23335:3;23356:67;23420:2;23415:3;23356:67;:::i;:::-;23349:74;;23432:93;23521:3;23432:93;:::i;:::-;23550:2;23545:3;23541:12;23534:19;;23193:366;;;:::o;23565:419::-;23731:4;23769:2;23758:9;23754:18;23746:26;;23818:9;23812:4;23808:20;23804:1;23793:9;23789:17;23782:47;23846:131;23972:4;23846:131;:::i;:::-;23838:139;;23565:419;;;:::o;23990:224::-;24130:34;24126:1;24118:6;24114:14;24107:58;24199:7;24194:2;24186:6;24182:15;24175:32;23990:224;:::o;24220:366::-;24362:3;24383:67;24447:2;24442:3;24383:67;:::i;:::-;24376:74;;24459:93;24548:3;24459:93;:::i;:::-;24577:2;24572:3;24568:12;24561:19;;24220:366;;;:::o;24592:419::-;24758:4;24796:2;24785:9;24781:18;24773:26;;24845:9;24839:4;24835:20;24831:1;24820:9;24816:17;24809:47;24873:131;24999:4;24873:131;:::i;:::-;24865:139;;24592:419;;;:::o;25017:222::-;25157:34;25153:1;25145:6;25141:14;25134:58;25226:5;25221:2;25213:6;25209:15;25202:30;25017:222;:::o;25245:366::-;25387:3;25408:67;25472:2;25467:3;25408:67;:::i;:::-;25401:74;;25484:93;25573:3;25484:93;:::i;:::-;25602:2;25597:3;25593:12;25586:19;;25245:366;;;:::o;25617:419::-;25783:4;25821:2;25810:9;25806:18;25798:26;;25870:9;25864:4;25860:20;25856:1;25845:9;25841:17;25834:47;25898:131;26024:4;25898:131;:::i;:::-;25890:139;;25617:419;;;:::o;26042:172::-;26182:24;26178:1;26170:6;26166:14;26159:48;26042:172;:::o;26220:366::-;26362:3;26383:67;26447:2;26442:3;26383:67;:::i;:::-;26376:74;;26459:93;26548:3;26459:93;:::i;:::-;26577:2;26572:3;26568:12;26561:19;;26220:366;;;:::o;26592:419::-;26758:4;26796:2;26785:9;26781:18;26773:26;;26845:9;26839:4;26835:20;26831:1;26820:9;26816:17;26809:47;26873:131;26999:4;26873:131;:::i;:::-;26865:139;;26592:419;;;:::o;27017:240::-;27157:34;27153:1;27145:6;27141:14;27134:58;27226:23;27221:2;27213:6;27209:15;27202:48;27017:240;:::o;27263:366::-;27405:3;27426:67;27490:2;27485:3;27426:67;:::i;:::-;27419:74;;27502:93;27591:3;27502:93;:::i;:::-;27620:2;27615:3;27611:12;27604:19;;27263:366;;;:::o;27635:419::-;27801:4;27839:2;27828:9;27824:18;27816:26;;27888:9;27882:4;27878:20;27874:1;27863:9;27859:17;27852:47;27916:131;28042:4;27916:131;:::i;:::-;27908:139;;27635:419;;;:::o;28060:169::-;28200:21;28196:1;28188:6;28184:14;28177:45;28060:169;:::o;28235:366::-;28377:3;28398:67;28462:2;28457:3;28398:67;:::i;:::-;28391:74;;28474:93;28563:3;28474:93;:::i;:::-;28592:2;28587:3;28583:12;28576:19;;28235:366;;;:::o;28607:419::-;28773:4;28811:2;28800:9;28796:18;28788:26;;28860:9;28854:4;28850:20;28846:1;28835:9;28831:17;28824:47;28888:131;29014:4;28888:131;:::i;:::-;28880:139;;28607:419;;;:::o;29032:241::-;29172:34;29168:1;29160:6;29156:14;29149:58;29241:24;29236:2;29228:6;29224:15;29217:49;29032:241;:::o;29279:366::-;29421:3;29442:67;29506:2;29501:3;29442:67;:::i;:::-;29435:74;;29518:93;29607:3;29518:93;:::i;:::-;29636:2;29631:3;29627:12;29620:19;;29279:366;;;:::o;29651:419::-;29817:4;29855:2;29844:9;29840:18;29832:26;;29904:9;29898:4;29894:20;29890:1;29879:9;29875:17;29868:47;29932:131;30058:4;29932:131;:::i;:::-;29924:139;;29651:419;;;:::o;30076:194::-;30116:4;30136:20;30154:1;30136:20;:::i;:::-;30131:25;;30170:20;30188:1;30170:20;:::i;:::-;30165:25;;30214:1;30211;30207:9;30199:17;;30238:1;30232:4;30229:11;30226:37;;;30243:18;;:::i;:::-;30226:37;30076:194;;;;:::o;30276:225::-;30416:34;30412:1;30404:6;30400:14;30393:58;30485:8;30480:2;30472:6;30468:15;30461:33;30276:225;:::o;30507:366::-;30649:3;30670:67;30734:2;30729:3;30670:67;:::i;:::-;30663:74;;30746:93;30835:3;30746:93;:::i;:::-;30864:2;30859:3;30855:12;30848:19;;30507:366;;;:::o;30879:419::-;31045:4;31083:2;31072:9;31068:18;31060:26;;31132:9;31126:4;31122:20;31118:1;31107:9;31103:17;31096:47;31160:131;31286:4;31160:131;:::i;:::-;31152:139;;30879:419;;;:::o;31304:147::-;31405:11;31442:3;31427:18;;31304:147;;;;:::o;31457:114::-;;:::o;31577:398::-;31736:3;31757:83;31838:1;31833:3;31757:83;:::i;:::-;31750:90;;31849:93;31938:3;31849:93;:::i;:::-;31967:1;31962:3;31958:11;31951:18;;31577:398;;;:::o;31981:379::-;32165:3;32187:147;32330:3;32187:147;:::i;:::-;32180:154;;32351:3;32344:10;;31981:379;;;:::o;32366:442::-;32515:4;32553:2;32542:9;32538:18;32530:26;;32566:71;32634:1;32623:9;32619:17;32610:6;32566:71;:::i;:::-;32647:72;32715:2;32704:9;32700:18;32691:6;32647:72;:::i;:::-;32729;32797:2;32786:9;32782:18;32773:6;32729:72;:::i;:::-;32366:442;;;;;;:::o;32814:180::-;32862:77;32859:1;32852:88;32959:4;32956:1;32949:15;32983:4;32980:1;32973:15;33000:180;33048:77;33045:1;33038:88;33145:4;33142:1;33135:15;33169:4;33166:1;33159:15;33186:143;33243:5;33274:6;33268:13;33259:22;;33290:33;33317:5;33290:33;:::i;:::-;33186:143;;;;:::o;33335:351::-;33405:6;33454:2;33442:9;33433:7;33429:23;33425:32;33422:119;;;33460:79;;:::i;:::-;33422:119;33580:1;33605:64;33661:7;33652:6;33641:9;33637:22;33605:64;:::i;:::-;33595:74;;33551:128;33335:351;;;;:::o;33692:85::-;33737:7;33766:5;33755:16;;33692:85;;;:::o;33783:158::-;33841:9;33874:61;33892:42;33901:32;33927:5;33901:32;:::i;:::-;33892:42;:::i;:::-;33874:61;:::i;:::-;33861:74;;33783:158;;;:::o;33947:147::-;34042:45;34081:5;34042:45;:::i;:::-;34037:3;34030:58;33947:147;;:::o;34100:114::-;34167:6;34201:5;34195:12;34185:22;;34100:114;;;:::o;34220:184::-;34319:11;34353:6;34348:3;34341:19;34393:4;34388:3;34384:14;34369:29;;34220:184;;;;:::o;34410:132::-;34477:4;34500:3;34492:11;;34530:4;34525:3;34521:14;34513:22;;34410:132;;;:::o;34548:108::-;34625:24;34643:5;34625:24;:::i;:::-;34620:3;34613:37;34548:108;;:::o;34662:179::-;34731:10;34752:46;34794:3;34786:6;34752:46;:::i;:::-;34830:4;34825:3;34821:14;34807:28;;34662:179;;;;:::o;34847:113::-;34917:4;34949;34944:3;34940:14;34932:22;;34847:113;;;:::o;34996:732::-;35115:3;35144:54;35192:5;35144:54;:::i;:::-;35214:86;35293:6;35288:3;35214:86;:::i;:::-;35207:93;;35324:56;35374:5;35324:56;:::i;:::-;35403:7;35434:1;35419:284;35444:6;35441:1;35438:13;35419:284;;;35520:6;35514:13;35547:63;35606:3;35591:13;35547:63;:::i;:::-;35540:70;;35633:60;35686:6;35633:60;:::i;:::-;35623:70;;35479:224;35466:1;35463;35459:9;35454:14;;35419:284;;;35423:14;35719:3;35712:10;;35120:608;;;34996:732;;;;:::o;35734:831::-;35997:4;36035:3;36024:9;36020:19;36012:27;;36049:71;36117:1;36106:9;36102:17;36093:6;36049:71;:::i;:::-;36130:80;36206:2;36195:9;36191:18;36182:6;36130:80;:::i;:::-;36257:9;36251:4;36247:20;36242:2;36231:9;36227:18;36220:48;36285:108;36388:4;36379:6;36285:108;:::i;:::-;36277:116;;36403:72;36471:2;36460:9;36456:18;36447:6;36403:72;:::i;:::-;36485:73;36553:3;36542:9;36538:19;36529:6;36485:73;:::i;:::-;35734:831;;;;;;;;:::o;36571:807::-;36820:4;36858:3;36847:9;36843:19;36835:27;;36872:71;36940:1;36929:9;36925:17;36916:6;36872:71;:::i;:::-;36953:72;37021:2;37010:9;37006:18;36997:6;36953:72;:::i;:::-;37035:80;37111:2;37100:9;37096:18;37087:6;37035:80;:::i;:::-;37125;37201:2;37190:9;37186:18;37177:6;37125:80;:::i;:::-;37215:73;37283:3;37272:9;37268:19;37259:6;37215:73;:::i;:::-;37298;37366:3;37355:9;37351:19;37342:6;37298:73;:::i;:::-;36571:807;;;;;;;;;:::o;37384:143::-;37441:5;37472:6;37466:13;37457:22;;37488:33;37515:5;37488:33;:::i;:::-;37384:143;;;;:::o;37533:663::-;37621:6;37629;37637;37686:2;37674:9;37665:7;37661:23;37657:32;37654:119;;;37692:79;;:::i;:::-;37654:119;37812:1;37837:64;37893:7;37884:6;37873:9;37869:22;37837:64;:::i;:::-;37827:74;;37783:128;37950:2;37976:64;38032:7;38023:6;38012:9;38008:22;37976:64;:::i;:::-;37966:74;;37921:129;38089:2;38115:64;38171:7;38162:6;38151:9;38147:22;38115:64;:::i;:::-;38105:74;;38060:129;37533:663;;;;;:::o

Metadata Hash

3841827d4766709540005915b3949b55a644b9445014fb6bb179618466ce42f6
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.