ETH Price: $1,616.65 (-1.89%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve222704692025-04-14 23:20:1118 hrs ago1744672811IN
0x9abC68B3...226de01E1
0 ETH0.00002140.88470828
Approve221088392025-03-23 9:57:1123 days ago1742723831IN
0x9abC68B3...226de01E1
0 ETH0.000110912.38650423
Approve220879782025-03-20 12:08:5926 days ago1742472539IN
0x9abC68B3...226de01E1
0 ETH0.000023180.95844946
Approve220592792025-03-16 11:54:5930 days ago1742126099IN
0x9abC68B3...226de01E1
0 ETH0.000116082.49791256
Approve219548332025-03-01 21:53:4744 days ago1740866027IN
0x9abC68B3...226de01E1
0 ETH0.00008371.80148283
Approve219033112025-02-22 17:18:1152 days ago1740244691IN
0x9abC68B3...226de01E1
0 ETH0.000064791.4
Transfer218935742025-02-21 8:39:2353 days ago1740127163IN
0x9abC68B3...226de01E1
0 ETH0.000087891.7078059
Approve218236292025-02-11 13:38:1163 days ago1739281091IN
0x9abC68B3...226de01E1
0 ETH0.000050962.10159999
Approve218054682025-02-09 0:47:1165 days ago1739062031IN
0x9abC68B3...226de01E1
0 ETH0.000032771.354752
Transfer217078152025-01-26 9:31:4779 days ago1737883907IN
0x9abC68B3...226de01E1
0 ETH0.000202424.33440881
Approve216809272025-01-22 15:28:2383 days ago1737559703IN
0x9abC68B3...226de01E1
0 ETH0.0008606218.6
Approve216233312025-01-14 14:29:4791 days ago1736864987IN
0x9abC68B3...226de01E1
0 ETH0.0002567910.58959596
Approve215931392025-01-10 9:19:5995 days ago1736500799IN
0x9abC68B3...226de01E1
0 ETH0.000324417.00771692
Approve214866932024-12-26 12:39:23110 days ago1735216763IN
0x9abC68B3...226de01E1
0 ETH0.00018017.42699626
Approve214645112024-12-23 10:12:35113 days ago1734948755IN
0x9abC68B3...226de01E1
0 ETH0.00020378.4
Approve214048172024-12-15 2:04:23121 days ago1734228263IN
0x9abC68B3...226de01E1
0 ETH0.000385458.34147833
Approve213952942024-12-13 18:10:35122 days ago1734113435IN
0x9abC68B3...226de01E1
0 ETH0.0010030721.67310069
Approve213612122024-12-08 23:58:59127 days ago1733702339IN
0x9abC68B3...226de01E1
0 ETH0.0005010910.84391452
Approve213359102024-12-05 11:10:47131 days ago1733397047IN
0x9abC68B3...226de01E1
0 ETH0.0008899719.1499224
Approve213060102024-12-01 6:56:47135 days ago1733036207IN
0x9abC68B3...226de01E1
0 ETH0.000431779.33170437
Approve212844722024-11-28 6:38:59138 days ago1732775939IN
0x9abC68B3...226de01E1
0 ETH0.000437459.44951042
Approve212623552024-11-25 4:22:47141 days ago1732508567IN
0x9abC68B3...226de01E1
0 ETH0.000422219.07317471
Approve212334312024-11-21 3:29:47145 days ago1732159787IN
0x9abC68B3...226de01E1
0 ETH0.0002611610.79642957
Approve212326032024-11-21 0:43:35145 days ago1732149815IN
0x9abC68B3...226de01E1
0 ETH0.000393868.51017705
Approve211758382024-11-13 2:39:47153 days ago1731465587IN
0x9abC68B3...226de01E1
0 ETH0.0019069741.19278086
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60806040177245722023-07-19 3:29:11636 days ago1689737351  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UltraSuperfuckingDementedgreendildoretardstrengthCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

/*

Once upon a time, in the wild and unpredictable world of
cryptocurrencies, there emerged a coin known as
"UltraSuperfuckingDementedgreendildoretardstrengthCoin"
($USDC). Despite its dubious origins and questionable
fundamentals, USDC possessed an inexplicable power that defied
all logic. It was endowed with what some called "retard
strength" in the crypto market.

Every time USDC was on the verge of being written off as just
another worthless token, it would suddenly experience an intense
and unexpected pump. The price would skyrocket, leaving seasoned
traders scratching their heads in disbelief. The market seemed
to embrace its volatility, and investors flocked to buy this
peculiar coin.

Some theorized that USDC tapped into the collective
irrationality of the market, exploiting the pump and dump
instincts of traders hoping to strike it rich. Others believed
it was simply a result of a frenzy created by coordinated social
media campaigns and a relentless hype machine. Regardless of the
reason, USDC became a symbol of the unpredictable nature of the
crypto space.

As the legend of USDC grew, it attracted a dedicated following
of believers who saw it as a metaphor for the unpredictable and
chaotic nature of life itself. They celebrated its "retard
strength" and reveled in the madness and excitement it
generated. USDC was the embodiment of the rollercoaster ride
that many crypto enthusiasts willingly embraced.

https://greendildo.finance/

*/

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

interface Router {
	function factory() external view returns (address);
	function positionManager() external view returns (address);
	function WETH9() external view returns (address);
}

interface Factory {
	function createPool(address _tokenA, address _tokenB, uint24 _fee) external returns (address);
}

interface Pool {
	function initialize(uint160 _sqrtPriceX96) external;
}

interface PositionManager {
	struct MintParams {
		address token0;
		address token1;
		uint24 fee;
		int24 tickLower;
		int24 tickUpper;
		uint256 amount0Desired;
		uint256 amount1Desired;
		uint256 amount0Min;
		uint256 amount1Min;
		address recipient;
		uint256 deadline;
	}
	struct CollectParams {
		uint256 tokenId;
		address recipient;
		uint128 amount0Max;
		uint128 amount1Max;
	}
	function mint(MintParams calldata) external payable returns (uint256 tokenId, uint128 liquidity, uint256 amount0, uint256 amount1);
	function collect(CollectParams calldata) external payable returns (uint256 amount0, uint256 amount1);
}


contract UltraSuperfuckingDementedgreendildoretardstrengthCoin {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private UINT_MAX = type(uint256).max;
	uint128 constant private UINT128_MAX = type(uint128).max;
	uint256 constant private INITIAL_SUPPLY = 1e30; // 1 trillion
	Router constant private ROUTER = Router(0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45);
	uint256 constant private INITIAL_ETH_MC = 100 ether; // 100 ETH initial market cap price
	uint256 constant private CONCENTRATED_PERCENT = 20; // 20% of tokens will be sold at the min price (20 ETH)
	uint256 constant private UPPER_ETH_MC = 1e6 ether; // 1,000,000 ETH max market cap price

	int24 constant private MIN_TICK = -887272;
	int24 constant private MAX_TICK = -MIN_TICK;
	uint160 constant private MIN_SQRT_RATIO = 4295128739;
	uint160 constant private MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;

	string constant public name = "UltraSuperfuckingDementedgreendildoretardstrengthCoin";
	string constant public symbol = "USDC";
	uint8 constant public decimals = 18;

	struct User {
		uint256 balance;
		mapping(address => uint256) allowance;
	}

	struct Info {
		address owner;
		address pool;
		uint256 totalSupply;
		mapping(address => User) users;
		uint256 lowerPositionId1;
		uint256 lowerPositionId2;
		uint256 upperPositionId1;
		uint256 upperPositionId2;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);


	constructor() {
		address _this = address(this);
		address _weth = ROUTER.WETH9();
		(uint160 _initialSqrtPrice, ) = _getPriceAndTickFromValues(_weth < _this, INITIAL_SUPPLY, INITIAL_ETH_MC);
		info.pool = Factory(ROUTER.factory()).createPool(_this, _weth, 10000);
		Pool(pool()).initialize(_initialSqrtPrice);
	}
	
	function initialize() external {
		require(totalSupply() == 0);
		address _this = address(this);
		address _weth = ROUTER.WETH9();
		bool _weth0 = _weth < _this;
		PositionManager _pm = PositionManager(ROUTER.positionManager());
		info.totalSupply = INITIAL_SUPPLY;
		info.users[_this].balance = INITIAL_SUPPLY;
		emit Transfer(address(0x0), _this, INITIAL_SUPPLY);
		_approve(_this, address(_pm), INITIAL_SUPPLY);
		( , int24 _minTick) = _getPriceAndTickFromValues(_weth0, INITIAL_SUPPLY, INITIAL_ETH_MC);
		( , int24 _maxTick) = _getPriceAndTickFromValues(_weth0, INITIAL_SUPPLY, UPPER_ETH_MC);
		uint256 _concentratedTokens = CONCENTRATED_PERCENT * INITIAL_SUPPLY / 100;
		(info.lowerPositionId1, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _minTick - 200 : _minTick,
			tickUpper: !_weth0 ? _minTick + 200 : _minTick,
			amount0Desired: _weth0 ? 0 : _concentratedTokens / 2,
			amount1Desired: !_weth0 ? 0 : _concentratedTokens / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.lowerPositionId2, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _minTick - 200 : _minTick,
			tickUpper: !_weth0 ? _minTick + 200 : _minTick,
			amount0Desired: _weth0 ? 0 : _concentratedTokens / 2,
			amount1Desired: !_weth0 ? 0 : _concentratedTokens / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.upperPositionId1, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _maxTick : _minTick + 200,
			tickUpper: !_weth0 ? _maxTick : _minTick - 200,
			amount0Desired: _weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount1Desired: !_weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
		(info.upperPositionId2, , , ) = _pm.mint(PositionManager.MintParams({
			token0: _weth0 ? _weth : _this,
			token1: !_weth0 ? _weth : _this,
			fee: 10000,
			tickLower: _weth0 ? _maxTick : _minTick + 200,
			tickUpper: !_weth0 ? _maxTick : _minTick - 200,
			amount0Desired: _weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount1Desired: !_weth0 ? 0 : (INITIAL_SUPPLY - _concentratedTokens) / 2,
			amount0Min: 0,
			amount1Min: 0,
			recipient: _this,
			deadline: block.timestamp
		}));
	}

	function collectTradingFees() external {
		PositionManager _pm = PositionManager(ROUTER.positionManager());
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.lowerPositionId1,
			recipient: 0x08bC60d3132b7090E71DB0AF691d612FFcB324d3,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.lowerPositionId2,
			recipient: 0xFaDED72464D6e76e37300B467673b36ECc4d2ccF,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.upperPositionId1,
			recipient: 0x08bC60d3132b7090E71DB0AF691d612FFcB324d3,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
		_pm.collect(PositionManager.CollectParams({
			tokenId: info.upperPositionId2,
			recipient: 0xFaDED72464D6e76e37300B467673b36ECc4d2ccF,
			amount0Max: UINT128_MAX,
			amount1Max: UINT128_MAX
		}));
	}

	function transfer(address _to, uint256 _tokens) external returns (bool) {
		return _transfer(msg.sender, _to, _tokens);
	}

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		return _approve(msg.sender, _spender, _tokens);
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		uint256 _allowance = allowance(_from, msg.sender);
		require(_allowance >= _tokens);
		if (_allowance != UINT_MAX) {
			info.users[_from].allowance[msg.sender] -= _tokens;
		}
		return _transfer(_from, _to, _tokens);
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		_transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _tokens, _data));
		}
		return true;
	}
	

	function pool() public view returns (address) {
		return info.pool;
	}

	function totalSupply() public view returns (uint256) {
		return info.totalSupply;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function positions() external view returns (uint256 lower1, uint256 lower2, uint256 upper1, uint256 upper2) {
		return (info.lowerPositionId1, info.lowerPositionId2, info.upperPositionId1, info.upperPositionId2);
	}


	function _approve(address _owner, address _spender, uint256 _tokens) internal returns (bool) {
		info.users[_owner].allowance[_spender] = _tokens;
		emit Approval(_owner, _spender, _tokens);
		return true;
	}
	
	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		unchecked {
			require(balanceOf(_from) >= _tokens);
			info.users[_from].balance -= _tokens;
			info.users[_to].balance += _tokens;
			emit Transfer(_from, _to, _tokens);
			return true;
		}
	}


	function _getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) {
		unchecked {
			uint256 absTick = tick < 0 ? uint256(-int256(tick)) : uint256(int256(tick));
			require(absTick <= uint256(int256(MAX_TICK)), 'T');

			uint256 ratio = absTick & 0x1 != 0 ? 0xfffcb933bd6fad37aa2d162d1a594001 : 0x100000000000000000000000000000000;
			if (absTick & 0x2 != 0) ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128;
			if (absTick & 0x4 != 0) ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128;
			if (absTick & 0x8 != 0) ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128;
			if (absTick & 0x10 != 0) ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128;
			if (absTick & 0x20 != 0) ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128;
			if (absTick & 0x40 != 0) ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128;
			if (absTick & 0x80 != 0) ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128;
			if (absTick & 0x100 != 0) ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128;
			if (absTick & 0x200 != 0) ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128;
			if (absTick & 0x400 != 0) ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128;
			if (absTick & 0x800 != 0) ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128;
			if (absTick & 0x1000 != 0) ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128;
			if (absTick & 0x2000 != 0) ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128;
			if (absTick & 0x4000 != 0) ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128;
			if (absTick & 0x8000 != 0) ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128;
			if (absTick & 0x10000 != 0) ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128;
			if (absTick & 0x20000 != 0) ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128;
			if (absTick & 0x40000 != 0) ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128;
			if (absTick & 0x80000 != 0) ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128;

			if (tick > 0) ratio = type(uint256).max / ratio;

			sqrtPriceX96 = uint160((ratio >> 32) + (ratio % (1 << 32) == 0 ? 0 : 1));
		}
	}

	function _getTickAtSqrtRatio(uint160 sqrtPriceX96) internal pure returns (int24 tick) {
		unchecked {
			require(sqrtPriceX96 >= MIN_SQRT_RATIO && sqrtPriceX96 < MAX_SQRT_RATIO, 'R');
			uint256 ratio = uint256(sqrtPriceX96) << 32;

			uint256 r = ratio;
			uint256 msb = 0;

			assembly {
				let f := shl(7, gt(r, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(6, gt(r, 0xFFFFFFFFFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(5, gt(r, 0xFFFFFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(4, gt(r, 0xFFFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(3, gt(r, 0xFF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(2, gt(r, 0xF))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := shl(1, gt(r, 0x3))
				msb := or(msb, f)
				r := shr(f, r)
			}
			assembly {
				let f := gt(r, 0x1)
				msb := or(msb, f)
			}

			if (msb >= 128) r = ratio >> (msb - 127);
			else r = ratio << (127 - msb);

			int256 log_2 = (int256(msb) - 128) << 64;

			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(63, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(62, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(61, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(60, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(59, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(58, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(57, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(56, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(55, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(54, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(53, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(52, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(51, f))
				r := shr(f, r)
			}
			assembly {
				r := shr(127, mul(r, r))
				let f := shr(128, r)
				log_2 := or(log_2, shl(50, f))
			}

			int256 log_sqrt10001 = log_2 * 255738958999603826347141;

			int24 tickLow = int24((log_sqrt10001 - 3402992956809132418596140100660247210) >> 128);
			int24 tickHi = int24((log_sqrt10001 + 291339464771989622907027621153398088495) >> 128);

			tick = tickLow == tickHi ? tickLow : _getSqrtRatioAtTick(tickHi) <= sqrtPriceX96 ? tickHi : tickLow;
		}
	}

	function _sqrt(uint256 _n) internal pure returns (uint256 result) {
		unchecked {
			uint256 _tmp = (_n + 1) / 2;
			result = _n;
			while (_tmp < result) {
				result = _tmp;
				_tmp = (_n / _tmp + _tmp) / 2;
			}
		}
	}

	function _getPriceAndTickFromValues(bool _weth0, uint256 _tokens, uint256 _weth) internal pure returns (uint160 price, int24 tick) {
		uint160 _tmpPrice = uint160(_sqrt(2**192 / (!_weth0 ? _tokens : _weth) * (_weth0 ? _tokens : _weth)));
		tick = _getTickAtSqrtRatio(_tmpPrice);
		tick = tick - (tick % 200);
		price = _getSqrtRatioAtTick(tick);
	}
}


contract Deploy {
	UltraSuperfuckingDementedgreendildoretardstrengthCoin immutable public USDC;
	constructor() {
		USDC = new UltraSuperfuckingDementedgreendildoretardstrengthCoin();
		USDC.initialize();
	}
}

Contract Security Audit

Contract ABI

API
[{"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":"tokens","type":"uint256"}],"name":"Approval","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":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_user","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":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectTradingFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"positions","outputs":[{"internalType":"uint256","name":"lower1","type":"uint256"},{"internalType":"uint256","name":"lower2","type":"uint256"},{"internalType":"uint256","name":"upper1","type":"uint256"},{"internalType":"uint256","name":"upper2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b505f3090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000067573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200008d919062000976565b90505f620000c16001600160a01b03808516908416106c0c9f2c9cd04674edea4000000068056bc75e2d631000006200023b565b5090507368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000115573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013b919062000976565b60405163a167129560e01b81526001600160a01b03858116600483015284811660248301526127106044830152919091169063a1671295906064016020604051808303815f875af115801562000193573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000976565b600180546001600160a01b0319166001600160a01b0392909216918217905560405163f637731d60e01b81526001600160a01b038381166004830152919091169063f637731d906024015f604051808303815f87803b1580156200021b575f80fd5b505af11580156200022e573d5f803e3d5ffd5b5050505050505062000a4f565b5f805f62000283866200024f578462000251565b855b87156200025f578562000261565b865b6200027190600160c01b620009cd565b6200027d9190620009e3565b620002c3565b905062000290816200030e565b91506200029f60c88362000a03565b620002ab908362000a27565b9150620002b88262000633565b925050935093915050565b80600260018201045b818110156200030857809150600281828581620002ed57620002ed620009a5565b040181620002ff57620002ff620009a5565b049050620002cc565b50919050565b5f6401000276a36001600160a01b038316108015906200034a575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b620003805760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b600160201b600160c01b03602083901b166001600160801b03811160071b81811c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106200041457607f810383901c91506200041e565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1462000624576001600160a01b038916620006068262000633565b6001600160a01b031611156200061d578162000626565b8062000626565b815b9998505050505050505050565b5f805f8360020b126200064a578260020b62000651565b8260020b5f035b9050620d89e88111156200068c5760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000377565b5f816001165f03620006a357600160801b620006b5565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615620006e0576ffff97272373d413259a46990580e213a0260801c5b600482161562000700576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161562000720576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161562000740576fffcb9843d60f6159c9db58835c9266440260801c5b602082161562000760576fff973b41fa98c081472e6896dfb254c00260801c5b604082161562000780576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615620007a0576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615620007c1576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615620007e2576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161562000803576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161562000824576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161562000845576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161562000866576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161562000887576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615620008a8576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615620008ca576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615620008eb576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156200090b576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161562000929576b048a170391f7dc42444e8fa20260801c5b5f8460020b13156200094c57805f1981620009485762000948620009a5565b0490505b6401000000008106156200096257600162000964565b5f5b60ff16602082901c0192505050919050565b5f6020828403121562000987575f80fd5b81516001600160a01b03811681146200099e575f80fd5b9392505050565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f82620009de57620009de620009a5565b500490565b8082028115828204841417620009fd57620009fd620009b9565b92915050565b5f8260020b8062000a185762000a18620009a5565b808360020b0791505092915050565b600282810b9082900b03627fffff198112627fffff82131715620009fd57620009fd620009b9565b611b6d8062000a5d5f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806353f8b3031161008857806395d89b411161006357806395d89b41146101d1578063a9059cbb146101f4578063ba5b798214610207578063dd62ed3e14610233575f80fd5b806353f8b3031461019757806370a08231146101a15780638129fc1c146101c9575f80fd5b806318160ddd116100c357806318160ddd1461014557806323b872dd14610157578063313ce5671461016a5780634000aea014610184575f80fd5b806306fdde03146100e9578063095ea7b31461010757806316f0115b1461012a575b5f80fd5b6100f161026f565b6040516100fe919061169d565b60405180910390f35b61011a6101153660046116ff565b61028b565b60405190151581526020016100fe565b6001546040516001600160a01b0390911681526020016100fe565b6002545b6040519081526020016100fe565b61011a610165366004611729565b6102a0565b610172601281565b60405160ff90911681526020016100fe565b61011a610192366004611767565b610329565b61019f6103ca565b005b6101496101af3660046117e9565b6001600160a01b03165f9081526003602052604090205490565b61019f6106e0565b6100f1604051806040016040528060048152602001635553444360e01b81525081565b61011a6102023660046116ff565b610e9d565b6004546005546006546007546040805194855260208501939093529183015260608201526080016100fe565b61014961024136600461180b565b6001600160a01b039182165f9081526003602090815260408083209390941682526001909201909152205490565b604051806060016040528060358152602001611b036035913981565b5f610297338484610ea9565b90505b92915050565b6001600160a01b0383165f908152600360209081526040808320338452600101909152812054828110156102d2575f80fd5b5f198114610315576001600160a01b0385165f9081526003602090815260408083203384526001019091528120805485929061030f908490611856565b90915550505b610320858585610f15565b95945050505050565b5f610335338686610f15565b50843b63ffffffff8116156103be57604051636be32e7360e01b81526001600160a01b03871690636be32e7390610376903390899089908990600401611869565b6020604051808303815f875af1158015610392573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b691906118b0565b6103be575f80fd5b50600195945050505050565b5f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043f91906118cf565b604080516080810182526004805482527308bc60d3132b7090e71db0af691d612ffcb324d360208301526001600160801b038284018190526060830152915163fc6f786560e01b81529293506001600160a01b0384169263fc6f7865926104a79291016118ea565b60408051808303815f875af11580156104c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e6919061192d565b505060408051608081018252600554815273faded72464d6e76e37300b467673b36ecc4d2ccf60208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161054e91906004016118ea565b60408051808303815f875af1158015610569573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058d919061192d565b50506040805160808101825260065481527308bc60d3132b7090e71db0af691d612ffcb324d360208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f7865916105f591906004016118ea565b60408051808303815f875af1158015610610573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610634919061192d565b505060408051608081018252600754815273faded72464d6e76e37300b467673b36ecc4d2ccf60208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161069c91906004016118ea565b60408051808303815f875af11580156106b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db919061192d565b505050565b600254156106ec575f80fd5b5f3090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610741573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076591906118cf565b90505f826001600160a01b0316826001600160a01b03161090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f491906118cf565b68327cb2734119d3b7a9601e1b60028190556001600160a01b0386165f8181526003602052604080822084905551939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161085791815260200190565b60405180910390a3610876848268327cb2734119d3b7a9601e1b610ea9565b505f6108988368327cb2734119d3b7a9601e1b68056bc75e2d63100000610f99565b9150505f6108bd8468327cb2734119d3b7a9601e1b69d3c21bcecceda1000000610f99565b91505f905060646108db68327cb2734119d3b7a9601e1b601461194f565b6108e5919061197a565b9050836001600160a01b031663883164566040518061016001604052808861090d578a61090f565b895b6001600160a01b031681526020018815610929578a61092b565b895b6001600160a01b0316815261271060208201526040018861094c5786610957565b61095760c88861198d565b60020b8152602001881561096b5786610976565b6109768760c86119b2565b60020b8152602001886109935761098e60028661197a565b610995565b5f5b815260200188156109b0576109ab60028661197a565b6109b2565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016109f291906119d7565b6080604051808303815f875af1158015610a0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a329190611a9b565b5050506004556040805161016081019091526001600160a01b038516906388316456908088610a61578a610a63565b895b6001600160a01b031681526020018815610a7d578a610a7f565b895b6001600160a01b03168152612710602082015260400188610aa05786610aab565b610aab60c88861198d565b60020b81526020018815610abf5786610aca565b610aca8760c86119b2565b60020b815260200188610ae757610ae260028661197a565b610ae9565b5f5b81526020018815610b0457610aff60028661197a565b610b06565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610b4691906119d7565b6080604051808303815f875af1158015610b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b869190611a9b565b5050506005556040805161016081019091526001600160a01b038516906388316456908088610bb5578a610bb7565b895b6001600160a01b031681526020018815610bd1578a610bd3565b895b6001600160a01b03168152612710602082015260400188610bfe57610bf98760c86119b2565b610c00565b855b60020b81526020018815610c1e57610c1960c88861198d565b610c20565b855b60020b815260200188610c54576002610c458668327cb2734119d3b7a9601e1b611856565b610c4f919061197a565b610c56565b5f5b81526020018815610c88576002610c798668327cb2734119d3b7a9601e1b611856565b610c83919061197a565b610c8a565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610cca91906119d7565b6080604051808303815f875af1158015610ce6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611a9b565b5050506006556040805161016081019091526001600160a01b038516906388316456908088610d39578a610d3b565b895b6001600160a01b031681526020018815610d55578a610d57565b895b6001600160a01b03168152612710602082015260400188610d8257610d7d8760c86119b2565b610d84565b855b60020b81526020018815610da257610d9d60c88861198d565b610da4565b855b60020b815260200188610dd8576002610dc98668327cb2734119d3b7a9601e1b611856565b610dd3919061197a565b610dda565b5f5b81526020018815610e0c576002610dfd8668327cb2734119d3b7a9601e1b611856565b610e07919061197a565b610e0e565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610e4e91906119d7565b6080604051808303815f875af1158015610e6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8e9190611a9b565b50505060075550505050505050565b5f610297338484610f15565b6001600160a01b038381165f8181526003602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b6001600160a01b0383165f90815260036020526040812054821115610f38575f80fd5b6001600160a01b038085165f81815260036020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f039086815260200190565b5f805f610fd786610faa5784610fac565b855b8715610fb85785610fba565b865b610fc890600160c01b61197a565b610fd2919061194f565b61100f565b9050610fe281611052565b9150610fef60c883611ae1565b610ff9908361198d565b91506110048261136f565b925050935093915050565b80600260018201045b8181101561104c5780915060028182858161103557611035611966565b04018161104457611044611966565b049050611018565b50919050565b5f6401000276a36001600160a01b0383161080159061108d575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b6110c25760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c9790881196179094179092171790911717176080811061115657607f810383901c9150611160565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1461136057886001600160a01b03166113458261136f565b6001600160a01b0316111561135a5781611362565b80611362565b815b9998505050505050505050565b5f805f8360020b12611384578260020b61138b565b8260020b5f035b9050620d89e88111156113c45760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016110b9565b5f816001165f036113d957600160801b6113eb565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561141f576ffff97272373d413259a46990580e213a0260801c5b600482161561143e576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561145d576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561147c576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561149b576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156114ba576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156114d9576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156114f9576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611519576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611539576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611559576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611579576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611599576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156115b9576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156115d9576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156115fa576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561161a576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611639576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611656576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561167557805f198161167157611671611966565b0490505b64010000000081061561168957600161168b565b5f5b60ff16602082901c0192505050919050565b5f6020808352835180828501525f5b818110156116c8578581018301518582016040015282016116ac565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fc575f80fd5b50565b5f8060408385031215611710575f80fd5b823561171b816116e8565b946020939093013593505050565b5f805f6060848603121561173b575f80fd5b8335611746816116e8565b92506020840135611756816116e8565b929592945050506040919091013590565b5f805f806060858703121561177a575f80fd5b8435611785816116e8565b935060208501359250604085013567ffffffffffffffff808211156117a8575f80fd5b818701915087601f8301126117bb575f80fd5b8135818111156117c9575f80fd5b8860208285010111156117da575f80fd5b95989497505060200194505050565b5f602082840312156117f9575f80fd5b8135611804816116e8565b9392505050565b5f806040838503121561181c575f80fd5b8235611827816116e8565b91506020830135611837816116e8565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561029a5761029a611842565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f602082840312156118c0575f80fd5b81518015158114611804575f80fd5b5f602082840312156118df575f80fd5b8151611804816116e8565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f806040838503121561193e575f80fd5b505080516020909101519092909150565b808202811582820484141761029a5761029a611842565b634e487b7160e01b5f52601260045260245ffd5b5f8261198857611988611966565b500490565b600282810b9082900b03627fffff198112627fffff8213171561029a5761029a611842565b600281810b9083900b01627fffff8113627fffff198212171561029a5761029a611842565b81516001600160a01b0316815261016081016020830151611a0360208401826001600160a01b03169052565b506040830151611a1a604084018262ffffff169052565b506060830151611a2f606084018260020b9052565b506080830151611a44608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611a8a828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215611aae575f80fd5b8451935060208501516001600160801b0381168114611acb575f80fd5b6040860151606090960151949790965092505050565b5f8260020b80611af357611af3611966565b808360020b079150509291505056fe556c74726153757065726675636b696e6744656d656e746564677265656e64696c646f726574617264737472656e677468436f696ea26469706673582212206d4ddbd0b468d6b637e6ca4a9007a17e3ee826eb67e2cd51cd8fd19f827c37c364736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806353f8b3031161008857806395d89b411161006357806395d89b41146101d1578063a9059cbb146101f4578063ba5b798214610207578063dd62ed3e14610233575f80fd5b806353f8b3031461019757806370a08231146101a15780638129fc1c146101c9575f80fd5b806318160ddd116100c357806318160ddd1461014557806323b872dd14610157578063313ce5671461016a5780634000aea014610184575f80fd5b806306fdde03146100e9578063095ea7b31461010757806316f0115b1461012a575b5f80fd5b6100f161026f565b6040516100fe919061169d565b60405180910390f35b61011a6101153660046116ff565b61028b565b60405190151581526020016100fe565b6001546040516001600160a01b0390911681526020016100fe565b6002545b6040519081526020016100fe565b61011a610165366004611729565b6102a0565b610172601281565b60405160ff90911681526020016100fe565b61011a610192366004611767565b610329565b61019f6103ca565b005b6101496101af3660046117e9565b6001600160a01b03165f9081526003602052604090205490565b61019f6106e0565b6100f1604051806040016040528060048152602001635553444360e01b81525081565b61011a6102023660046116ff565b610e9d565b6004546005546006546007546040805194855260208501939093529183015260608201526080016100fe565b61014961024136600461180b565b6001600160a01b039182165f9081526003602090815260408083209390941682526001909201909152205490565b604051806060016040528060358152602001611b036035913981565b5f610297338484610ea9565b90505b92915050565b6001600160a01b0383165f908152600360209081526040808320338452600101909152812054828110156102d2575f80fd5b5f198114610315576001600160a01b0385165f9081526003602090815260408083203384526001019091528120805485929061030f908490611856565b90915550505b610320858585610f15565b95945050505050565b5f610335338686610f15565b50843b63ffffffff8116156103be57604051636be32e7360e01b81526001600160a01b03871690636be32e7390610376903390899089908990600401611869565b6020604051808303815f875af1158015610392573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b691906118b0565b6103be575f80fd5b50600195945050505050565b5f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561041b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061043f91906118cf565b604080516080810182526004805482527308bc60d3132b7090e71db0af691d612ffcb324d360208301526001600160801b038284018190526060830152915163fc6f786560e01b81529293506001600160a01b0384169263fc6f7865926104a79291016118ea565b60408051808303815f875af11580156104c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104e6919061192d565b505060408051608081018252600554815273faded72464d6e76e37300b467673b36ecc4d2ccf60208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161054e91906004016118ea565b60408051808303815f875af1158015610569573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058d919061192d565b50506040805160808101825260065481527308bc60d3132b7090e71db0af691d612ffcb324d360208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f7865916105f591906004016118ea565b60408051808303815f875af1158015610610573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610634919061192d565b505060408051608081018252600754815273faded72464d6e76e37300b467673b36ecc4d2ccf60208201526001600160801b038183018190526060820152905163fc6f786560e01b81526001600160a01b0383169163fc6f78659161069c91906004016118ea565b60408051808303815f875af11580156106b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db919061192d565b505050565b600254156106ec575f80fd5b5f3090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610741573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076591906118cf565b90505f826001600160a01b0316826001600160a01b03161090505f7368b3465833fb72a70ecdf485e0e4c7bd8665fc456001600160a01b031663791b98bc6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107d0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f491906118cf565b68327cb2734119d3b7a9601e1b60028190556001600160a01b0386165f8181526003602052604080822084905551939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9161085791815260200190565b60405180910390a3610876848268327cb2734119d3b7a9601e1b610ea9565b505f6108988368327cb2734119d3b7a9601e1b68056bc75e2d63100000610f99565b9150505f6108bd8468327cb2734119d3b7a9601e1b69d3c21bcecceda1000000610f99565b91505f905060646108db68327cb2734119d3b7a9601e1b601461194f565b6108e5919061197a565b9050836001600160a01b031663883164566040518061016001604052808861090d578a61090f565b895b6001600160a01b031681526020018815610929578a61092b565b895b6001600160a01b0316815261271060208201526040018861094c5786610957565b61095760c88861198d565b60020b8152602001881561096b5786610976565b6109768760c86119b2565b60020b8152602001886109935761098e60028661197a565b610995565b5f5b815260200188156109b0576109ab60028661197a565b6109b2565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b81526004016109f291906119d7565b6080604051808303815f875af1158015610a0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a329190611a9b565b5050506004556040805161016081019091526001600160a01b038516906388316456908088610a61578a610a63565b895b6001600160a01b031681526020018815610a7d578a610a7f565b895b6001600160a01b03168152612710602082015260400188610aa05786610aab565b610aab60c88861198d565b60020b81526020018815610abf5786610aca565b610aca8760c86119b2565b60020b815260200188610ae757610ae260028661197a565b610ae9565b5f5b81526020018815610b0457610aff60028661197a565b610b06565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610b4691906119d7565b6080604051808303815f875af1158015610b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b869190611a9b565b5050506005556040805161016081019091526001600160a01b038516906388316456908088610bb5578a610bb7565b895b6001600160a01b031681526020018815610bd1578a610bd3565b895b6001600160a01b03168152612710602082015260400188610bfe57610bf98760c86119b2565b610c00565b855b60020b81526020018815610c1e57610c1960c88861198d565b610c20565b855b60020b815260200188610c54576002610c458668327cb2734119d3b7a9601e1b611856565b610c4f919061197a565b610c56565b5f5b81526020018815610c88576002610c798668327cb2734119d3b7a9601e1b611856565b610c83919061197a565b610c8a565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610cca91906119d7565b6080604051808303815f875af1158015610ce6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0a9190611a9b565b5050506006556040805161016081019091526001600160a01b038516906388316456908088610d39578a610d3b565b895b6001600160a01b031681526020018815610d55578a610d57565b895b6001600160a01b03168152612710602082015260400188610d8257610d7d8760c86119b2565b610d84565b855b60020b81526020018815610da257610d9d60c88861198d565b610da4565b855b60020b815260200188610dd8576002610dc98668327cb2734119d3b7a9601e1b611856565b610dd3919061197a565b610dda565b5f5b81526020018815610e0c576002610dfd8668327cb2734119d3b7a9601e1b611856565b610e07919061197a565b610e0e565b5f5b81526020015f81526020015f81526020018a6001600160a01b03168152602001428152506040518263ffffffff1660e01b8152600401610e4e91906119d7565b6080604051808303815f875af1158015610e6a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8e9190611a9b565b50505060075550505050505050565b5f610297338484610f15565b6001600160a01b038381165f8181526003602090815260408083209487168084526001909501825280832086905551858152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a35060019392505050565b6001600160a01b0383165f90815260036020526040812054821115610f38575f80fd5b6001600160a01b038085165f81815260036020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f039086815260200190565b5f805f610fd786610faa5784610fac565b855b8715610fb85785610fba565b865b610fc890600160c01b61197a565b610fd2919061194f565b61100f565b9050610fe281611052565b9150610fef60c883611ae1565b610ff9908361198d565b91506110048261136f565b925050935093915050565b80600260018201045b8181101561104c5780915060028182858161103557611035611966565b04018161104457611044611966565b049050611018565b50919050565b5f6401000276a36001600160a01b0383161080159061108d575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b6110c25760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064015b60405180910390fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c9790881196179094179092171790911717176080811061115657607f810383901c9150611160565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b1461136057886001600160a01b03166113458261136f565b6001600160a01b0316111561135a5781611362565b80611362565b815b9998505050505050505050565b5f805f8360020b12611384578260020b61138b565b8260020b5f035b9050620d89e88111156113c45760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016110b9565b5f816001165f036113d957600160801b6113eb565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561141f576ffff97272373d413259a46990580e213a0260801c5b600482161561143e576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561145d576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561147c576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561149b576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156114ba576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156114d9576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156114f9576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611519576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611539576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611559576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611579576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611599576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156115b9576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156115d9576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156115fa576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561161a576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611639576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611656576b048a170391f7dc42444e8fa20260801c5b5f8460020b131561167557805f198161167157611671611966565b0490505b64010000000081061561168957600161168b565b5f5b60ff16602082901c0192505050919050565b5f6020808352835180828501525f5b818110156116c8578581018301518582016040015282016116ac565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fc575f80fd5b50565b5f8060408385031215611710575f80fd5b823561171b816116e8565b946020939093013593505050565b5f805f6060848603121561173b575f80fd5b8335611746816116e8565b92506020840135611756816116e8565b929592945050506040919091013590565b5f805f806060858703121561177a575f80fd5b8435611785816116e8565b935060208501359250604085013567ffffffffffffffff808211156117a8575f80fd5b818701915087601f8301126117bb575f80fd5b8135818111156117c9575f80fd5b8860208285010111156117da575f80fd5b95989497505060200194505050565b5f602082840312156117f9575f80fd5b8135611804816116e8565b9392505050565b5f806040838503121561181c575f80fd5b8235611827816116e8565b91506020830135611837816116e8565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561029a5761029a611842565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f602082840312156118c0575f80fd5b81518015158114611804575f80fd5b5f602082840312156118df575f80fd5b8151611804816116e8565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b5f806040838503121561193e575f80fd5b505080516020909101519092909150565b808202811582820484141761029a5761029a611842565b634e487b7160e01b5f52601260045260245ffd5b5f8261198857611988611966565b500490565b600282810b9082900b03627fffff198112627fffff8213171561029a5761029a611842565b600281810b9083900b01627fffff8113627fffff198212171561029a5761029a611842565b81516001600160a01b0316815261016081016020830151611a0360208401826001600160a01b03169052565b506040830151611a1a604084018262ffffff169052565b506060830151611a2f606084018260020b9052565b506080830151611a44608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151611a8a828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215611aae575f80fd5b8451935060208501516001600160801b0381168114611acb575f80fd5b6040860151606090960151949790965092505050565b5f8260020b80611af357611af3611966565b808360020b079150509291505056fe556c74726153757065726675636b696e6744656d656e746564677265656e64696c646f726574617264737472656e677468436f696ea26469706673582212206d4ddbd0b468d6b637e6ca4a9007a17e3ee826eb67e2cd51cd8fd19f827c37c364736f6c63430008140033

Deployed Bytecode Sourcemap

2745:13887:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3670:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8432:132;;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8432:132:0;1023:187:1;9226:72:0;9284:9;;9226:72;;-1:-1:-1;;;;;9284:9:0;;;1470:51:1;;1458:2;1443:18;9226:72:0;1324:203:1;9303:86:0;9368:16;;9303:86;;;1678:25:1;;;1666:2;1651:18;9303:86:0;1532:177:1;8569:321:0;;;;;;:::i;:::-;;:::i;3801:35::-;;3834:2;3801:35;;;;;2347:4:1;2335:17;;;2317:36;;2305:2;2290:18;3801:35:0;2175:184:1;8895:323:0;;;;;;:::i;:::-;;:::i;7358:940::-;;;:::i;:::-;;9394:106;;;;;;:::i;:::-;-1:-1:-1;;;;;9470:17:0;9449:7;9470:17;;;:10;:17;;;;;:25;;9394:106;4668:2685;;;:::i;3759:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;3759:38:0;;;;;8303:124;;;;;;:::i;:::-;;:::i;9646:217::-;9767:21;;9790;;9813;;9836;;9646:217;;;3646:25:1;;;3702:2;3687:18;;3680:34;;;;3730:18;;;3723:34;3788:2;3773:18;;3766:34;3633:3;3618:19;9646:217:0;3415:391:1;9505:136:0;;;;;;:::i;:::-;-1:-1:-1;;;;;9599:17:0;;;9578:7;9599:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;;;:37;;;;;;9505:136;3670:85;;;;;;;;;;;;;;;;;;;:::o;8432:132::-;8502:4;8520:39;8529:10;8541:8;8551:7;8520:8;:39::i;:::-;8513:46;;8432:132;;;;;:::o;8569:321::-;-1:-1:-1;;;;;9599:17:0;;8654:4;9599:17;;;:10;:17;;;;;;;;8703:10;9599:37;;:27;;:37;;;;;;8741:7;8727:10;:21;;8719:30;;;;;;-1:-1:-1;;8758:10:0;:22;8754:90;;-1:-1:-1;;;;;8788:17:0;;:4;:17;;;:10;:17;;;;;;;;8816:10;8788:39;;:27;;:39;;;;;:50;;8831:7;;8788:4;:50;;8831:7;;8788:50;:::i;:::-;;;;-1:-1:-1;;8754:90:0;8855:30;8865:5;8872:3;8877:7;8855:9;:30::i;:::-;8848:37;8569:321;-1:-1:-1;;;;;8569:321:0:o;8895:323::-;8990:4;9001:35;9011:10;9023:3;9028:7;9001:9;:35::i;:::-;-1:-1:-1;9082:16:0;;9111:9;;;;9107:91;;9136:55;;-1:-1:-1;;;9136:55:0;;-1:-1:-1;;;;;9136:27:0;;;;;:55;;9164:10;;9176:7;;9185:5;;;;9136:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9128:64;;;;;;-1:-1:-1;9209:4:0;;8895:323;-1:-1:-1;;;;;8895:323:0:o;7358:940::-;7402:19;3084:42;-1:-1:-1;;;;;7440:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7482:189;;;;;;;;7527:21;;;7482:189;;7565:42;7482:189;;;;-1:-1:-1;;;;;7482:189:0;;;;;;;;;;7470:202;;-1:-1:-1;;;7470:202:0;;7402:63;;-1:-1:-1;;;;;;7470:11:0;;;;;:202;;7482:189;7470:202;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7689:189:0;;;;;;;;7734:21;;7689:189;;7772:42;7689:189;;;;-1:-1:-1;;;;;7689:189:0;;;;;;;;;;7677:202;;-1:-1:-1;;;7677:202:0;;-1:-1:-1;;;;;7677:11:0;;;;;:202;;7689:189;7677:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7896:189:0;;;;;;;;7941:21;;7896:189;;7979:42;7896:189;;;;-1:-1:-1;;;;;7896:189:0;;;;;;;;;;7884:202;;-1:-1:-1;;;7884:202:0;;-1:-1:-1;;;;;7884:11:0;;;;;:202;;7896:189;7884:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;8103:189:0;;;;;;;;8148:21;;8103:189;;8186:42;8103:189;;;;-1:-1:-1;;;;;8103:189:0;;;;;;;;;;8091:202;;-1:-1:-1;;;8091:202:0;;-1:-1:-1;;;;;8091:11:0;;;;;:202;;8103:189;8091:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7397:901;7358:940::o;4668:2685::-;9368:16;;4712:18;4704:27;;;;;;4736:13;4760:4;4736:29;;4770:13;3084:42;-1:-1:-1;;;;;4786:12:0;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4770:30;;4805:11;4827:5;-1:-1:-1;;;;;4819:13:0;:5;-1:-1:-1;;;;;4819:13:0;;4805:27;;4837:19;3084:42;-1:-1:-1;;;;;4875:22:0;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;4905:16:0;:33;;;-1:-1:-1;;;;;4943:17:0;;4905:4;4943:17;;;:10;:17;;;;;;:42;;;4995:45;4837:63;;-1:-1:-1;4943:17:0;;4905:4;;4995:45;;;;1678:25:1;;1666:2;1651:18;;1532:177;4995:45:0;;;;;;;;5045;5054:5;5069:3;-1:-1:-1;;;5045:8:0;:45::i;:::-;;5099:14;5117:66;5144:6;-1:-1:-1;;;3173:9:0;5117:26;:66::i;:::-;5095:88;;;5192:14;5210:64;5237:6;-1:-1:-1;;;3372:9:0;5210:26;:64::i;:::-;5188:86;-1:-1:-1;5279:27:0;;-1:-1:-1;5349:3:0;5309:37;-1:-1:-1;;;3270:2:0;5309:37;:::i;:::-;:43;;;;:::i;:::-;5279:73;;5389:3;-1:-1:-1;;;;;5389:8:0;;5398:433;;;;;;;;5439:6;:22;;5456:5;5439:22;;;5448:5;5439:22;-1:-1:-1;;;;;5398:433:0;;;;;5476:6;5475:7;:23;;5493:5;5475:23;;;5485:5;5475:23;-1:-1:-1;;;;;5398:433:0;;;5509:5;5398:433;;;;;;5531:6;:34;;5557:8;5531:34;;;5540:14;5551:3;5540:8;:14;:::i;:::-;5398:433;;;;;;5583:6;5582:7;:35;;5609:8;5582:35;;;5592:14;:8;5603:3;5592:14;:::i;:::-;5398:433;;;;;;5639:6;:36;;5652:23;5674:1;5652:19;:23;:::i;:::-;5639:36;;;5648:1;5639:36;5398:433;;;;5698:6;5697:7;:37;;5711:23;5733:1;5711:19;:23;:::i;:::-;5697:37;;;5707:1;5697:37;5398:433;;;;5752:1;5398:433;;;;5771:1;5398:433;;;;5789:5;-1:-1:-1;;;;;5398:433:0;;;;;5810:15;5398:433;;;5389:443;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;5358:21:0;5357:475;5878:433;;;;;;;;;-1:-1:-1;;;;;5869:8:0;;;;;5878:433;5919:6;:22;;5936:5;5919:22;;;5928:5;5919:22;-1:-1:-1;;;;;5878:433:0;;;;;5956:6;5955:7;:23;;5973:5;5955:23;;;5965:5;5955:23;-1:-1:-1;;;;;5878:433:0;;;5989:5;5878:433;;;;;;6011:6;:34;;6037:8;6011:34;;;6020:14;6031:3;6020:8;:14;:::i;:::-;5878:433;;;;;;6063:6;6062:7;:35;;6089:8;6062:35;;;6072:14;:8;6083:3;6072:14;:::i;:::-;5878:433;;;;;;6119:6;:36;;6132:23;6154:1;6132:19;:23;:::i;:::-;6119:36;;;6128:1;6119:36;5878:433;;;;6178:6;6177:7;:37;;6191:23;6213:1;6191:19;:23;:::i;:::-;6177:37;;;6187:1;6177:37;5878:433;;;;6232:1;5878:433;;;;6251:1;5878:433;;;;6269:5;-1:-1:-1;;;;;5878:433:0;;;;;6290:15;5878:433;;;5869:443;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;5838:21:0;5837:475;6358:471;;;;;;;;;-1:-1:-1;;;;;6349:8:0;;;;;6358:471;6399:6;:22;;6416:5;6399:22;;;6408:5;6399:22;-1:-1:-1;;;;;6358:471:0;;;;;6436:6;6435:7;:23;;6453:5;6435:23;;;6445:5;6435:23;-1:-1:-1;;;;;6358:471:0;;;6469:5;6358:471;;;;;;6491:6;:34;;6511:14;:8;6522:3;6511:14;:::i;:::-;6491:34;;;6500:8;6491:34;6358:471;;;;;;6543:6;6542:7;:35;;6563:14;6574:3;6563:8;:14;:::i;:::-;6542:35;;;6552:8;6542:35;6358:471;;;;;;6599:6;:55;;6653:1;6613:36;6630:19;-1:-1:-1;;;6613:36:0;:::i;:::-;6612:42;;;;:::i;:::-;6599:55;;;6608:1;6599:55;6358:471;;;;6677:6;6676:7;:56;;6731:1;6691:36;6708:19;-1:-1:-1;;;6691:36:0;:::i;:::-;6690:42;;;;:::i;:::-;6676:56;;;6686:1;6676:56;6358:471;;;;6750:1;6358:471;;;;6769:1;6358:471;;;;6787:5;-1:-1:-1;;;;;6358:471:0;;;;;6808:15;6358:471;;;6349:481;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6318:21:0;6317:513;6876:471;;;;;;;;;-1:-1:-1;;;;;6867:8:0;;;;;6876:471;6917:6;:22;;6934:5;6917:22;;;6926:5;6917:22;-1:-1:-1;;;;;6876:471:0;;;;;6954:6;6953:7;:23;;6971:5;6953:23;;;6963:5;6953:23;-1:-1:-1;;;;;6876:471:0;;;6987:5;6876:471;;;;;;7009:6;:34;;7029:14;:8;7040:3;7029:14;:::i;:::-;7009:34;;;7018:8;7009:34;6876:471;;;;;;7061:6;7060:7;:35;;7081:14;7092:3;7081:8;:14;:::i;:::-;7060:35;;;7070:8;7060:35;6876:471;;;;;;7117:6;:55;;7171:1;7131:36;7148:19;-1:-1:-1;;;7131:36:0;:::i;:::-;7130:42;;;;:::i;:::-;7117:55;;;7126:1;7117:55;6876:471;;;;7195:6;7194:7;:56;;7249:1;7209:36;7226:19;-1:-1:-1;;;7209:36:0;:::i;:::-;7208:42;;;;:::i;:::-;7194:56;;;7204:1;7194:56;6876:471;;;;7268:1;6876:471;;;;7287:1;6876:471;;;;7305:5;-1:-1:-1;;;;;6876:471:0;;;;;7326:15;6876:471;;;6867:481;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;6836:21:0;6835:513;-1:-1:-1;;;;;;;4668:2685:0:o;8303:124::-;8369:4;8387:35;8397:10;8409:3;8414:7;8387:9;:35::i;9870:212::-;-1:-1:-1;;;;;9968:18:0;;;9957:4;9968:18;;;:10;:18;;;;;;;;:38;;;;;;:28;;;;:38;;;;;:48;;;10026:35;1678:25:1;;;9957:4:0;;9968:38;:18;10026:35;;1651:18:1;10026:35:0;;;;;;;;-1:-1:-1;10073:4:0;9870:212;;;;;:::o;10088:294::-;-1:-1:-1;;;;;9470:17:0;;10170:4;9470:17;;;:10;:17;;;;;:25;10225:7;-1:-1:-1;10205:27:0;10197:36;;;;;;-1:-1:-1;;;;;10239:17:0;;;:4;:17;;;:10;:17;;;;;;:36;;;;;;;10281:15;;;;;;;;;;:34;;;;;;10326:29;;;;;;10268:7;1678:25:1;;1666:2;1651:18;;1532:177;16276:353:0;16380:13;16395:10;16412:17;16440:72;16486:6;:24;;16505:5;16486:24;;;16495:7;16486:24;16457:6;16456:7;:25;;16476:5;16456:25;;;16466:7;16456:25;16446:36;;-1:-1:-1;;;16446:36:0;:::i;:::-;:65;;;;:::i;:::-;16440:5;:72::i;:::-;16412:101;;16525:30;16545:9;16525:19;:30::i;:::-;16518:37;-1:-1:-1;16575:10:0;16582:3;16518:37;16575:10;:::i;:::-;16567:19;;:4;:19;:::i;:::-;16560:26;;16599:25;16619:4;16599:19;:25::i;:::-;16591:33;;16407:222;16276:353;;;;;;:::o;16040:231::-;16143:6;16153:1;16148;16143:6;;16142:12;16177:85;16191:6;16184:4;:13;16177:85;;;16215:4;16206:13;;16254:1;16246:4;16239;16234:2;:9;;;;;:::i;:::-;;:16;16233:22;;;;;:::i;:::-;;16226:29;;16177:85;;;16111:156;16040:231;;;:::o;12609:3426::-;12683:10;3559;-1:-1:-1;;;;;12724:30:0;;;;;;:63;;-1:-1:-1;3615:49:0;-1:-1:-1;;;;;12758:29:0;;;12724:63;12716:77;;;;-1:-1:-1;;;12716:77:0;;9501:2:1;12716:77:0;;;9483:21:1;9540:1;9520:18;;;9513:29;-1:-1:-1;;;9558:18:1;;;9551:31;9599:18;;12716:77:0;;;;;;;;;-1:-1:-1;;;;;12840:2:0;12815:27;;;;-1:-1:-1;;;;;12928:41:0;;12925:1;12921:49;13004:9;;;13062:18;13056:25;;13053:1;13049:33;13116:9;;;13174:10;13168:17;;13165:1;13161:25;13220:9;;;13278:6;13272:13;;13269:1;13265:21;13320:9;;;13378:4;13372:11;;13369:1;13365:19;;;13418:9;;;13476:3;13470:10;;13467:1;13463:18;13515:9;;;13567:10;;;13564:1;13560:18;;;13612:9;;;;13657:10;;;13095;;13199;;;13299;;;13397;13494;;;13591;13680;13714:3;13707:10;;13703:75;;13739:3;13733;:9;13723:5;:20;;13719:24;;13703:75;;;13774:3;13768;:9;13758:5;:20;;13754:24;;13703:75;13864:9;;;13859:3;13855:19;;;13889:11;;;;13947:9;;;;13997;;13988:19;;;14022:11;;;14080:9;14130;;14121:19;;;14155:11;;;14213:9;14263;;14254:19;;;14288:11;;;14346:9;14396;;14387:19;;;14421:11;;;14479:9;14529;;14520:19;;;14554:11;;;14612:9;14662;;14653:19;;;14687:11;;;14745:9;14795;;14786:19;;;14820:11;;;14878:9;14928;;14919:19;;;14953:11;;;15011:9;15061;;15052:19;;;15086:11;;;15144:9;15194;;15185:19;;;15219:11;;;15277:9;15327;;15318:19;;;15352:11;;;15410:9;15460;;15451:19;;;15485:11;;;;15543:9;;;;15593;;15584:19;;;;;13864:9;-1:-1:-1;;13802:17:0;;13824:2;13801:25;13925:10;;;;;;;13915:21;14058:10;;;;;;;14048:21;;;;14191:10;;;;;;;14181:21;;;;14324:10;;;;;;;14314:21;;;;14457:10;;;;;;;14447:21;;;;14590:10;;;;;;;14580:21;;;;14723:10;;;;;;;14713:21;14856:10;;;;;;;14846:21;14989:10;;;;;;;14979:21;15122:10;;;;;;;15112:21;15255:10;;;;;;;15245:21;15388:10;;;;;;;15378:21;15521:10;;;;;;;15511:21;15654:10;;;;;;;15644:21;15709:24;15701:32;;-1:-1:-1;;15764:53:0;;13816:3;15763:62;;;;15870:39;15854:55;;15853:64;;15933:17;;;;;;;;;:92;;15994:12;-1:-1:-1;;;;;15963:43:0;:27;15983:6;15963:19;:27::i;:::-;-1:-1:-1;;;;;15963:43:0;;;:62;;16018:7;15933:92;;15963:62;16009:6;15933:92;;;15953:7;15933:92;15926:99;12609:3426;-1:-1:-1;;;;;;;;;12609:3426:0:o;10389:2215::-;10453:20;10496:15;10521:1;10514:4;:8;;;:57;;10565:4;10558:12;;10514:57;;;10541:4;10534:12;;10533:13;;10514:57;10496:75;-1:-1:-1;3504:9:0;10585:36;;;10577:50;;;;-1:-1:-1;;;10577:50:0;;9830:2:1;10577:50:0;;;9812:21:1;9869:1;9849:18;;;9842:29;-1:-1:-1;;;9887:18:1;;;9880:31;9928:18;;10577:50:0;9628:324:1;10577:50:0;10635:13;10651:7;10661:3;10651:13;10668:1;10651:18;:93;;-1:-1:-1;;;10651:93:0;;;10672:34;10651:93;10635:109;;;-1:-1:-1;10764:3:0;10754:13;;:18;10750:83;;10791:34;10783:42;10830:3;10782:51;10750:83;10853:3;10843:13;;:18;10839:83;;10880:34;10872:42;10919:3;10871:51;10839:83;10942:3;10932:13;;:18;10928:83;;10969:34;10961:42;11008:3;10960:51;10928:83;11031:4;11021:14;;:19;11017:84;;11059:34;11051:42;11098:3;11050:51;11017:84;11121:4;11111:14;;:19;11107:84;;11149:34;11141:42;11188:3;11140:51;11107:84;11211:4;11201:14;;:19;11197:84;;11239:34;11231:42;11278:3;11230:51;11197:84;11301:4;11291:14;;:19;11287:84;;11329:34;11321:42;11368:3;11320:51;11287:84;11391:5;11381:15;;:20;11377:85;;11420:34;11412:42;11459:3;11411:51;11377:85;11482:5;11472:15;;:20;11468:85;;11511:34;11503:42;11550:3;11502:51;11468:85;11573:5;11563:15;;:20;11559:85;;11602:34;11594:42;11641:3;11593:51;11559:85;11664:5;11654:15;;:20;11650:85;;11693:34;11685:42;11732:3;11684:51;11650:85;11755:6;11745:16;;:21;11741:86;;11785:34;11777:42;11824:3;11776:51;11741:86;11847:6;11837:16;;:21;11833:86;;11877:34;11869:42;11916:3;11868:51;11833:86;11939:6;11929:16;;:21;11925:86;;11969:34;11961:42;12008:3;11960:51;11925:86;12031:6;12021:16;;:21;12017:86;;12061:34;12053:42;12100:3;12052:51;12017:86;12123:7;12113:17;;:22;12109:86;;12154:33;12146:41;12192:3;12145:50;12109:86;12215:7;12205:17;;:22;12201:85;;12246:32;12238:40;12283:3;12237:49;12201:85;12306:7;12296:17;;:22;12292:83;;12337:30;12329:38;12372:3;12328:47;12292:83;12395:7;12385:17;;:22;12381:78;;12426:25;12418:33;12456:3;12417:42;12381:78;12478:1;12471:4;:8;;;12467:47;;;12509:5;-1:-1:-1;;12489:25:0;;;;;:::i;:::-;;12481:33;;12467:47;12571:7;12562:5;:17;:22;:30;;12591:1;12562:30;;;12587:1;12562:30;12545:48;;12555:2;12546:5;:11;;12545:48;12522:72;;10480:2120;;10389:2215;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1714:456::-;1791:6;1799;1807;1860:2;1848:9;1839:7;1835:23;1831:32;1828:52;;;1876:1;1873;1866:12;1828:52;1915:9;1902:23;1934:31;1959:5;1934:31;:::i;:::-;1984:5;-1:-1:-1;2041:2:1;2026:18;;2013:32;2054:33;2013:32;2054:33;:::i;:::-;1714:456;;2106:7;;-1:-1:-1;;;2160:2:1;2145:18;;;;2132:32;;1714:456::o;2364:794::-;2452:6;2460;2468;2476;2529:2;2517:9;2508:7;2504:23;2500:32;2497:52;;;2545:1;2542;2535:12;2497:52;2584:9;2571:23;2603:31;2628:5;2603:31;:::i;:::-;2653:5;-1:-1:-1;2705:2:1;2690:18;;2677:32;;-1:-1:-1;2760:2:1;2745:18;;2732:32;2783:18;2813:14;;;2810:34;;;2840:1;2837;2830:12;2810:34;2878:6;2867:9;2863:22;2853:32;;2923:7;2916:4;2912:2;2908:13;2904:27;2894:55;;2945:1;2942;2935:12;2894:55;2985:2;2972:16;3011:2;3003:6;3000:14;2997:34;;;3027:1;3024;3017:12;2997:34;3072:7;3067:2;3058:6;3054:2;3050:15;3046:24;3043:37;3040:57;;;3093:1;3090;3083:12;3040:57;2364:794;;;;-1:-1:-1;;3124:2:1;3116:11;;-1:-1:-1;;;2364:794:1:o;3163:247::-;3222:6;3275:2;3263:9;3254:7;3250:23;3246:32;3243:52;;;3291:1;3288;3281:12;3243:52;3330:9;3317:23;3349:31;3374:5;3349:31;:::i;:::-;3399:5;3163:247;-1:-1:-1;;;3163:247:1:o;3811:388::-;3879:6;3887;3940:2;3928:9;3919:7;3915:23;3911:32;3908:52;;;3956:1;3953;3946:12;3908:52;3995:9;3982:23;4014:31;4039:5;4014:31;:::i;:::-;4064:5;-1:-1:-1;4121:2:1;4106:18;;4093:32;4134:33;4093:32;4134:33;:::i;:::-;4186:7;4176:17;;;3811:388;;;;;:::o;4204:127::-;4265:10;4260:3;4256:20;4253:1;4246:31;4296:4;4293:1;4286:15;4320:4;4317:1;4310:15;4336:128;4403:9;;;4424:11;;;4421:37;;;4438:18;;:::i;4469:559::-;-1:-1:-1;;;;;4682:32:1;;4664:51;;4746:2;4731:18;;4724:34;;;4794:2;4789;4774:18;;4767:30;;;4813:18;;4806:34;;;4833:6;4883;4877:3;4862:19;;4849:49;4948:1;4918:22;;;4942:3;4914:32;;;4907:43;;;;5011:2;4990:15;;;-1:-1:-1;;4986:29:1;4971:45;4967:55;;4469:559;-1:-1:-1;;;4469:559:1:o;5033:277::-;5100:6;5153:2;5141:9;5132:7;5128:23;5124:32;5121:52;;;5169:1;5166;5159:12;5121:52;5201:9;5195:16;5254:5;5247:13;5240:21;5233:5;5230:32;5220:60;;5276:1;5273;5266:12;5315:251;5385:6;5438:2;5426:9;5417:7;5413:23;5409:32;5406:52;;;5454:1;5451;5444:12;5406:52;5486:9;5480:16;5505:31;5530:5;5505:31;:::i;5571:570::-;5794:13;;5776:32;;5868:4;5856:17;;;5850:24;-1:-1:-1;;;;;5846:50:1;5824:20;;;5817:80;5944:4;5932:17;;;5926:24;-1:-1:-1;;;;;6041:21:1;;;6019:20;;;6012:51;;;;6123:4;6111:17;;;6105:24;6101:33;6079:20;;;6072:63;;;;5763:3;5748:19;;5571:570::o;6146:245::-;6225:6;6233;6286:2;6274:9;6265:7;6261:23;6257:32;6254:52;;;6302:1;6299;6292:12;6254:52;-1:-1:-1;;6325:16:1;;6381:2;6366:18;;;6360:25;6325:16;;6360:25;;-1:-1:-1;6146:245:1:o;6396:168::-;6469:9;;;6500;;6517:15;;;6511:22;;6497:37;6487:71;;6538:18;;:::i;6569:127::-;6630:10;6625:3;6621:20;6618:1;6611:31;6661:4;6658:1;6651:15;6685:4;6682:1;6675:15;6701:120;6741:1;6767;6757:35;;6772:18;;:::i;:::-;-1:-1:-1;6806:9:1;;6701:120::o;6826:193::-;6924:1;6913:16;;;6895;;;;6891:39;-1:-1:-1;;6945:23:1;;6980:8;6970:19;;6942:48;6939:74;;;6993:18;;:::i;7024:189::-;7120:1;7091:16;;;7109;;;;7087:39;7174:7;7141:18;;-1:-1:-1;;7161:22:1;;7138:46;7135:72;;;7187:18;;:::i;7411:1218::-;7629:13;;-1:-1:-1;;;;;1281:31:1;1269:44;;7597:3;7582:19;;7701:4;7693:6;7689:17;7683:24;7716:54;7764:4;7753:9;7749:20;7735:12;-1:-1:-1;;;;;1281:31:1;1269:44;;1215:104;7716:54;;7819:4;7811:6;7807:17;7801:24;7834:55;7883:4;7872:9;7868:20;7852:14;7294:8;7283:20;7271:33;;7218:92;7834:55;;7938:4;7930:6;7926:17;7920:24;7953:54;8001:4;7990:9;7986:20;7970:14;7390:1;7379:20;7367:33;;7315:91;7953:54;;8056:4;8048:6;8044:17;8038:24;8071:54;8119:4;8108:9;8104:20;8088:14;7390:1;7379:20;7367:33;;7315:91;8071:54;;8181:4;8173:6;8169:17;8163:24;8156:4;8145:9;8141:20;8134:54;8244:4;8236:6;8232:17;8226:24;8219:4;8208:9;8204:20;8197:54;8307:4;8299:6;8295:17;8289:24;8282:4;8271:9;8267:20;8260:54;8333:6;8393:2;8385:6;8381:15;8375:22;8370:2;8359:9;8355:18;8348:50;;8417:6;8472:2;8464:6;8460:15;8454:22;8485:54;8535:2;8524:9;8520:18;8504:14;-1:-1:-1;;;;;1281:31:1;1269:44;;1215:104;8485:54;-1:-1:-1;;8558:6:1;8606:15;;;8600:22;8580:18;;;;8573:50;7411:1218;:::o;8634:489::-;8731:6;8739;8747;8755;8808:3;8796:9;8787:7;8783:23;8779:33;8776:53;;;8825:1;8822;8815:12;8776:53;8854:9;8848:16;8838:26;;8907:2;8896:9;8892:18;8886:25;-1:-1:-1;;;;;8944:5:1;8940:46;8933:5;8930:57;8920:85;;9001:1;8998;8991:12;8920:85;9069:2;9054:18;;9048:25;9113:2;9098:18;;;9092:25;8634:489;;9024:5;;-1:-1:-1;8634:489:1;-1:-1:-1;;;8634:489:1:o;9128:166::-;9158:1;9199;9196;9185:16;9220:3;9210:37;;9227:18;;:::i;:::-;9284:3;9280:1;9277;9266:16;9261:27;9256:32;;;9128:166;;;;:::o

Swarm Source

ipfs://6d4ddbd0b468d6b637e6ca4a9007a17e3ee826eb67e2cd51cd8fd19f827c37c3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.