Contract 0x71539D09D3890195dDa87A6198B98B75211b72F3 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x145f4e82e6158d4ba88162f6b9243e1a54b6d561c005783171c1c1f3d44d402bCreate Pair598423182023-02-11 0:34:44385 days 3 hrs ago0x63ecfc6d95326b7339b50538778cf543f8f7342a IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.00025343 0.1
0x6bcad401c7964b0e1cd22e2d2af04ab0a29c868fd63c183c385e997ff91f1dc5Create Pair451112652022-12-10 15:46:30447 days 11 hrs ago0xf30fc4ba2c732b82c965e3c435b6074a9135143a IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.00023491 0.1
0xec9dfdb0ff15848773418b175f739b2d54add53102740c7a140fd62409e1fa44Create Pair449911542022-12-10 4:17:32447 days 23 hrs ago0x52747c64174373684ccd0c0b66855d7c093c3b83 IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.00022504 0.1
0xa376e60ea650c4e469c930f1174e14f1ec3d1178b7a697cc9b8f32c17da02365Set Fee To447888632022-12-09 7:38:20448 days 19 hrs agoSwapFish: Deployer IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.000025310.1
0xb00bb61aaf4c097d92d05a5dc8afa10129f22f82c8af9babd7c23c9d4b5e0fdcCreate Pair445129272022-12-08 5:09:15449 days 22 hrs ago0x52747c64174373684ccd0c0b66855d7c093c3b83 IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.00023028 0.1
0xae0397e6d09532c28f31a69e47869ef482166700b95ad364806568a678837375Create Pair438319082022-12-05 14:43:39452 days 12 hrs ago0xf30fc4ba2c732b82c965e3c435b6074a9135143a IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.0002257 0.1
0xe786c79abefd075b01bf77d5bfe33c140db0272f4254b87bd34a21651a880f98Create Pair438317332022-12-05 14:42:53452 days 12 hrs ago0xf30fc4ba2c732b82c965e3c435b6074a9135143a IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.0002257 0.1
0xa01bacddb207fc2cb0c1ece2883cc880432bbe8240e60b4d746b048aa2bb7315Set Fee To359740282022-11-07 9:52:17480 days 17 hrs agoSwapFish: Deployer IN  0x71539d09d3890195dda87a6198b98b75211b72f30 ETH0.00001697 0.1
0xf3991cf0ad8e770b1c6867d89e825ac209145ce89eff37e8e86413b7481c20110x60806040359721252022-11-07 9:43:13480 days 17 hrs agoSwapFish: Deployer IN  Create: UniswapV2Factory0 ETH0.000765130.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd1c5e209d371dabaac6032a236050ee2f5da05175a60fa487c63d7ef725f6af51151916722023-07-26 17:23:16219 days 10 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xe73fcd6a3f5182e9f4d71ba937ca42589cc89c20c33190b6b4a8cf2cbe512ed71031616502023-06-20 17:46:02255 days 9 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xf0d0c1fa6169a7a467dfbbd3d510d762063a103ad03761c4ba0d0f294069be0f1031328772023-06-20 15:45:50255 days 11 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xd8d399e62e4cb0d77198b3f8b9c65c571745d297da809b2ee5717718e731f2e71031157622023-06-20 14:34:22255 days 13 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xf2af511c6068a229cae262a897fcee8b6ca081ff551f1d525fc42a37ab22d8d21022039112023-06-17 20:43:01258 days 6 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xc3c92a5e937545a976c21c97fc8a3a685df58576b19502a7cd18d19ec1edc73e1022021502023-06-17 20:35:31258 days 7 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0x4dfb26be82858b4b184a35c7a4c38891b1671a66f8a5bea963d9c7b904e727031018604032023-06-16 20:08:12259 days 7 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0x89ddd5f2a2be8144bb8724e9670bb1329bca91100a75978c1d77d5107d483e6d920583552023-05-18 20:42:54288 days 6 hrs ago 0x71539d09d3890195dda87a6198b98b75211b72f3  Contract Creation0 ETH
0xe6eacc865bf18a0cf45108a404c70b6206d3dc433661b6b5805865d1b4a4e33e720857682023-03-21 10:15:05346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x3a0f9e3625dab48f5497d5fc9f46b1fbd07cf1ed0f98295b1899bd2cb6f80ad3720857592023-03-21 10:15:03346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x565b7da6f79bc2c6164379e2008f4787a867e6be962e0b6b0164fc00f2c88bb7720857452023-03-21 10:15:00346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xdfd47402051d368110637eb75466578b90724512266f5b5c4cc0afa278d91280720857282023-03-21 10:14:55346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x25b62c6a94ae4a75c3e38775461143ad8bede6ee429ea3ea41736039b9370854720850742023-03-21 10:12:10346 days 17 hrs ago 0x8bc2cd9dab840231a0dab5b747b8a6085c4ea459 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xc7d2ad6bd8a96b53c64e3d7e531ae48134650192974dba4c5503c457cc58de34720850092023-03-21 10:11:53346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x97bbd06af5b3359a85a392c8db45610a854187ebf375be71a067b28818246ed7720847032023-03-21 10:10:41346 days 17 hrs ago 0x570eab8422160840ce3b7b2be4c71d657659868f 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xed1a66275f25542150f836c451b9d99615aea730d79526d460b7b5d4b82423cb720838682023-03-21 10:07:09346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x7828d079ab6217b4cafc1cd242285661dffc255e5701fdc0c99272228c0891fc720832882023-03-21 10:04:51346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x30c405a160acfb045444b17eb91cf90f37ee93d152c71c3e6f2374f0628f6ece720832862023-03-21 10:04:50346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x14a75f5cbfc28688c140badfa403d43c635b2f28e5f131f2b6b4760d20eb4b67720825562023-03-21 10:01:47346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xbb28ab353fa9aea843ce61ee75aa721b05a3cf25e3e0fb17b50040f272ce0dfe720819902023-03-21 9:59:24346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x744639268e05d0aedb5acbbefa3bfbd32df4b1a557e1d44c681f7033a9593d10720815872023-03-21 9:57:48346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xf24982612b255505fceefa6046d977a7fec78ceee5aa2896ae3470f0faea216a720800872023-03-21 9:51:40346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0x09156794613616e31e2221c1c6da0038efa6fdbfc270991b3c1975ea04e3df98720799482023-03-21 9:51:05346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xd89c617950c8bfd69b87b27d4bf7aae7e70282ae393dc808604eeddf51ec8a97720790632023-03-21 9:47:22346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
0xe22dafd73b32ab276ca32b86af89e98b64da7810ae03e7d1197c23d5d0caaee0720783382023-03-21 9:44:27346 days 17 hrs ago 0xaa70d7ec08e297d89e606884de0563bf54a9ad89 0x71539d09d3890195dda87a6198b98b75211b72f30 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniswapV2Factory

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 9 : UniswapV2Factory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import './interfaces/IUniswapV2Factory.sol';
import './UniswapV2Pair.sol';

