ETH Price: $2,505.40 (-0.24%)

Token

Defiance (DEF)
 

Overview

Max Total Supply

8,532,774.235198701882797521 DEF

Holders

534 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
353.97 DEF

Value
$0.00
0xDf612AED88E4e4891634c6a5C1eF3995FB3B3f98
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Defiance is a platform driven by a community-focused approach. $DEF is a deflationary ERC20 token (for now, soon it will be implemented on Polkadot network, too) with DAO and Governance feature.

Private Sale Information

Private Sale Token Price : $0.25
Private Sale Allocation : 749250 DEF
Private Sale Vesting Period : No vesting

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Defiance

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2020-08-29
*/

pragma solidity ^0.5.13;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }
}




/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();
  event NotPausable();

  bool public paused = false;
  bool public canPause = true;

  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused || msg.sender == owner);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
     * @dev called by the owner to pause, triggers stopped state
     **/
    function pause() onlyOwner whenNotPaused public {
        require(canPause == true);
        paused = true;
        emit Pause();
    }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    require(paused == true);
    paused = false;
    emit Unpause();
  }
  
  /**
     * @dev Prevent the token from ever being paused again
     **/
    function notPausable() onlyOwner public{
        paused = false;
        canPause = false;
        emit NotPausable();
    }
}




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

