ETH Price: $3,252.02 (-0.70%)
Gas: 3 Gwei

Contract

0x90e6E082B0aa4bf6AFBA0d11163d920A534EBae4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189703432024-01-09 15:37:11200 days ago1704814631IN
Defiance Finance: DEF Token
0 ETH0.0005772221.82004904
Approve175921992023-06-30 12:50:23393 days ago1688129423IN
Defiance Finance: DEF Token
0 ETH0.0018729138.71415233
Approve170118092023-04-09 16:07:59475 days ago1681056479IN
Defiance Finance: DEF Token
0 ETH0.0005675921.45599457
Approve169894142023-04-06 11:56:11478 days ago1680782171IN
Defiance Finance: DEF Token
0 ETH0.0006210923.53173283
Approve169894072023-04-06 11:54:47478 days ago1680782087IN
Defiance Finance: DEF Token
0 ETH0.0011276523.29198794
Transfer147906032022-05-17 5:09:37802 days ago1652764177IN
Defiance Finance: DEF Token
0 ETH0.000976918.20373033
Approve143322732022-03-06 8:30:07874 days ago1646555407IN
Defiance Finance: DEF Token
0 ETH0.000637724.10608068
Approve135251822021-10-31 13:55:341000 days ago1635688534IN
Defiance Finance: DEF Token
0 ETH0.00275121104
Transfer133902382021-10-10 9:57:211021 days ago1633859841IN
Defiance Finance: DEF Token
0 ETH0.0029601641.70357633
Transfer125465962021-06-01 5:01:081152 days ago1622523668IN
Defiance Finance: DEF Token
0 ETH0.0007823718
Approve122259552021-04-12 15:06:471202 days ago1618240007IN
Defiance Finance: DEF Token
0 ETH0.00540888120
Transfer122129602021-04-10 15:30:211204 days ago1618068621IN
Defiance Finance: DEF Token
0 ETH0.00627193106.7
Approve121197442021-03-27 7:15:251218 days ago1616829325IN
Defiance Finance: DEF Token
0 ETH0.0012730485
Approve120438132021-03-15 14:52:181230 days ago1615819938IN
Defiance Finance: DEF Token
0 ETH0.0029954200
Transfer120395522021-03-14 22:52:161231 days ago1615762336IN
Defiance Finance: DEF Token
0 ETH0.00827636140.8
Approve120020972021-03-09 4:13:481236 days ago1615263228IN
Defiance Finance: DEF Token
0 ETH0.00598461132
Approve119779042021-03-05 11:02:401240 days ago1614942160IN
Defiance Finance: DEF Token
0 ETH0.0045882101.2
Approve119680432021-03-03 22:38:151242 days ago1614811095IN
Defiance Finance: DEF Token
0 ETH0.003944487
Unpause119219462021-02-24 20:22:401249 days ago1614198160IN
Defiance Finance: DEF Token
0 ETH0.00496548161.7
Approve117535022021-01-29 22:34:091275 days ago1611959649IN
Defiance Finance: DEF Token
0 ETH0.00276851115
Approve117534982021-01-29 22:32:431275 days ago1611959563IN
Defiance Finance: DEF Token
0 ETH0.002369100
Approve117534912021-01-29 22:31:141275 days ago1611959474IN
Defiance Finance: DEF Token
0 ETH0.002369100
Approve117335952021-01-26 20:47:561278 days ago1611694076IN
Defiance Finance: DEF Token
0 ETH0.0018055575
Transfer117238272021-01-25 8:47:521279 days ago1611564472IN
Defiance Finance: DEF Token
0 ETH0.001623768.2
Transfer116812422021-01-18 19:58:571286 days ago1610999937IN
Defiance Finance: DEF Token
0 ETH0.0015713266
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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 the Polkadot network, too) with DAO and Governance feature.

Validator Index Block Amount
View All Withdrawals

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

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