contract UniswapV2Factory is IUniswapV2Factory {
    address public override feeTo;
    address public override feeToSetter;

    mapping(address => mapping(address => address)) public override getPair;
    address[] public override allPairs;

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

    constructor(address _feeToSetter) public {
        feeToSetter = _feeToSetter;
    }

    function allPairsLength() external override view returns (uint) {
        return allPairs.length;
    }

    function pairCodeHash() external pure returns (bytes32) {
        return keccak256(type(UniswapV2Pair).creationCode);
    }

    function createPair(address tokenA, address tokenB) external override returns (address pair) {
        require(tokenA != tokenB, 'UniswapV2: IDENTICAL_ADDRESSES');
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'UniswapV2: ZERO_ADDRESS');
        require(getPair[token0][token1] == address(0), 'UniswapV2: PAIR_EXISTS'); // single check is sufficient
        bytes memory bytecode = type(UniswapV2Pair).creationCode;
        bytes32 salt = keccak256(abi.encodePacked(token0, token1));
        assembly {
            pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
        UniswapV2Pair(pair).initialize(token0, token1);
        getPair[token0][token1] = pair;
        getPair[token1][token0] = pair; // populate mapping in the reverse direction
        allPairs.push(pair);
        emit PairCreated(token0, token1, pair, allPairs.length);
    }

    function setFeeTo(address _feeTo) external override {
        require(_feeTo != address(0), 'Null address not allowed!');
        require(msg.sender == feeToSetter, 'UniswapV2: FORBIDDEN');
        feeTo = _feeTo;
    }

    function setFeeToSetter(address _feeToSetter) external override {
        require(_feeToSetter != address(0), 'Null address not allowed!');
        require(msg.sender == feeToSetter, 'UniswapV2: FORBIDDEN');
        feeToSetter = _feeToSetter;
    }

}

File 2 of 9 : UniswapV2Pair.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import './UniswapV2ERC20.sol';
import './libraries/Math.sol';
import './libraries/UQ112x112.sol';
import './interfaces/IERC20.sol';
import './interfaces/IUniswapV2Factory.sol';
import './interfaces/IUniswapV2Callee.sol';