contract Defiance is Pausable {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private INITIAL_SUPPLY = 1e25; // 1B
	uint256 constant private BURN_RATE = 5; // 5% per tx
	uint256 constant private SUPPLY_FLOOR = 1; // 1% of 1B = 10M
	uint256 constant private MIN_STAKE_AMOUNT = 1e21; // 1,000

	string constant public name = "Defiance";
	string constant public symbol = "DEF";
	uint8 constant public decimals = 18;

	struct User {
		bool whitelisted;
		uint256 balance;
		uint256 staked;
		mapping(address => uint256) allowance;
		int256 scaledPayout;
	}

	struct Info {
		uint256 totalSupply;
		uint256 totalStaked;
		mapping(address => User) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Whitelist(address indexed user, bool status);
	event Stake(address indexed owner, uint256 tokens);
	event Unstake(address indexed owner, uint256 tokens);
	event Collect(address indexed owner, uint256 tokens);
	event Burn(uint256 tokens);


	constructor() public {
		info.admin = msg.sender;
		info.totalSupply = INITIAL_SUPPLY;
		info.users[msg.sender].balance = INITIAL_SUPPLY;
		emit Transfer(address(0x0), msg.sender, INITIAL_SUPPLY);
		whitelist(msg.sender, true);
	}

	function stake(uint256 _tokens) external {
		_stake(_tokens);
	}

	function unstake(uint256 _tokens) external {
		_unstake(_tokens);
	}

	function collect() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends >= 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		info.users[msg.sender].balance += _dividends;
		emit Transfer(address(this), msg.sender, _dividends);
		emit Collect(msg.sender, _dividends);
		return _dividends;
	}

	function burn(uint256 _tokens) external {
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		uint256 _burnedAmount = _tokens;
		if (info.totalStaked > 0) {
			_burnedAmount /= 2;
			info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaked;
			emit Transfer(msg.sender, address(this), _burnedAmount);
		}
		info.totalSupply -= _burnedAmount;
		emit Transfer(msg.sender, address(0x0), _burnedAmount);
		emit Burn(_burnedAmount);
	}

	function distribute(uint256 _tokens) external {
		require(info.totalStaked > 0);
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		info.scaledPayoutPerToken += _tokens * FLOAT_SCALAR / info.totalStaked;
		emit Transfer(msg.sender, address(this), _tokens);
	}

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

	function approve(address _spender, uint256 _tokens) external whenNotPaused returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

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

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

	function bulkTransfer(address[] calldata _receivers, uint256[] calldata _amounts) external {
		require(_receivers.length == _amounts.length);
		for (uint256 i = 0; i < _receivers.length; i++) {
			_transfer(msg.sender, _receivers[i], _amounts[i]);
		}
	}

	function whitelist(address _user, bool _status) public {
		require(msg.sender == info.admin);
		info.users[_user].whitelisted = _status;
		emit Whitelist(_user, _status);
	}


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

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

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

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

	function dividendsOf(address _user) public view returns (uint256) {
		return uint256(int256(info.scaledPayoutPerToken * info.users[_user].staked) - info.users[_user].scaledPayout) / FLOAT_SCALAR;
	}

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

	function isWhitelisted(address _user) public view returns (bool) {
		return info.users[_user].whitelisted;
	}

	function allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensStaked, uint256 userBalance, uint256 userStaked, uint256 userDividends) {
		return (totalSupply(), totalStaked(), balanceOf(_user), stakedOf(_user), dividendsOf(_user));
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
		uint256 _burnedAmount = _tokens * BURN_RATE / 100;
		if (totalSupply() - _burnedAmount < INITIAL_SUPPLY * SUPPLY_FLOOR / 100 || isWhitelisted(_from)) {
			_burnedAmount = 0;
		}
		uint256 _transferred = _tokens - _burnedAmount;
		info.users[_to].balance += _transferred;
		emit Transfer(_from, _to, _transferred);
		if (_burnedAmount > 0) {
			if (info.totalStaked > 0) {
				_burnedAmount /= 2;
				info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaked;
				emit Transfer(_from, address(this), _burnedAmount);
			}
			info.totalSupply -= _burnedAmount;
			emit Transfer(_from, address(0x0), _burnedAmount);
			emit Burn(_burnedAmount);
		}
		return _transferred;
	}

	function _stake(uint256 _amount) internal {
		require(balanceOf(msg.sender) >= _amount);
		require(stakedOf(msg.sender) + _amount >= MIN_STAKE_AMOUNT);
		info.totalStaked += _amount;
		info.users[msg.sender].staked += _amount;
		info.users[msg.sender].scaledPayout += int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(msg.sender, address(this), _amount);
		emit Stake(msg.sender, _amount);
	}

	function _unstake(uint256 _amount) internal {
		require(stakedOf(msg.sender) >= _amount);
		uint256 _burnedAmount = _amount * BURN_RATE / 100;
		info.scaledPayoutPerToken += _burnedAmount * FLOAT_SCALAR / info.totalStaked;
		info.totalStaked -= _amount;
		info.users[msg.sender].balance -= _burnedAmount;
		info.users[msg.sender].staked -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(address(this), msg.sender, _amount - _burnedAmount);
		emit Unstake(msg.sender, _amount);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"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":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[],"name":"NotPausable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Stake","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"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensStaked","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userStaked","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"canPause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"notPausable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"stake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"stakedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"unstake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405260008060146101000a81548160ff0219169083151502179055506001600060156101000a81548160ff02191690831515021790555034801561004557600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a084595161401484a0000006001600001819055506a084595161401484a000000600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a084595161401484a0000006040518082815260200191505060405180910390a36101b63360016101bb60201b60201c565b6102cb565b600160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021857600080fd5b80600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b6124be806102da6000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80635c975abb1161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610965578063e5225381146109dd578063f2fde38b146109fb578063f59c370814610a3f576101d9565b806395d89b41146107f6578063a694fc3a14610879578063a9059cbb146108a7578063af500ba31461090d576101d9565b8063817b1cd2116100de578063817b1cd2146107565780638456cb59146107745780638da5cb5b1461077e57806391c05b0b146107c8576101d9565b80635c975abb146106d257806370a08231146106f4578063715018a61461074c576101d9565b8063313ce5671161017c5780634000aea01161014b5780634000aea01461056b57806342966c68146106265780634be8b05e1461065457806357f6b8121461065e576101d9565b8063313ce567146104bf578063323be1c5146104e35780633af32abf146105055780633f4ba83a14610561576101d9565b8063153a1f3e116101b8578063153a1f3e1461031f57806318160ddd146103ed57806323b872dd1461040b5780632e17de7814610491576101d9565b806265318b146101de57806306fdde0314610236578063095ea7b3146102b9575b600080fd5b610220600480360360208110156101f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8f565b6040518082815260200191505060405180910390f35b61023e610b3e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b77565b604051808215151515815260200191505060405180910390f35b6103eb6004803603604081101561033557600080fd5b810190808035906020019064010000000081111561035257600080fd5b82018360208201111561036457600080fd5b8035906020019184602083028401116401000000008311171561038657600080fd5b9091929391929390803590602001906401000000008111156103a757600080fd5b8201836020820111156103b957600080fd5b803590602001918460208302840111640100000000831117156103db57600080fd5b9091929391929390505050610cdf565b005b6103f5610d5c565b6040518082815260200191505060405180910390f35b6104776004803603606081101561042157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d69565b604051808215151515815260200191505060405180910390f35b6104bd600480360360208110156104a757600080fd5b8101908080359060200190929190505050610f11565b005b6104c7610f1d565b604051808260ff1660ff16815260200191505060405180910390f35b6104eb610f22565b604051808215151515815260200191505060405180910390f35b6105476004803603602081101561051b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f35565b604051808215151515815260200191505060405180910390f35b610569610f91565b005b61060c6004803603606081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105c857600080fd5b8201836020820111156105da57600080fd5b803590602001918460018302840111640100000000831117156105fc57600080fd5b909192939192939050505061106b565b604051808215151515815260200191505060405180910390f35b6106526004803603602081101561063c57600080fd5b810190808035906020019092919050505061119e565b005b61065c61136a565b005b6106a06004803603602081101561067457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611425565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106da61146b565b604051808215151515815260200191505060405180910390f35b6107366004803603602081101561070a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147e565b6040518082815260200191505060405180910390f35b6107546114d7565b005b61075e6115d7565b6040518082815260200191505060405180910390f35b61077c6115e3565b005b610786611716565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f4600480360360208110156107de57600080fd5b810190808035906020019092919050505061173b565b005b6107fe611847565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083e578082015181840152602081019050610823565b50505050905090810190601f16801561086b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108a56004803603602081101561088f57600080fd5b8101908080359060200190929190505050611880565b005b6108f3600480360360408110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061188c565b604051808215151515815260200191505060405180910390f35b61094f6004803603602081101561092357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611914565b6040518082815260200191505060405180910390f35b6109c76004803603604081101561097b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b6040518082815260200191505060405180910390f35b6109e56119f0565b6040518082815260200191505060405180910390f35b610a3d60048036036020811015610a1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b77565b005b610a8d60048036036040811015610a5557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611cc8565b005b600068010000000000000000600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160030154020381610b3657fe5b049050919050565b6040518060400160405280600881526020017f44656669616e636500000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff161580610be057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610be957600080fd5b81600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610cf157600080fd5b60008090505b84849050811015610d5557610d4733868684818110610d1257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610d3b57fe5b90506020020135611dd8565b508080600101915050610cf7565b5050505050565b6000600160000154905090565b60008060149054906101000a900460ff161580610dd257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ddb57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e6a57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610f05848484611dd8565b50600190509392505050565b610f1a816120c2565b50565b601281565b600060159054906101000a900460ff1681565b6000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fea57600080fd5b600060149054906101000a900460ff1661100357600080fd5b60011515600060149054906101000a900460ff1615151461102357600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600080611079338787611dd8565b90506000863b905060008163ffffffff161115611190578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561114b57600080fd5b505af115801561115f573d6000803e3d6000fd5b505050506040513d602081101561117557600080fd5b810190808051906020019092919050505061118f57600080fd5b5b600192505050949350505050565b806111a83361147e565b10156111b357600080fd5b80600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060008190506000600180015411156112b6576002818161122257fe5b04905060018001546801000000000000000082028161123d57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b80600160000160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c357600080fd5b60008060146101000a81548160ff02191690831515021790555060008060156101000a81548160ff0219169083151502179055507faff39f66825d4448497d384dee3f4a3adf00a622960add00806503ae4ccee01c60405160405180910390a1565b6000806000806000611435610d5c565b61143d6115d7565b6114468861147e565b61144f89611914565b6114588a610a8f565b9450945094509450945091939590929450565b600060149054906101000a900460ff1681565b600061148982611914565b600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461153057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800154905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461163c57600080fd5b600060149054906101000a900460ff1615806116a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6116ad57600080fd5b60011515600060159054906101000a900460ff161515146116cd57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060018001541161174c57600080fd5b806117563361147e565b101561176157600080fd5b80600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506001800154680100000000000000008202816117cc57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f444546000000000000000000000000000000000000000000000000000000000081525081565b611889816122df565b50565b60008060149054906101000a900460ff1615806118f557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6118fe57600080fd5b611909338484611dd8565b506001905092915050565b6000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806119fc33610a8f565b90506000811015611a0c57600080fd5b680100000000000000008102600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bd057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c0a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d2557600080fd5b80600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b600081611de48561147e565b1015611def57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600060646005840281611e5157fe5b049050606460016a084595161401484a0000000281611e6c57fe5b0481611e76610d5c565b031080611e885750611e8785610f35565b5b15611e9257600090505b6000818403905080600160020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360008211156120b6576000600180015411156120055760028281611f7157fe5b049150600180015468010000000000000000830281611f8c57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b81600160000160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b806120cc33611914565b10156120d757600080fd5b6000606460058302816120e657fe5b04905060018001546801000000000000000082028161210157fe5b0460016003016000828254019250508190555081600180016000828254039250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506001600301548202600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b806122e93361147e565b10156122f457600080fd5b683635c9adc5dea000008161230833611914565b01101561231457600080fd5b80600180016000828254019250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506001600301548102600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a25056fea265627a7a72315820f51a8ae78b3e3c89999db5bb5fafdd8e32a6310d1285da3dede23353807ef2ea64736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80635c975abb1161010457806395d89b41116100a2578063dd62ed3e11610071578063dd62ed3e14610965578063e5225381146109dd578063f2fde38b146109fb578063f59c370814610a3f576101d9565b806395d89b41146107f6578063a694fc3a14610879578063a9059cbb146108a7578063af500ba31461090d576101d9565b8063817b1cd2116100de578063817b1cd2146107565780638456cb59146107745780638da5cb5b1461077e57806391c05b0b146107c8576101d9565b80635c975abb146106d257806370a08231146106f4578063715018a61461074c576101d9565b8063313ce5671161017c5780634000aea01161014b5780634000aea01461056b57806342966c68146106265780634be8b05e1461065457806357f6b8121461065e576101d9565b8063313ce567146104bf578063323be1c5146104e35780633af32abf146105055780633f4ba83a14610561576101d9565b8063153a1f3e116101b8578063153a1f3e1461031f57806318160ddd146103ed57806323b872dd1461040b5780632e17de7814610491576101d9565b806265318b146101de57806306fdde0314610236578063095ea7b3146102b9575b600080fd5b610220600480360360208110156101f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a8f565b6040518082815260200191505060405180910390f35b61023e610b3e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b77565b604051808215151515815260200191505060405180910390f35b6103eb6004803603604081101561033557600080fd5b810190808035906020019064010000000081111561035257600080fd5b82018360208201111561036457600080fd5b8035906020019184602083028401116401000000008311171561038657600080fd5b9091929391929390803590602001906401000000008111156103a757600080fd5b8201836020820111156103b957600080fd5b803590602001918460208302840111640100000000831117156103db57600080fd5b9091929391929390505050610cdf565b005b6103f5610d5c565b6040518082815260200191505060405180910390f35b6104776004803603606081101561042157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d69565b604051808215151515815260200191505060405180910390f35b6104bd600480360360208110156104a757600080fd5b8101908080359060200190929190505050610f11565b005b6104c7610f1d565b604051808260ff1660ff16815260200191505060405180910390f35b6104eb610f22565b604051808215151515815260200191505060405180910390f35b6105476004803603602081101561051b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f35565b604051808215151515815260200191505060405180910390f35b610569610f91565b005b61060c6004803603606081101561058157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105c857600080fd5b8201836020820111156105da57600080fd5b803590602001918460018302840111640100000000831117156105fc57600080fd5b909192939192939050505061106b565b604051808215151515815260200191505060405180910390f35b6106526004803603602081101561063c57600080fd5b810190808035906020019092919050505061119e565b005b61065c61136a565b005b6106a06004803603602081101561067457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611425565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106da61146b565b604051808215151515815260200191505060405180910390f35b6107366004803603602081101561070a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061147e565b6040518082815260200191505060405180910390f35b6107546114d7565b005b61075e6115d7565b6040518082815260200191505060405180910390f35b61077c6115e3565b005b610786611716565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107f4600480360360208110156107de57600080fd5b810190808035906020019092919050505061173b565b005b6107fe611847565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083e578082015181840152602081019050610823565b50505050905090810190601f16801561086b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108a56004803603602081101561088f57600080fd5b8101908080359060200190929190505050611880565b005b6108f3600480360360408110156108bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061188c565b604051808215151515815260200191505060405180910390f35b61094f6004803603602081101561092357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611914565b6040518082815260200191505060405180910390f35b6109c76004803603604081101561097b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611963565b6040518082815260200191505060405180910390f35b6109e56119f0565b6040518082815260200191505060405180910390f35b610a3d60048036036020811015610a1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b77565b005b610a8d60048036036040811015610a5557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611cc8565b005b600068010000000000000000600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600160020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600160030154020381610b3657fe5b049050919050565b6040518060400160405280600881526020017f44656669616e636500000000000000000000000000000000000000000000000081525081565b60008060149054906101000a900460ff161580610be057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610be957600080fd5b81600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610cf157600080fd5b60008090505b84849050811015610d5557610d4733868684818110610d1257fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610d3b57fe5b90506020020135611dd8565b508080600101915050610cf7565b5050505050565b6000600160000154905090565b60008060149054906101000a900460ff161580610dd257506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ddb57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610e6a57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610f05848484611dd8565b50600190509392505050565b610f1a816120c2565b50565b601281565b600060159054906101000a900460ff1681565b6000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fea57600080fd5b600060149054906101000a900460ff1661100357600080fd5b60011515600060149054906101000a900460ff1615151461102357600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600080611079338787611dd8565b90506000863b905060008163ffffffff161115611190578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561114b57600080fd5b505af115801561115f573d6000803e3d6000fd5b505050506040513d602081101561117557600080fd5b810190808051906020019092919050505061118f57600080fd5b5b600192505050949350505050565b806111a83361147e565b10156111b357600080fd5b80600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060008190506000600180015411156112b6576002818161122257fe5b04905060018001546801000000000000000082028161123d57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b80600160000160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113c357600080fd5b60008060146101000a81548160ff02191690831515021790555060008060156101000a81548160ff0219169083151502179055507faff39f66825d4448497d384dee3f4a3adf00a622960add00806503ae4ccee01c60405160405180910390a1565b6000806000806000611435610d5c565b61143d6115d7565b6114468861147e565b61144f89611914565b6114588a610a8f565b9450945094509450945091939590929450565b600060149054906101000a900460ff1681565b600061148982611914565b600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461153057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006001800154905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461163c57600080fd5b600060149054906101000a900460ff1615806116a457506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6116ad57600080fd5b60011515600060159054906101000a900460ff161515146116cd57600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060018001541161174c57600080fd5b806117563361147e565b101561176157600080fd5b80600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506001800154680100000000000000008202816117cc57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f444546000000000000000000000000000000000000000000000000000000000081525081565b611889816122df565b50565b60008060149054906101000a900460ff1615806118f557506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6118fe57600080fd5b611909338484611dd8565b506001905092915050565b6000600160020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806119fc33610a8f565b90506000811015611a0c57600080fd5b680100000000000000008102600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bd057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c0a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d2557600080fd5b80600160020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b600081611de48561147e565b1015611def57600080fd5b81600160020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540392505081905550600060646005840281611e5157fe5b049050606460016a084595161401484a0000000281611e6c57fe5b0481611e76610d5c565b031080611e885750611e8785610f35565b5b15611e9257600090505b6000818403905080600160020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360008211156120b6576000600180015411156120055760028281611f7157fe5b049150600180015468010000000000000000830281611f8c57fe5b046001600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b81600160000160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b806120cc33611914565b10156120d757600080fd5b6000606460058302816120e657fe5b04905060018001546801000000000000000082028161210157fe5b0460016003016000828254019250508190555081600180016000828254039250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506001600301548202600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd836040518082815260200191505060405180910390a25050565b806122e93361147e565b10156122f457600080fd5b683635c9adc5dea000008161230833611914565b01101561231457600080fd5b80600180016000828254019250508190555080600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506001600301548102600160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040518082815260200191505060405180910390a25056fea265627a7a72315820f51a8ae78b3e3c89999db5bb5fafdd8e32a6310d1285da3dede23353807ef2ea64736f6c634300050d0032

Deployed Bytecode Sourcemap

2746:7261:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2746:7261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:200;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7401:200:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3068:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3068:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5670:217;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5670:217:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6533:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6533:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6533:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6533:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6533:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6533:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6533:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6533:259:0;;;;;;;;;;;;:::i;:::-;;6981:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5892:280;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5892:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4245:70;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4245:70:0;;;;;;;;;;;;;;;;;:::i;:::-;;3153:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1566:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7747:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7747:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2262:125;;;:::i;:::-;;6177:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6177:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6177:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6177:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6177:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4700:502;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4700:502:0;;;;;;;;;;;;;;;;;:::i;:::-;;2474:128;;;:::i;:::-;;7863:275;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7863:275:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1535:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7163:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7163:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1193:114;;;:::i;:::-;;7072:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2036:139;;;:::i;:::-;;245:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5207:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5207:306:0;;;;;;;;;;;;;;;;;:::i;:::-;;3112:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3112:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4174:66;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4174:66:0;;;;;;;;;;;;;;;;;:::i;:::-;;5518:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5518:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7292:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7292:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7606:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7606:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4320:375;;;:::i;:::-;;;;;;;;;;;;;;;;;;;920:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;920:178:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6797:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6797:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7401:200;7458:7;2822:5;7550:4;:10;;:17;7561:5;7550:17;;;;;;;;;;;;;;;:30;;;7522:4;:10;;:17;7533:5;7522:17;;;;;;;;;;;;;;;:24;;;7494:4;:25;;;:52;7487:93;7479:117;;;;;;7472:124;;7401:200;;;:::o;3068:40::-;;;;;;;;;;;;;;;;;;;:::o;5670:217::-;5754:4;1741:6;;;;;;;;;;;1740:7;:30;;;;1765:5;;;;;;;;;;;1751:19;;:10;:19;;;1740:30;1732:39;;;;;;5810:7;5765:4;:10;;:22;5776:10;5765:22;;;;;;;;;;;;;;;:32;;:42;5798:8;5765:42;;;;;;;;;;;;;;;:52;;;;5848:8;5827:39;;5836:10;5827:39;;;5858:7;5827:39;;;;;;;;;;;;;;;;;;5878:4;5871:11;;5670:217;;;;:::o;6533:259::-;6658:8;;:15;;6637:10;;:17;;:36;6629:45;;;;;;6684:9;6696:1;6684:13;;6679:109;6703:10;;:17;;6699:1;:21;6679:109;;;6733:49;6743:10;6755;;6766:1;6755:13;;;;;;;;;;;;;;;6770:8;;6779:1;6770:11;;;;;;;;;;;;;6733:9;:49::i;:::-;;6722:3;;;;;;;6679:109;;;;6533:259;;;;:::o;6981:86::-;7025:7;7046:4;:16;;;7039:23;;6981:86;:::o;5892:280::-;5991:4;1741:6;;;;;;;;;;;1740:7;:30;;;;1765:5;;;;;;;;;;;1751:19;;:10;:19;;;1740:30;1732:39;;;;;;6053:7;6010:4;:10;;:17;6021:5;6010:17;;;;;;;;;;;;;;;:27;;:39;6038:10;6010:39;;;;;;;;;;;;;;;;:50;;6002:59;;;;;;6109:7;6066:4;:10;;:17;6077:5;6066:17;;;;;;;;;;;;;;;:27;;:39;6094:10;6066:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;6121:30;6131:5;6138:3;6143:7;6121:9;:30::i;:::-;;6163:4;6156:11;;5892:280;;;;;:::o;4245:70::-;4293:17;4302:7;4293:8;:17::i;:::-;4245:70;:::o;3153:35::-;3186:2;3153:35;:::o;1566:27::-;;;;;;;;;;;;;:::o;7747:111::-;7806:4;7824;:10;;:17;7835:5;7824:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;7817:36;;7747:111;;;:::o;2262:125::-;733:5;;;;;;;;;;;719:19;;:10;:19;;;711:28;;;;;;1924:6;;;;;;;;;;;1916:15;;;;;;2334:4;2324:14;;:6;;;;;;;;;;;:14;;;2316:23;;;;;;2355:5;2346:6;;:14;;;;;;;;;;;;;;;;;;2372:9;;;;;;;;;;2262:125::o;6177:351::-;6272:4;6283:20;6306:35;6316:10;6328:3;6333:7;6306:9;:35::i;:::-;6283:58;;6346:12;6399:3;6387:16;6378:25;;6424:1;6416:5;:9;;;6412:96;;;6450:3;6441:27;;;6469:10;6481:12;6495:5;;6441:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6441:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6441:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6441:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6441:60:0;;;;;;;;;;;;;;;;6433:69;;;;;;6412:96;6519:4;6512:11;;;;6177:351;;;;;;:::o;4700:502::-;4778:7;4753:21;4763:10;4753:9;:21::i;:::-;:32;;4745:41;;;;;;4825:7;4791:4;:10;;:22;4802:10;4791:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;4837:21;4861:7;4837:31;;4896:1;4877:4;:16;;;:20;4873:199;;;4922:1;4905:18;;;;;;;;;4989:4;:16;;;2822:5;4958:13;:28;:47;;;;;;4929:4;:25;;;:76;;;;;;;;;;;5045:4;5016:50;;5025:10;5016:50;;;5052:13;5016:50;;;;;;;;;;;;;;;;;;4873:199;5096:13;5076:4;:16;;;:33;;;;;;;;;;;5148:3;5119:49;;5128:10;5119:49;;;5154:13;5119:49;;;;;;;;;;;;;;;;;;5178:19;5183:13;5178:19;;;;;;;;;;;;;;;;;;4700:502;;:::o;2474:128::-;733:5;;;;;;;;;;;719:19;;:10;:19;;;711:28;;;;;;2533:5;2524:6;;:14;;;;;;;;;;;;;;;;;;2560:5;2549:8;;:16;;;;;;;;;;;;;;;;;;2581:13;;;;;;;;;;2474:128::o;7863:275::-;7919:24;7945:25;7972:19;7993:18;8013:21;8049:13;:11;:13::i;:::-;8064;:11;:13::i;:::-;8079:16;8089:5;8079:9;:16::i;:::-;8097:15;8106:5;8097:8;:15::i;:::-;8114:18;8126:5;8114:11;:18::i;:::-;8041:92;;;;;;;;;;7863:275;;;;;;;:::o;1535:26::-;;;;;;;;;;;;;:::o;7163:124::-;7218:7;7267:15;7276:5;7267:8;:15::i;:::-;7239:4;:10;;:17;7250:5;7239:17;;;;;;;;;;;;;;;:25;;;:43;7232:50;;7163:124;;;:::o;1193:114::-;733:5;;;;;;;;;;;719:19;;:10;:19;;;711:28;;;;;;1270:5;;;;;;;;;;;1251:25;;;;;;;;;;;;1299:1;1283:5;;:18;;;;;;;;;;;;;;;;;;1193:114::o;7072:86::-;7116:7;7137:4;:16;;;7130:23;;7072:86;:::o;2036:139::-;733:5;;;;;;;;;;;719:19;;:10;:19;;;711:28;;;;;;1741:6;;;;;;;;;;;1740:7;:30;;;;1765:5;;;;;;;;;;;1751:19;;:10;:19;;;1740:30;1732:39;;;;;;2115:4;2103:16;;:8;;;;;;;;;;;:16;;;2095:25;;;;;;2140:4;2131:6;;:13;;;;;;;;;;;;;;;;;;2160:7;;;;;;;;;;2036:139::o;245:20::-;;;;;;;;;;;;;:::o;5207:306::-;5285:1;5266:4;:16;;;:20;5258:29;;;;;;5325:7;5300:21;5310:10;5300:9;:21::i;:::-;:32;;5292:41;;;;;;5372:7;5338:4;:10;;:22;5349:10;5338:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;5438:4;:16;;;2822:5;5413:7;:22;:41;;;;;;5384:4;:25;;;:70;;;;;;;;;;;5493:4;5464:44;;5473:10;5464:44;;;5500:7;5464:44;;;;;;;;;;;;;;;;;;5207:306;:::o;3112:37::-;;;;;;;;;;;;;;;;;;;:::o;4174:66::-;4220:15;4227:7;4220:6;:15::i;:::-;4174:66;:::o;5518:147::-;5598:4;1741:6;;;;;;;;;;;1740:7;:30;;;;1765:5;;;;;;;;;;;1751:19;;:10;:19;;;1740:30;1732:39;;;;;;5609:35;5619:10;5631:3;5636:7;5609:9;:35::i;:::-;;5656:4;5649:11;;5518:147;;;;:::o;7292:104::-;7346:7;7367:4;:10;;:17;7378:5;7367:17;;;;;;;;;;;;;;;:24;;;7360:31;;7292:104;;;:::o;7606:136::-;7679:7;7700:4;:10;;:17;7711:5;7700:17;;;;;;;;;;;;;;;:27;;:37;7728:8;7700:37;;;;;;;;;;;;;;;;7693:44;;7606:136;;;;:::o;4320:375::-;4357:7;4371:18;4392:23;4404:10;4392:11;:23::i;:::-;4371:44;;4442:1;4428:10;:15;;4420:24;;;;;;2822:5;4495:10;:25;4449:4;:10;;:22;4460:10;4449:22;;;;;;;;;;;;;;;:35;;;:72;;;;;;;;;;;4560:10;4526:4;:10;;:22;4537:10;4526:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;4604:10;4580:47;;4597:4;4580:47;;;4616:10;4580:47;;;;;;;;;;;;;;;;;;4645:10;4637:31;;;4657:10;4637:31;;;;;;;;;;;;;;;;;;4680:10;4673:17;;;4320:375;:::o;920:178::-;733:5;;;;;;;;;;;719:19;;:10;:19;;;711:28;;;;;;1017:1;997:22;;:8;:22;;;;989:31;;;;;;1060:8;1032:37;;1053:5;;;;;;;;;;;1032:37;;;;;;;;;;;;1084:8;1076:5;;:16;;;;;;;;;;;;;;;;;;920:178;:::o;6797:177::-;6879:4;:10;;;;;;;;;;;;6865:24;;:10;:24;;;6857:33;;;;;;6927:7;6895:4;:10;;:17;6906:5;6895:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;6954:5;6944:25;;;6961:7;6944:25;;;;;;;;;;;;;;;;;;;;;;6797:177;;:::o;8145:885::-;8227:7;8269;8249:16;8259:5;8249:9;:16::i;:::-;:27;;8241:36;;;;;;8311:7;8282:4;:10;;:17;8293:5;8282:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;8323:21;8369:3;2924:1;8347:7;:19;:25;;;;;;8323:49;;8445:3;2982:1;2873:4;8413:29;:35;;;;;;8397:13;8381;:11;:13::i;:::-;:29;:67;:91;;;;8452:20;8466:5;8452:13;:20::i;:::-;8381:91;8377:126;;;8496:1;8480:17;;8377:126;8507:20;8540:13;8530:7;:23;8507:46;;8585:12;8558:4;:10;;:15;8569:3;8558:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;8623:3;8607:34;;8616:5;8607:34;;;8628:12;8607:34;;;;;;;;;;;;;;;;;;8666:1;8650:13;:17;8646:356;;;8698:1;8679:4;:16;;;:20;8675:198;;;8725:1;8708:18;;;;;;;;;8793:4;:16;;;2822:5;8762:13;:28;:47;;;;;;8733:4;:25;;;:76;;;;;;;;;;;8845:4;8821:45;;8830:5;8821:45;;;8852:13;8821:45;;;;;;;;;;;;;;;;;;8675:198;8898:13;8878:4;:16;;;:33;;;;;;;;;;;8946:3;8922:44;;8931:5;8922:44;;;8952:13;8922:44;;;;;;;;;;;;;;;;;;8977:19;8982:13;8977:19;;;;;;;;;;;;;;;;;;8646:356;9013:12;9006:19;;;;8145:885;;;;;:::o;9451:553::-;9532:7;9508:20;9517:10;9508:8;:20::i;:::-;:31;;9500:40;;;;;;9545:21;9591:3;2924:1;9569:7;:19;:25;;;;;;9545:49;;9659:4;:16;;;2822:5;9628:13;:28;:47;;;;;;9599:4;:25;;;:76;;;;;;;;;;;9700:7;9680:4;:16;;;:27;;;;;;;;;;;9746:13;9712:4;:10;;:22;9723:10;9712:22;;;;;;;;;;;;;;;:30;;;:47;;;;;;;;;;;9797:7;9764:4;:10;;:22;9775:10;9764:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;9865:4;:25;;;9855:7;:35;9809:4;:10;;:22;9820:10;9809:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;9925:10;9901:60;;9918:4;9901:60;;;9947:13;9937:7;:23;9901:60;;;;;;;;;;;;;;;;;;9979:10;9971:28;;;9991:7;9971:28;;;;;;;;;;;;;;;;;;9451:553;;:::o;9035:411::-;9115:7;9090:21;9100:10;9090:9;:21::i;:::-;:32;;9082:41;;;;;;3049:4;9159:7;9136:20;9145:10;9136:8;:20::i;:::-;:30;:50;;9128:59;;;;;;9212:7;9192:4;:16;;;:27;;;;;;;;;;;9257:7;9224:4;:10;;:22;9235:10;9224:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;9325:4;:25;;;9315:7;:35;9269:4;:10;;:22;9280:10;9269:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;9390:4;9361:44;;9370:10;9361:44;;;9397:7;9361:44;;;;;;;;;;;;;;;;;;9421:10;9415:26;;;9433:7;9415:26;;;;;;;;;;;;;;;;;;9035:411;:::o

Swarm Source

bzzr://f51a8ae78b3e3c89999db5bb5fafdd8e32a6310d1285da3dede23353807ef2ea
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.