ETH Price: $3,843.77 (-2.43%)

Token

ERC20 ***
 

Overview

Max Total Supply

1,000,000,000,000 ERC20 ***

Holders

655

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ql-crypto.eth
Balance
50,052,098.565169202262440331 ERC20 ***

Value
$0.00
0x765E406Eb1Bb0909F4Eae2fe5B52c21C9E61b498
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

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

[{"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
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.