contract UniswapV2Pair is UniswapV2ERC20 {
    using SafeMathUniswap  for uint;
    using UQ112x112 for uint224;

    uint public constant MINIMUM_LIQUIDITY = 10**3;
    bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

    address public factory;
    address public token0;
    address public token1;

    uint112 private reserve0;           // uses single storage slot, accessible via getReserves
    uint112 private reserve1;           // uses single storage slot, accessible via getReserves
    uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

    uint public price0CumulativeLast;
    uint public price1CumulativeLast;
    uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event
    uint32 public swapFee = 17; // uses 0.17% default

    uint private unlocked = 1;
    modifier lock() {
        require(unlocked == 1, 'UniswapV2: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }

    function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
        _reserve0 = reserve0;
        _reserve1 = reserve1;
        _blockTimestampLast = blockTimestampLast;
    }

    function _safeTransfer(address token, address to, uint value) private {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED');
    }

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

    constructor() public {
        factory = msg.sender;
    }

    // called once by the factory at time of deployment
    function initialize(address _token0, address _token1) external {
        require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check
        token0 = _token0;
        token1 = _token1;
    }

    function setSwapFee(uint32 _swapFee) external {
        require(_swapFee > 0, "UniswapPair: lower then 0");
        require(msg.sender == factory, 'UniswapPair: FORBIDDEN');
        require(_swapFee <= 1000, 'UniswapPair: FORBIDDEN_FEE');
        swapFee = _swapFee;
    }

    // update reserves and, on the first call per block, price accumulators
    function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
        require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'UniswapV2: OVERFLOW');
        uint32 blockTimestamp = uint32(block.timestamp % 2**32);
        uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
        if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
            // * never overflows, and + overflow is desired
            price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
            price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
        }
        reserve0 = uint112(balance0);
        reserve1 = uint112(balance1);
        blockTimestampLast = blockTimestamp;
        emit Sync(reserve0, reserve1);
    }

    function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
        address feeTo = IUniswapV2Factory(factory).feeTo();
        feeOn = feeTo != address(0);
        uint _kLast = kLast; // gas savings
        if (feeOn) {
            if (_kLast != 0) {
                uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
                uint rootKLast = Math.sqrt(_kLast);
                if (rootK > rootKLast) {
                    uint numerator = totalSupply.mul(rootK.sub(rootKLast)).mul(2);
                    uint denominator = rootK.mul(3).add(rootKLast.mul(2));
                    uint liquidity = numerator / denominator;
                    if (liquidity > 0) _mint(feeTo, liquidity);
                }
            }
        } else if (_kLast != 0) {
            kLast = 0;
        }
    }

    // this low-level function should be called from a contract which performs important safety checks
    function mint(address to) external lock returns (uint liquidity) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        uint balance0 = IERC20Uniswap(token0).balanceOf(address(this));
        uint balance1 = IERC20Uniswap(token1).balanceOf(address(this));
        uint amount0 = balance0.sub(_reserve0);
        uint amount1 = balance1.sub(_reserve1);

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        if (_totalSupply == 0) {
            liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
            _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
        } else {
            liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
        }
        require(liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED');
        _mint(to, liquidity);

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Mint(msg.sender, amount0, amount1);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function burn(address to) external lock returns (uint amount0, uint amount1) {
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        address _token0 = token0;                                // gas savings
        address _token1 = token1;                                // gas savings
        uint balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        uint balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        uint liquidity = balanceOf[address(this)];

        bool feeOn = _mintFee(_reserve0, _reserve1);
        uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
        amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
        amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
        require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
        _burn(address(this), liquidity);
        _safeTransfer(_token0, to, amount0);
        _safeTransfer(_token1, to, amount1);
        balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        balance1 = IERC20Uniswap(_token1).balanceOf(address(this));

        _update(balance0, balance1, _reserve0, _reserve1);
        if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
        emit Burn(msg.sender, amount0, amount1, to);
    }

    // this low-level function should be called from a contract which performs important safety checks
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
        require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
        (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
        require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

        uint balance0;
        uint balance1;
        { // scope for _token{0,1}, avoids stack too deep errors
        address _token0 = token0;
        address _token1 = token1;
        require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
        if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
        if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
        if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
        balance0 = IERC20Uniswap(_token0).balanceOf(address(this));
        balance1 = IERC20Uniswap(_token1).balanceOf(address(this));
        }
        uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
        uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
        require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
        { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
        uint _swapFee = swapFee;
        uint balance0Adjusted = (balance0.mul(10000).sub(amount0In.mul(_swapFee)));
        uint balance1Adjusted = (balance1.mul(10000).sub(amount1In.mul(_swapFee)));
        require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(10000**2), 'UniswapV2: K');
        }

        _update(balance0, balance1, _reserve0, _reserve1);
        emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
    }

    // force balances to match reserves
    function skim(address to) external lock {
        address _token0 = token0; // gas savings
        address _token1 = token1; // gas savings
        _safeTransfer(_token0, to, IERC20Uniswap(_token0).balanceOf(address(this)).sub(reserve0));
        _safeTransfer(_token1, to, IERC20Uniswap(_token1).balanceOf(address(this)).sub(reserve1));
    }

    // force reserves to match balances
    function sync() external lock {
        _update(IERC20Uniswap(token0).balanceOf(address(this)), IERC20Uniswap(token1).balanceOf(address(this)), reserve0, reserve1);
    }
}

File 3 of 9 : IUniswapV2Factory.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

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

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

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

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

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

File 4 of 9 : UniswapV2ERC20.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

import './libraries/SafeMath.sol';

contract UniswapV2ERC20 {
    using SafeMathUniswap for uint;

    string public constant name = 'SwapFish LP';
    string public constant symbol = 'FISH LP';
    uint8 public constant decimals = 18;
    uint  public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bytes32 public DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint) public nonces;

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

    constructor() public {
        uint chainId;
        assembly {
            chainId := chainid()
        }
        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),
                keccak256(bytes(name)),
                keccak256(bytes('1')),
                chainId,
                address(this)
            )
        );
    }

    function _mint(address to, uint value) internal {
        totalSupply = totalSupply.add(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint value) internal {
        balanceOf[from] = balanceOf[from].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Transfer(from, address(0), value);
    }

    function _approve(address owner, address spender, uint value) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(address from, address to, uint value) private {
        balanceOf[from] = balanceOf[from].sub(value);
        balanceOf[to] = balanceOf[to].add(value);
        emit Transfer(from, to, value);
    }

    function approve(address spender, uint value) external returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint value) external returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint value) external returns (bool) {
        if (allowance[from][msg.sender] != uint(-1)) {
            allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {
        require(deadline >= block.timestamp, 'UniswapV2: EXPIRED');
        bytes32 digest = keccak256(
            abi.encodePacked(
                '\x19\x01',
                DOMAIN_SEPARATOR,
                keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(recoveredAddress != address(0) && recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE');
        _approve(owner, spender, value);
    }
}

File 5 of 9 : UQ112x112.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))

// range: [0, 2**112 - 1]
// resolution: 1 / 2**112

library UQ112x112 {
    uint224 constant Q112 = 2**112;

    // encode a uint112 as a UQ112x112
    function encode(uint112 y) internal pure returns (uint224 z) {
        z = uint224(y) * Q112; // never overflows
    }

    // divide a UQ112x112 by a uint112, returning a UQ112x112
    function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {
        z = x / uint224(y);
    }
}

File 6 of 9 : Math.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing various math operations

library Math {
    function min(uint x, uint y) internal pure returns (uint z) {
        z = x < y ? x : y;
    }

    // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)
    function sqrt(uint y) internal pure returns (uint z) {
        if (y > 3) {
            z = y;
            uint x = y / 2 + 1;
            while (x < z) {
                z = x;
                x = (y / x + x) / 2;
            }
        } else if (y != 0) {
            z = 1;
        }
    }
}

File 7 of 9 : IUniswapV2Callee.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

interface IUniswapV2Callee {
    function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;
}

File 8 of 9 : IERC20.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.5.0;

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

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

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

File 9 of 9 : SafeMath.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity =0.6.12;

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)

library SafeMathUniswap {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token0","type":"address"},{"indexed":true,"internalType":"address","name":"token1","type":"address"},{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allPairsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"createPair","outputs":[{"internalType":"address","name":"pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToSetter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_feeTo","type":"address"}],"name":"setFeeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeToSetter","type":"address"}],"name":"setFeeToSetter","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50604051612c6f380380612c6f8339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055612c0c806100636000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80639aab9248116100665780639aab9248146100fb578063a2e74af614610103578063c9c653961461012b578063e6a4390514610159578063f46901ed1461018757610093565b8063017e7e5814610098578063094b7415146100bc5780631e3dd18b146100c4578063574f2ba3146100e1575b600080fd5b6100a06101ad565b604080516001600160a01b039092168252519081900360200190f35b6100a06101bc565b6100a0600480360360208110156100da57600080fd5b50356101cb565b6100e96101f2565b60408051918252519081900360200190f35b6100e96101f8565b6101296004803603602081101561011957600080fd5b50356001600160a01b031661022a565b005b6100a06004803603604081101561014157600080fd5b506001600160a01b03813581169160200135166102f9565b6100a06004803603604081101561016f57600080fd5b506001600160a01b0381358116916020013516610624565b6101296004803603602081101561019d57600080fd5b50356001600160a01b031661064a565b6000546001600160a01b031681565b6001546001600160a01b031681565b600381815481106101d857fe5b6000918252602090912001546001600160a01b0316905081565b60035490565b60006040518060200161020a90610719565b6020820181038252601f19601f8201166040525080519060200120905090565b6001600160a01b038116610281576040805162461bcd60e51b81526020600482015260196024820152784e756c6c2061646472657373206e6f7420616c6c6f7765642160381b604482015290519081900360640190fd5b6001546001600160a01b031633146102d7576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160a01b0316836001600160a01b03161415610362576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b600080836001600160a01b0316856001600160a01b031610610385578385610388565b84845b90925090506001600160a01b0382166103e8576040805162461bcd60e51b815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526002602090815260408083208585168452909152902054161561045b576040805162461bcd60e51b8152602060048201526016602482015275556e697377617056323a20504149525f45584953545360501b604482015290519081900360640190fd5b60606040518060200161046d90610719565b6020820181038252601f19601f8201166040525090506000838360405160200180836001600160a01b031660601b8152601401826001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f59450846001600160a01b031663485cc95585856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b505050506001600160a01b0384811660008181526002602081815260408084208987168086529083528185208054978d166001600160a01b031998891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6001600160a01b0381166106a1576040805162461bcd60e51b81526020600482015260196024820152784e756c6c2061646472657373206e6f7420616c6c6f7765642160381b604482015290519081900360640190fd5b6001546001600160a01b031633146106f7576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6124b0806107278339019056fe6080604052600c805463ffffffff191660111790556001600d5534801561002557600080fd5b50604080518082018252600b81526a05377617046697368204c560ac1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f4fe7afd9382cefba0e70c994378ed5cbbe47ef6b6def8edaa207515575a4ad48818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612397806101196000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636a62784211610104578063ba9a7a56116100a2578063d505accf11610071578063d505accf14610583578063d6d788c3146105d4578063dd62ed3e146105f7578063fff6cae914610625576101cf565b8063ba9a7a5614610545578063bc25cf771461054d578063c45a015514610573578063d21220a71461057b576101cf565b80637ecebe00116100de5780637ecebe00146104ac57806389afcb44146104d257806395d89b4114610511578063a9059cbb14610519576101cf565b80636a6278421461045857806370a082311461047e5780637464fc3d146104a4576101cf565b806330adf81f11610171578063485cc9551161014b578063485cc955146103f957806354cf2aeb146104275780635909c0d5146104485780635a3d549314610450576101cf565b806330adf81f146103cb578063313ce567146103d35780633644e515146103f1576101cf565b8063095ea7b3116101ad578063095ea7b3146103175780630dfe16811461035757806318160ddd1461037b57806323b872dd14610395576101cf565b8063022c0d9f146101d457806306fdde03146102625780630902f1ac146102df575b600080fd5b610260600480360360808110156101ea57600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561022157600080fd5b82018360208201111561023357600080fd5b8035906020019184600183028401116401000000008311171561025557600080fd5b50909250905061062d565b005b61026a610b47565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a457818101518382015260200161028c565b50505050905090810190601f1680156102d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e7610b6e565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103436004803603604081101561032d57600080fd5b506001600160a01b038135169060200135610b98565b604080519115158252519081900360200190f35b61035f610baf565b604080516001600160a01b039092168252519081900360200190f35b610383610bbe565b60408051918252519081900360200190f35b610343600480360360608110156103ab57600080fd5b506001600160a01b03813581169160208101359091169060400135610bc4565b610383610c58565b6103db610c7c565b6040805160ff9092168252519081900360200190f35b610383610c81565b6102606004803603604081101561040f57600080fd5b506001600160a01b0381358116916020013516610c87565b61042f610d0b565b6040805163ffffffff9092168252519081900360200190f35b610383610d17565b610383610d1d565b6103836004803603602081101561046e57600080fd5b50356001600160a01b0316610d23565b6103836004803603602081101561049457600080fd5b50356001600160a01b0316610fff565b610383611011565b610383600480360360208110156104c257600080fd5b50356001600160a01b0316611017565b6104f8600480360360208110156104e857600080fd5b50356001600160a01b0316611029565b6040805192835260208301919091528051918290030190f35b61026a6113bd565b6103436004803603604081101561052f57600080fd5b506001600160a01b0381351690602001356113e0565b6103836113ed565b6102606004803603602081101561056357600080fd5b50356001600160a01b03166113f3565b61035f611565565b61035f611574565b610260600480360360e081101561059957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611583565b610260600480360360208110156105ea57600080fd5b503563ffffffff16611785565b6103836004803603604081101561060d57600080fd5b506001600160a01b03813581169160200135166118b1565b6102606118ce565b600d54600114610678576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d558415158061068b5750600084115b6106c65760405162461bcd60e51b81526004018080602001828103825260258152602001806122a86025913960400191505060405180910390fd5b6000806106d1610b6e565b5091509150816001600160701b0316871080156106f65750806001600160701b031686105b6107315760405162461bcd60e51b81526004018080602001828103825260218152602001806122f16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b0391821691908116908916821480159061076f5750806001600160a01b0316896001600160a01b031614155b6107b8576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a156107c9576107c9828a8d611a30565b89156107da576107da818a8c611a30565b861561088c57886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d60208110156108fc57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d602081101561097257600080fd5b5051925060009150506001600160701b0385168a900383116109955760006109a4565b89856001600160701b03160383035b9050600089856001600160701b03160383116109c15760006109d0565b89856001600160701b03160383035b905060008211806109e15750600081115b610a1c5760405162461bcd60e51b81526004018080602001828103825260248152602001806122cd6024913960400191505060405180910390fd5b600c5463ffffffff90811690600090610a4f90610a3d9086908590611bca16565b610a4988612710611bca565b90611c2d565b90506000610a60610a3d8585611bca565b9050610a866305f5e100610a806001600160701b038c8116908c16611bca565b90611bca565b610a908383611bca565b1015610ad2576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b505050610ae184848888611c7d565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600d55505050505050505050565b6040518060400160405280600b81526020016a05377617046697368204c560ac1b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610ba5338484611e3c565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610c43576001600160a01b0384166000908152600260209081526040808320338452909152902054610c1e9083611c2d565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c4e848484611e9e565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610cdd576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b600c5463ffffffff1681565b60095481565b600a5481565b6000600d54600114610d70576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d81905580610d80610b6e565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d6020811015610dfe57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e5157600080fd5b505afa158015610e65573d6000803e3d6000fd5b505050506040513d6020811015610e7b57600080fd5b505190506000610e94836001600160701b038716611c2d565b90506000610eab836001600160701b038716611c2d565b90506000610eb98787611f4c565b60005490915080610ef057610edc6103e8610a49610ed78787611bca565b61209b565b9850610eeb60006103e86120ed565b610f33565b610f306001600160701b038916610f078684611bca565b81610f0e57fe5b046001600160701b038916610f238685611bca565b81610f2a57fe5b04612177565b98505b60008911610f725760405162461bcd60e51b815260040180806020018281038252602881526020018061233a6028913960400191505060405180910390fd5b610f7c8a8a6120ed565b610f8886868a8a611c7d565b8115610fb257600854610fae906001600160701b0380821691600160701b900416611bca565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600d5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600d54600114611077576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d81905580611087610b6e565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156110e357600080fd5b505afa1580156110f7573d6000803e3d6000fd5b505050506040513d602081101561110d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561115b57600080fd5b505afa15801561116f573d6000803e3d6000fd5b505050506040513d602081101561118557600080fd5b5051306000908152600160205260408120549192506111a48888611f4c565b600054909150806111b58487611bca565b816111bc57fe5b049a50806111ca8486611bca565b816111d157fe5b04995060008b1180156111e4575060008a115b61121f5760405162461bcd60e51b81526004018080602001828103825260288152602001806123126028913960400191505060405180910390fd5b611229308461218f565b611234878d8d611a30565b61123f868d8c611a30565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561128557600080fd5b505afa158015611299573d6000803e3d6000fd5b505050506040513d60208110156112af57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156112fb57600080fd5b505afa15801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b5051935061133585858b8b611c7d565b811561135f5760085461135b906001600160701b0380821691600160701b900416611bca565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600d81905550915091565b60405180604001604052806007815260200166046495348204c560cc1b81525081565b6000610ba5338484611e9e565b6103e881565b600d5460011461143e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926114e792859287926114e2926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156114b057600080fd5b505afa1580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b505190611c2d565b611a30565b61155b81846114e26008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114b057600080fd5b50506001600d5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156115cd576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156116e8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061171e5750886001600160a01b0316816001600160a01b0316145b61176f576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61177a898989611e3c565b505050505050505050565b60008163ffffffff16116117e0576040805162461bcd60e51b815260206004820152601960248201527f556e6973776170506169723a206c6f776572207468656e203000000000000000604482015290519081900360640190fd5b6005546001600160a01b03163314611838576040805162461bcd60e51b81526020600482015260166024820152752ab734b9bbb0b82830b4b91d102327a92124a22222a760511b604482015290519081900360640190fd5b6103e88163ffffffff161115611895576040805162461bcd60e51b815260206004820152601a60248201527f556e6973776170506169723a20464f5242494444454e5f464545000000000000604482015290519081900360640190fd5b600c805463ffffffff191663ffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205481565b600d54600114611919576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d55600654604080516370a0823160e01b81523060048201529051611a29926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561196a57600080fd5b505afa15801561197e573d6000803e3d6000fd5b505050506040513d602081101561199457600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b50516008546001600160701b0380821691600160701b900416611c7d565b6001600d55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611add5780518252601f199092019160209182019101611abe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b3f576040519150601f19603f3d011682016040523d82523d6000602084013e611b44565b606091505b5091509150818015611b72575080511580611b725750808060200190516020811015611b6f57600080fd5b50515b611bc3576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611be557505080820282828281611be257fe5b04145b610ba9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610ba9576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c9b57506001600160701b038311155b611ce2576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d1257506001600160701b03841615155b8015611d2657506001600160701b03831615155b15611d91578063ffffffff16611d4e85611d3f86612221565b6001600160e01b031690612233565b600980546001600160e01b03929092169290920201905563ffffffff8116611d7984611d3f87612221565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611ec19082611c2d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611ef09082612258565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9d57600080fd5b505afa158015611fb1573d6000803e3d6000fd5b505050506040513d6020811015611fc757600080fd5b5051600b546001600160a01b038216158015945091925090612087578015612082576000612004610ed76001600160701b03888116908816611bca565b905060006120118361209b565b90508082111561207f5760006120386002610a8061202f8686611c2d565b60005490611bca565b9050600061205b61204a846002611bca565b612055866003611bca565b90612258565b9050600081838161206857fe5b049050801561207b5761207b87826120ed565b5050505b50505b612093565b8015612093576000600b555b505092915050565b600060038211156120de575080600160028204015b818110156120d8578091506002818285816120c757fe5b0401816120d057fe5b0490506120b0565b506120e8565b81156120e8575060015b919050565b6000546120fa9082612258565b60009081556001600160a01b03831681526001602052604090205461211f9082612258565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121865781612188565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121b29082611c2d565b6001600160a01b038316600090815260016020526040812091909155546121d99082611c2d565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161225057fe5b049392505050565b80820182811015610ba9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220a588a3b14e1f41d5d554038d1d24490eae6b8765380ee70b4e82e2b4680a254864736f6c634300060c0033a2646970667358221220e993b7864e3307706e0189c33acd61a8b8f9f9c47c3a2a0679c450ac713371c064736f6c634300060c0033000000000000000000000000d8a3275740b49015e5cdff7904a200ee4c851cbb

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c80639aab9248116100665780639aab9248146100fb578063a2e74af614610103578063c9c653961461012b578063e6a4390514610159578063f46901ed1461018757610093565b8063017e7e5814610098578063094b7415146100bc5780631e3dd18b146100c4578063574f2ba3146100e1575b600080fd5b6100a06101ad565b604080516001600160a01b039092168252519081900360200190f35b6100a06101bc565b6100a0600480360360208110156100da57600080fd5b50356101cb565b6100e96101f2565b60408051918252519081900360200190f35b6100e96101f8565b6101296004803603602081101561011957600080fd5b50356001600160a01b031661022a565b005b6100a06004803603604081101561014157600080fd5b506001600160a01b03813581169160200135166102f9565b6100a06004803603604081101561016f57600080fd5b506001600160a01b0381358116916020013516610624565b6101296004803603602081101561019d57600080fd5b50356001600160a01b031661064a565b6000546001600160a01b031681565b6001546001600160a01b031681565b600381815481106101d857fe5b6000918252602090912001546001600160a01b0316905081565b60035490565b60006040518060200161020a90610719565b6020820181038252601f19601f8201166040525080519060200120905090565b6001600160a01b038116610281576040805162461bcd60e51b81526020600482015260196024820152784e756c6c2061646472657373206e6f7420616c6c6f7765642160381b604482015290519081900360640190fd5b6001546001600160a01b031633146102d7576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160a01b0316836001600160a01b03161415610362576040805162461bcd60e51b815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b600080836001600160a01b0316856001600160a01b031610610385578385610388565b84845b90925090506001600160a01b0382166103e8576040805162461bcd60e51b815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526002602090815260408083208585168452909152902054161561045b576040805162461bcd60e51b8152602060048201526016602482015275556e697377617056323a20504149525f45584953545360501b604482015290519081900360640190fd5b60606040518060200161046d90610719565b6020820181038252601f19601f8201166040525090506000838360405160200180836001600160a01b031660601b8152601401826001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f59450846001600160a01b031663485cc95585856040518363ffffffff1660e01b815260040180836001600160a01b03168152602001826001600160a01b0316815260200192505050600060405180830381600087803b15801561053a57600080fd5b505af115801561054e573d6000803e3d6000fd5b505050506001600160a01b0384811660008181526002602081815260408084208987168086529083528185208054978d166001600160a01b031998891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b60026020908152600092835260408084209091529082529020546001600160a01b031681565b6001600160a01b0381166106a1576040805162461bcd60e51b81526020600482015260196024820152784e756c6c2061646472657373206e6f7420616c6c6f7765642160381b604482015290519081900360640190fd5b6001546001600160a01b031633146106f7576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6124b0806107278339019056fe6080604052600c805463ffffffff191660111790556001600d5534801561002557600080fd5b50604080518082018252600b81526a05377617046697368204c560ac1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f4fe7afd9382cefba0e70c994378ed5cbbe47ef6b6def8edaa207515575a4ad48818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120600355600580546001600160a01b03191633179055612397806101196000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80636a62784211610104578063ba9a7a56116100a2578063d505accf11610071578063d505accf14610583578063d6d788c3146105d4578063dd62ed3e146105f7578063fff6cae914610625576101cf565b8063ba9a7a5614610545578063bc25cf771461054d578063c45a015514610573578063d21220a71461057b576101cf565b80637ecebe00116100de5780637ecebe00146104ac57806389afcb44146104d257806395d89b4114610511578063a9059cbb14610519576101cf565b80636a6278421461045857806370a082311461047e5780637464fc3d146104a4576101cf565b806330adf81f11610171578063485cc9551161014b578063485cc955146103f957806354cf2aeb146104275780635909c0d5146104485780635a3d549314610450576101cf565b806330adf81f146103cb578063313ce567146103d35780633644e515146103f1576101cf565b8063095ea7b3116101ad578063095ea7b3146103175780630dfe16811461035757806318160ddd1461037b57806323b872dd14610395576101cf565b8063022c0d9f146101d457806306fdde03146102625780630902f1ac146102df575b600080fd5b610260600480360360808110156101ea57600080fd5b8135916020810135916001600160a01b03604083013516919081019060808101606082013564010000000081111561022157600080fd5b82018360208201111561023357600080fd5b8035906020019184600183028401116401000000008311171561025557600080fd5b50909250905061062d565b005b61026a610b47565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a457818101518382015260200161028c565b50505050905090810190601f1680156102d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102e7610b6e565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b6103436004803603604081101561032d57600080fd5b506001600160a01b038135169060200135610b98565b604080519115158252519081900360200190f35b61035f610baf565b604080516001600160a01b039092168252519081900360200190f35b610383610bbe565b60408051918252519081900360200190f35b610343600480360360608110156103ab57600080fd5b506001600160a01b03813581169160208101359091169060400135610bc4565b610383610c58565b6103db610c7c565b6040805160ff9092168252519081900360200190f35b610383610c81565b6102606004803603604081101561040f57600080fd5b506001600160a01b0381358116916020013516610c87565b61042f610d0b565b6040805163ffffffff9092168252519081900360200190f35b610383610d17565b610383610d1d565b6103836004803603602081101561046e57600080fd5b50356001600160a01b0316610d23565b6103836004803603602081101561049457600080fd5b50356001600160a01b0316610fff565b610383611011565b610383600480360360208110156104c257600080fd5b50356001600160a01b0316611017565b6104f8600480360360208110156104e857600080fd5b50356001600160a01b0316611029565b6040805192835260208301919091528051918290030190f35b61026a6113bd565b6103436004803603604081101561052f57600080fd5b506001600160a01b0381351690602001356113e0565b6103836113ed565b6102606004803603602081101561056357600080fd5b50356001600160a01b03166113f3565b61035f611565565b61035f611574565b610260600480360360e081101561059957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611583565b610260600480360360208110156105ea57600080fd5b503563ffffffff16611785565b6103836004803603604081101561060d57600080fd5b506001600160a01b03813581169160200135166118b1565b6102606118ce565b600d54600114610678576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d558415158061068b5750600084115b6106c65760405162461bcd60e51b81526004018080602001828103825260258152602001806122a86025913960400191505060405180910390fd5b6000806106d1610b6e565b5091509150816001600160701b0316871080156106f65750806001600160701b031686105b6107315760405162461bcd60e51b81526004018080602001828103825260218152602001806122f16021913960400191505060405180910390fd5b60065460075460009182916001600160a01b0391821691908116908916821480159061076f5750806001600160a01b0316896001600160a01b031614155b6107b8576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a156107c9576107c9828a8d611a30565b89156107da576107da818a8c611a30565b861561088c57886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156108d257600080fd5b505afa1580156108e6573d6000803e3d6000fd5b505050506040513d60208110156108fc57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d602081101561097257600080fd5b5051925060009150506001600160701b0385168a900383116109955760006109a4565b89856001600160701b03160383035b9050600089856001600160701b03160383116109c15760006109d0565b89856001600160701b03160383035b905060008211806109e15750600081115b610a1c5760405162461bcd60e51b81526004018080602001828103825260248152602001806122cd6024913960400191505060405180910390fd5b600c5463ffffffff90811690600090610a4f90610a3d9086908590611bca16565b610a4988612710611bca565b90611c2d565b90506000610a60610a3d8585611bca565b9050610a866305f5e100610a806001600160701b038c8116908c16611bca565b90611bca565b610a908383611bca565b1015610ad2576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b505050610ae184848888611c7d565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600d55505050505050505050565b6040518060400160405280600b81526020016a05377617046697368204c560ac1b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610ba5338484611e3c565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610c43576001600160a01b0384166000908152600260209081526040808320338452909152902054610c1e9083611c2d565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c4e848484611e9e565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610cdd576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b600c5463ffffffff1681565b60095481565b600a5481565b6000600d54600114610d70576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d81905580610d80610b6e565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610dd457600080fd5b505afa158015610de8573d6000803e3d6000fd5b505050506040513d6020811015610dfe57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e5157600080fd5b505afa158015610e65573d6000803e3d6000fd5b505050506040513d6020811015610e7b57600080fd5b505190506000610e94836001600160701b038716611c2d565b90506000610eab836001600160701b038716611c2d565b90506000610eb98787611f4c565b60005490915080610ef057610edc6103e8610a49610ed78787611bca565b61209b565b9850610eeb60006103e86120ed565b610f33565b610f306001600160701b038916610f078684611bca565b81610f0e57fe5b046001600160701b038916610f238685611bca565b81610f2a57fe5b04612177565b98505b60008911610f725760405162461bcd60e51b815260040180806020018281038252602881526020018061233a6028913960400191505060405180910390fd5b610f7c8a8a6120ed565b610f8886868a8a611c7d565b8115610fb257600854610fae906001600160701b0380821691600160701b900416611bca565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600d5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600d54600114611077576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d81905580611087610b6e565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156110e357600080fd5b505afa1580156110f7573d6000803e3d6000fd5b505050506040513d602081101561110d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561115b57600080fd5b505afa15801561116f573d6000803e3d6000fd5b505050506040513d602081101561118557600080fd5b5051306000908152600160205260408120549192506111a48888611f4c565b600054909150806111b58487611bca565b816111bc57fe5b049a50806111ca8486611bca565b816111d157fe5b04995060008b1180156111e4575060008a115b61121f5760405162461bcd60e51b81526004018080602001828103825260288152602001806123126028913960400191505060405180910390fd5b611229308461218f565b611234878d8d611a30565b61123f868d8c611a30565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561128557600080fd5b505afa158015611299573d6000803e3d6000fd5b505050506040513d60208110156112af57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156112fb57600080fd5b505afa15801561130f573d6000803e3d6000fd5b505050506040513d602081101561132557600080fd5b5051935061133585858b8b611c7d565b811561135f5760085461135b906001600160701b0380821691600160701b900416611bca565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600d81905550915091565b60405180604001604052806007815260200166046495348204c560cc1b81525081565b6000610ba5338484611e9e565b6103e881565b600d5460011461143e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926114e792859287926114e2926001600160701b03169185916370a0823191602480820192602092909190829003018186803b1580156114b057600080fd5b505afa1580156114c4573d6000803e3d6000fd5b505050506040513d60208110156114da57600080fd5b505190611c2d565b611a30565b61155b81846114e26008600e9054906101000a90046001600160701b03166001600160701b0316856001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156114b057600080fd5b50506001600d5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156115cd576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156116e8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061171e5750886001600160a01b0316816001600160a01b0316145b61176f576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61177a898989611e3c565b505050505050505050565b60008163ffffffff16116117e0576040805162461bcd60e51b815260206004820152601960248201527f556e6973776170506169723a206c6f776572207468656e203000000000000000604482015290519081900360640190fd5b6005546001600160a01b03163314611838576040805162461bcd60e51b81526020600482015260166024820152752ab734b9bbb0b82830b4b91d102327a92124a22222a760511b604482015290519081900360640190fd5b6103e88163ffffffff161115611895576040805162461bcd60e51b815260206004820152601a60248201527f556e6973776170506169723a20464f5242494444454e5f464545000000000000604482015290519081900360640190fd5b600c805463ffffffff191663ffffffff92909216919091179055565b600260209081526000928352604080842090915290825290205481565b600d54600114611919576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600d55600654604080516370a0823160e01b81523060048201529051611a29926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561196a57600080fd5b505afa15801561197e573d6000803e3d6000fd5b505050506040513d602081101561199457600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b50516008546001600160701b0380821691600160701b900416611c7d565b6001600d55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b60208310611add5780518252601f199092019160209182019101611abe565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b3f576040519150601f19603f3d011682016040523d82523d6000602084013e611b44565b606091505b5091509150818015611b72575080511580611b725750808060200190516020811015611b6f57600080fd5b50515b611bc3576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611be557505080820282828281611be257fe5b04145b610ba9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610ba9576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611c9b57506001600160701b038311155b611ce2576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611d1257506001600160701b03841615155b8015611d2657506001600160701b03831615155b15611d91578063ffffffff16611d4e85611d3f86612221565b6001600160e01b031690612233565b600980546001600160e01b03929092169290920201905563ffffffff8116611d7984611d3f87612221565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611ec19082611c2d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611ef09082612258565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611f9d57600080fd5b505afa158015611fb1573d6000803e3d6000fd5b505050506040513d6020811015611fc757600080fd5b5051600b546001600160a01b038216158015945091925090612087578015612082576000612004610ed76001600160701b03888116908816611bca565b905060006120118361209b565b90508082111561207f5760006120386002610a8061202f8686611c2d565b60005490611bca565b9050600061205b61204a846002611bca565b612055866003611bca565b90612258565b9050600081838161206857fe5b049050801561207b5761207b87826120ed565b5050505b50505b612093565b8015612093576000600b555b505092915050565b600060038211156120de575080600160028204015b818110156120d8578091506002818285816120c757fe5b0401816120d057fe5b0490506120b0565b506120e8565b81156120e8575060015b919050565b6000546120fa9082612258565b60009081556001600160a01b03831681526001602052604090205461211f9082612258565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106121865781612188565b825b9392505050565b6001600160a01b0382166000908152600160205260409020546121b29082611c2d565b6001600160a01b038316600090815260016020526040812091909155546121d99082611c2d565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161225057fe5b049392505050565b80820182811015610ba9576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220a588a3b14e1f41d5d554038d1d24490eae6b8765380ee70b4e82e2b4680a254864736f6c634300060c0033a2646970667358221220e993b7864e3307706e0189c33acd61a8b8f9f9c47c3a2a0679c450ac713371c064736f6c634300060c0033

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

000000000000000000000000d8a3275740b49015e5cdff7904a200ee4c851cbb

-----Decoded View---------------
Arg [0] : _feeToSetter (address): 0xD8A3275740B49015E5CdFf7904A200Ee4C851cbb

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8a3275740b49015e5cdff7904a200ee4c851cbb


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.