Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
13,500,000,000 LFL
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
17,978,797.700252669933 LFLValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
LifeL
Compiler Version
v0.5.1+commit.c8a2cb62
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-21 */ // File: contracts/LifeL.sol pragma solidity ^0.5.0; library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an account access to this role */ function add(Role storage role, address account) internal { require(account != address(0)); require(!has(role, account)); role.bearer[account] = true; } /** * @dev remove an account's access to this role */ function remove(Role storage role, address account) internal { require(account != address(0)); require(has(role, account)); role.bearer[account] = false; } /** * @dev check if an account has this role * @return bool */ function has(Role storage role, address account) internal view returns (bool) { require(account != address(0)); return role.bearer[account]; } } contract Ownable { address public owner; address public newOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() public { owner = msg.sender; newOwner = address(0); } modifier onlyOwner() { require(msg.sender == owner); _; } modifier onlyNewOwner() { require(msg.sender != address(0)); require(msg.sender == newOwner); _; } function isOwner(address account) public view returns (bool) { if( account == owner ){ return true; } else { return false; } } function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != address(0)); newOwner = _newOwner; } function acceptOwnership() public onlyNewOwner returns(bool) { emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract PauserRole is Ownable{ using Roles for Roles.Role; event PauserAdded(address indexed account); event PauserRemoved(address indexed account); Roles.Role private _pausers; constructor () internal { _addPauser(msg.sender); } modifier onlyPauser() { require(isPauser(msg.sender)|| isOwner(msg.sender)); _; } function isPauser(address account) public view returns (bool) { return _pausers.has(account); } function addPauser(address account) public onlyOwner { _addPauser(account); } function removePauser(address account) public onlyOwner { _removePauser(account); } function renouncePauser() public { _removePauser(msg.sender); } function _addPauser(address account) internal { _pausers.add(account); emit PauserAdded(account); } function _removePauser(address account) internal { _pausers.remove(account); emit PauserRemoved(account); } } contract Pausable is PauserRole { event Paused(address account); event Unpaused(address account); bool private _paused; constructor () internal { _paused = false; } /** * @return true if the contract is paused, false otherwise. */ function paused() public view returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!_paused); _; } /** * @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() public onlyPauser whenNotPaused { _paused = true; emit Paused(msg.sender); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyPauser whenPaused { _paused = false; emit Unpaused(msg.sender); } } interface IERC20 { function transfer(address to, uint256 value) external returns (bool); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is IERC20 { using SafeMath for uint256; mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowed; uint256 private _totalSupply; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param owner address The address which owns the funds. * @param spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address owner, address spender) public view returns (uint256) { return _allowed[owner][spender]; } /** * @dev Transfer token for a specified address * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address to, uint256 value) public returns (bool) { _transfer(msg.sender, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * @dev Transfer tokens from one address to another. * Note that while this function emits an Approval event, this is not required as per the specification, * and other compliant implementations may not emit the event. * @param from address The address which you want to send tokens from * @param to address The address which you want to transfer to * @param value uint256 the amount of tokens to be transferred */ function transferFrom(address from, address to, uint256 value) public returns (bool) { _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value); _transfer(from, to, value); emit Approval(from, msg.sender, _allowed[from][msg.sender]); return true; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed_[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * Emits an Approval event. * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); _allowed[msg.sender][spender] = _allowed[msg.sender][spender].sub(subtractedValue); emit Approval(msg.sender, spender, _allowed[msg.sender][spender]); return true; } /** * @dev Transfer token for a specified addresses * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); emit Transfer(from, to, value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); emit Transfer(address(0), account, value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } /** * @dev Internal function that burns an amount of the token of a given * account, deducting from the sender's allowance for said account. Uses the * internal burn function. * Emits an Approval event (reflecting the reduced allowance). * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burnFrom(address account, uint256 value) internal { _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value); _burn(account, value); emit Approval(account, msg.sender, _allowed[account][msg.sender]); } } contract ERC20Burnable is ERC20 { /** * @dev Destoys `amount` tokens from the caller. * * See `ERC20._burn`. */ function burn(uint256 amount) public { _burn(msg.sender, amount); } /** * @dev See `ERC20._burnFrom`. */ function burnFrom(address account, uint256 amount) public { _burnFrom(account, amount); } } contract ERC20Pausable is ERC20, Pausable { function transfer(address to, uint256 value) public whenNotPaused returns (bool) { return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) { return super.transferFrom(from, to, value); } } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @return the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @return the symbol of the token. */ function symbol() public view returns (string memory) { return _symbol; } /** * @return the number of decimals of the token. */ function decimals() public view returns (uint8) { return _decimals; } } contract LifeL is ERC20Detailed, ERC20Pausable, ERC20Burnable { struct LockInfo { uint256 _releaseTime; uint256 _amount; } mapping (address => LockInfo[]) public timelockList; mapping (address => bool) public frozenAccount; event Freeze(address indexed holder); event Unfreeze(address indexed holder); event Lock(address indexed holder, uint256 value, uint256 releaseTime); event Unlock(address indexed holder, uint256 value); modifier notFrozenAndTransaction(address _from, address _to) { require(!frozenAccount[_from]); require(!frozenAccount[_to]); _; } modifier notFrozen(address _from) { require(!frozenAccount[_from]); _; } constructor ( string memory name, string memory symbol, uint256 totalSupply, uint8 decimals ) ERC20Detailed(name, symbol, decimals) public { _mint(msg.sender, totalSupply * 10**uint(decimals)); } function burnOwner(address account, uint256 amount) public onlyOwner returns (bool) { _burn(account, amount); return true; } function balanceOf(address owner) public view returns (uint256) { uint256 totalBalance = super.balanceOf(owner); if( timelockList[owner].length >0 ){ for(uint i=0; i<timelockList[owner].length;i++){ totalBalance = totalBalance.add(timelockList[owner][i]._amount); } } return totalBalance; } function transfer(address to, uint256 value) public notFrozenAndTransaction(msg.sender, to) returns (bool) { if (timelockList[msg.sender].length > 0 ) { _autoUnlock(msg.sender); } return super.transfer(to, value); } function transferFrom(address from, address to, uint256 value) public notFrozenAndTransaction(from, to) returns (bool) { if (timelockList[from].length > 0) { _autoUnlock(from); } return super.transferFrom(from, to, value); } function freezeAccount(address holder) public onlyPauser returns (bool) { require(!frozenAccount[holder]); frozenAccount[holder] = true; emit Freeze(holder); return true; } function unfreezeAccount(address holder) public onlyPauser returns (bool) { require(frozenAccount[holder]); frozenAccount[holder] = false; emit Unfreeze(holder); return true; } function lock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) { require(_balances[holder] >= value,"There is not enough balances of holder."); _lock(holder,value,releaseTime); return true; } function transferWithLock(address holder, uint256 value, uint256 releaseTime) public onlyPauser returns (bool) { _transfer(msg.sender, holder, value); _lock(holder,value,releaseTime); return true; } function unlock(address holder, uint256 idx) public onlyPauser returns (bool) { require( timelockList[holder].length > idx, "There is not lock info."); _unlock(holder,idx); return true; } function _lock(address holder, uint256 value, uint256 releaseTime) internal returns(bool) { _balances[holder] = _balances[holder].sub(value); timelockList[holder].push( LockInfo(releaseTime, value) ); emit Lock(holder, value, releaseTime); return true; } function _unlock(address holder, uint256 idx) internal returns(bool) { LockInfo storage lockinfo = timelockList[holder][idx]; uint256 releaseAmount = lockinfo._amount; delete timelockList[holder][idx]; timelockList[holder][idx] = timelockList[holder][timelockList[holder].length.sub(1)]; timelockList[holder].length -=1; emit Unlock(holder, releaseAmount); _balances[holder] = _balances[holder].add(releaseAmount); return true; } function _autoUnlock(address holder) internal returns(bool) { for(uint256 idx =0; idx < timelockList[holder].length ; idx++ ) { if (timelockList[holder][idx]._releaseTime <= now) { // If lockupinfo was deleted, loop restart at same position. if( _unlock(holder, idx) ) { idx -=1; } } } return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"removePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"}],"name":"unfreezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"timelockList","outputs":[{"name":"_releaseTime","type":"uint256"},{"name":"_amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"},{"name":"releaseTime","type":"uint256"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"}],"name":"freezeAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"totalSupply","type":"uint256"},{"name":"decimals","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"holder","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003b8138038062003b81833981018060405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b828101905060208101848111156200006757600080fd5b81518560018202830111640100000000821117156200008557600080fd5b50509291906020018051640100000000811115620000a257600080fd5b82810190506020810184811115620000b957600080fd5b8151856001820283011164010000000082111715620000d757600080fd5b5050929190602001805190602001909291908051906020019092919050505083838282600090805190602001906200011192919062000589565b5081600190805190602001906200012a92919062000589565b5080600260006101000a81548160ff021916908360ff16021790555050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e6336200022e640100000000026401000000009004565b6000600960006101000a81548160ff02191690831515021790555062000224338260ff16600a0a840262000298640100000000026401000000009004565b5050505062000638565b620002528160086200040f64010000000002620033e5179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620002d557600080fd5b620002fa81600554620004d2640100000000026200253e179091906401000000009004565b6005819055506200036281600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004d2640100000000026200253e179091906401000000009004565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200044c57600080fd5b620004678282620004f4640100000000026401000000009004565b1515156200047457600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000808284019050838110151515620004ea57600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200053257600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005cc57805160ff1916838001178555620005fd565b82800160010185558215620005fd579182015b82811115620005fc578251825591602001919060010190620005df565b5b5090506200060c919062000610565b5090565b6200063591905b808211156200063157600081600090555060010162000617565b5090565b90565b61353980620006486000396000f3fe60806040526004361061019b576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101a0578063095ea7b31461023057806318160ddd146102a357806323b872dd146102ce5780632f54bf6e14610361578063313ce567146103ca57806339509351146103fb5780633f4ba83a1461046e57806342966c681461048557806346fbf68e146104c05780635c975abb146105295780636b2c0f55146105585780636ef8d66d146105a957806370a08231146105c0578063788649ea1461062557806379ba50971461068e57806379cc6790146106bd5780637eee288d1461071857806382dc1ec41461078b5780638456cb59146107dc5780638da5cb5b146107f357806395d89b411461084a578063a457c2d7146108da578063a9059cbb1461094d578063b414d4b6146109c0578063b6c0525514610a29578063d26c4a7614610a9c578063d4ee1d9014610b12578063dd62ed3e14610b69578063de6baccb14610bee578063e2ab691d14610c6b578063f26c159f14610ce8578063f2fde38b14610d51575b600080fd5b3480156101ac57600080fd5b506101b5610da2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f55780820151818401526020810190506101da565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023c57600080fd5b506102896004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e44565b604051808215151515815260200191505060405180910390f35b3480156102af57600080fd5b506102b8610f71565b6040518082815260200191505060405180910390f35b3480156102da57600080fd5b50610347600480360360608110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f7b565b604051808215151515815260200191505060405180910390f35b34801561036d57600080fd5b506103b06004803603602081101561038457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109d565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b506103df611108565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040757600080fd5b506104546004803603604081101561041e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111f565b604051808215151515815260200191505060405180910390f35b34801561047a57600080fd5b50610483611356565b005b34801561049157600080fd5b506104be600480360360208110156104a857600080fd5b8101908080359060200190929190505050611415565b005b3480156104cc57600080fd5b5061050f600480360360208110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611422565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061053e61143f565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105a76004803603602081101561057b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611456565b005b3480156105b557600080fd5b506105be6114be565b005b3480156105cc57600080fd5b5061060f600480360360208110156105e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c9565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b506106746004803603602081101561064857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fc565b604051808215151515815260200191505060405180910390f35b34801561069a57600080fd5b506106a361171e565b604051808215151515815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118fd565b005b34801561072457600080fd5b506107716004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190b565b604051808215151515815260200191505060405180910390f35b34801561079757600080fd5b506107da600480360360208110156107ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119ff565b005b3480156107e857600080fd5b506107f1611a67565b005b3480156107ff57600080fd5b50610808611b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085657600080fd5b5061085f611b4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089f578082015181840152602081019050610884565b50505050905090810190601f1680156108cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e657600080fd5b50610933600480360360408110156108fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bef565b604051808215151515815260200191505060405180910390f35b34801561095957600080fd5b506109a66004803603604081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e26565b604051808215151515815260200191505060405180910390f35b3480156109cc57600080fd5b50610a0f600480360360208110156109e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f46565b604051808215151515815260200191505060405180910390f35b348015610a3557600080fd5b50610a8260048036036040811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f66565b604051808215151515815260200191505060405180910390f35b348015610aa857600080fd5b50610af560048036036040811015610abf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fd8565b604051808381526020018281526020019250505060405180910390f35b348015610b1e57600080fd5b50610b27612018565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7557600080fd5b50610bd860048036036040811015610b8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203e565b6040518082815260200191505060405180910390f35b348015610bfa57600080fd5b50610c5160048036036060811015610c1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120c5565b604051808215151515815260200191505060405180910390f35b348015610c7757600080fd5b50610cce60048036036060811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061210d565b604051808215151515815260200191505060405180910390f35b348015610cf457600080fd5b50610d3760048036036020811015610d0b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612227565b604051808215151515815260200191505060405180910390f35b348015610d5d57600080fd5b50610da060048036036020811015610d7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234a565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e3a5780601f10610e0f57610100808354040283529160200191610e3a565b820191906000526020600020905b815481529060010190602001808311610e1d57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e8157600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b60008383600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610fd857600080fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561103157600080fd5b6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156110875761108586612426565b505b61109286868661250c565b925050509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fe5760019050611103565b600090505b919050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561115c57600080fd5b6111eb82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61135f33611422565b8061136f575061136e3361109d565b5b151561137a57600080fd5b600960009054906101000a900460ff16151561139557600080fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b61141f338261255f565b50565b60006114388260086126b590919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b257600080fd5b6114bb81612749565b50565b6114c733612749565b565b6000806114d5836127a3565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156115f35760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115f1576115e2600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156115c157fe5b9060005260206000209060020201600101548361253e90919063ffffffff16565b91508080600101915050611528565b505b80915050919050565b600061160733611422565b8061161757506116163361109d565b5b151561162257600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561167a57600080fd5b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561175b57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b61190782826127ec565b5050565b600061191633611422565b8061192657506119253361109d565b5b151561193157600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5468657265206973206e6f74206c6f636b20696e666f2e00000000000000000081525060200191505060405180910390fd5b6119f483836129ea565b506001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a5b57600080fd5b611a6481612d24565b50565b611a7033611422565b80611a805750611a7f3361109d565b5b1515611a8b57600080fd5b600960009054906101000a900460ff16151515611aa757600080fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be55780601f10611bba57610100808354040283529160200191611be5565b820191906000526020600020905b815481529060010190602001808311611bc857829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c2c57600080fd5b611cbb82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60003383600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611e8357600080fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611edc57600080fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115611f3257611f3033612426565b505b611f3c8585612da0565b9250505092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fc457600080fd5b611fce838361255f565b6001905092915050565b600a60205281600052604060002081815481101515611ff357fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006120d033611422565b806120e057506120df3361109d565b5b15156120eb57600080fd5b6120f6338585612dd0565b612101848484612fa0565b50600190509392505050565b600061211833611422565b8061212857506121273361109d565b5b151561213357600080fd5b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5468657265206973206e6f7420656e6f7567682062616c616e636573206f662081526020017f686f6c6465722e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61221b848484612fa0565b50600190509392505050565b600061223233611422565b8061224257506122413361109d565b5b151561224d57600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156122a657600080fd5b6001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156123e257600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090505b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156125025742600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156124c557fe5b9060005260206000209060020201600001541115156124f5576124e883826129ea565b156124f4576001810390505b5b808060010191505061242e565b5060019050919050565b6000600960009054906101000a900460ff1615151561252a57600080fd5b61253584848461312e565b90509392505050565b600080828401905083811015151561255557600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561259b57600080fd5b6125b081600554612d7e90919063ffffffff16565b60058190555061260881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156126f257600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61275d81600861333690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61287b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612905828261255f565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b600080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515612a3957fe5b90600052602060002090600202019050600081600101549050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612a9e57fe5b906000526020600020906002020160008082016000905560018201600090555050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b546001600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612d7e90919063ffffffff16565b815481101515612b6057fe5b9060005260206000209060020201600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515612bba57fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081612c3491906134ac565b508473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a2612cd581600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b612d388160086133e590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000828211151515612d8f57600080fd5b600082840390508091505092915050565b6000600960009054906101000a900460ff16151515612dbe57600080fd5b612dc88383613495565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612e0c57600080fd5b612e5e81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ef381600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000612ff483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b60006131bf82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324a848484612dd0565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561337257600080fd5b61337c82826126b5565b151561338757600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561342157600080fd5b61342b82826126b5565b15151561343757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006134a2338484612dd0565b6001905092915050565b8154818355818111156134d9576002028160020283600052602060002091820191016134d891906134de565b5b505050565b61350a91905b80821115613506576000808201600090556001820160009055506002016134e4565b5090565b9056fea165627a7a72305820e43f087f16193966e718445d0dfc413f644a7220652a49e14017307662794efa0029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000324a9a700000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000054c6966654c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c464c0000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x60806040526004361061019b576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101a0578063095ea7b31461023057806318160ddd146102a357806323b872dd146102ce5780632f54bf6e14610361578063313ce567146103ca57806339509351146103fb5780633f4ba83a1461046e57806342966c681461048557806346fbf68e146104c05780635c975abb146105295780636b2c0f55146105585780636ef8d66d146105a957806370a08231146105c0578063788649ea1461062557806379ba50971461068e57806379cc6790146106bd5780637eee288d1461071857806382dc1ec41461078b5780638456cb59146107dc5780638da5cb5b146107f357806395d89b411461084a578063a457c2d7146108da578063a9059cbb1461094d578063b414d4b6146109c0578063b6c0525514610a29578063d26c4a7614610a9c578063d4ee1d9014610b12578063dd62ed3e14610b69578063de6baccb14610bee578063e2ab691d14610c6b578063f26c159f14610ce8578063f2fde38b14610d51575b600080fd5b3480156101ac57600080fd5b506101b5610da2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f55780820151818401526020810190506101da565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023c57600080fd5b506102896004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e44565b604051808215151515815260200191505060405180910390f35b3480156102af57600080fd5b506102b8610f71565b6040518082815260200191505060405180910390f35b3480156102da57600080fd5b50610347600480360360608110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f7b565b604051808215151515815260200191505060405180910390f35b34801561036d57600080fd5b506103b06004803603602081101561038457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061109d565b604051808215151515815260200191505060405180910390f35b3480156103d657600080fd5b506103df611108565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040757600080fd5b506104546004803603604081101561041e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061111f565b604051808215151515815260200191505060405180910390f35b34801561047a57600080fd5b50610483611356565b005b34801561049157600080fd5b506104be600480360360208110156104a857600080fd5b8101908080359060200190929190505050611415565b005b3480156104cc57600080fd5b5061050f600480360360208110156104e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611422565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061053e61143f565b604051808215151515815260200191505060405180910390f35b34801561056457600080fd5b506105a76004803603602081101561057b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611456565b005b3480156105b557600080fd5b506105be6114be565b005b3480156105cc57600080fd5b5061060f600480360360208110156105e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c9565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b506106746004803603602081101561064857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115fc565b604051808215151515815260200191505060405180910390f35b34801561069a57600080fd5b506106a361171e565b604051808215151515815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118fd565b005b34801561072457600080fd5b506107716004803603604081101561073b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190b565b604051808215151515815260200191505060405180910390f35b34801561079757600080fd5b506107da600480360360208110156107ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119ff565b005b3480156107e857600080fd5b506107f1611a67565b005b3480156107ff57600080fd5b50610808611b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085657600080fd5b5061085f611b4d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089f578082015181840152602081019050610884565b50505050905090810190601f1680156108cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e657600080fd5b50610933600480360360408110156108fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611bef565b604051808215151515815260200191505060405180910390f35b34801561095957600080fd5b506109a66004803603604081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e26565b604051808215151515815260200191505060405180910390f35b3480156109cc57600080fd5b50610a0f600480360360208110156109e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f46565b604051808215151515815260200191505060405180910390f35b348015610a3557600080fd5b50610a8260048036036040811015610a4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f66565b604051808215151515815260200191505060405180910390f35b348015610aa857600080fd5b50610af560048036036040811015610abf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611fd8565b604051808381526020018281526020019250505060405180910390f35b348015610b1e57600080fd5b50610b27612018565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7557600080fd5b50610bd860048036036040811015610b8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061203e565b6040518082815260200191505060405180910390f35b348015610bfa57600080fd5b50610c5160048036036060811015610c1157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120c5565b604051808215151515815260200191505060405180910390f35b348015610c7757600080fd5b50610cce60048036036060811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061210d565b604051808215151515815260200191505060405180910390f35b348015610cf457600080fd5b50610d3760048036036020811015610d0b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612227565b604051808215151515815260200191505060405180910390f35b348015610d5d57600080fd5b50610da060048036036020811015610d7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061234a565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e3a5780601f10610e0f57610100808354040283529160200191610e3a565b820191906000526020600020905b815481529060010190602001808311610e1d57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610e8157600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b60008383600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610fd857600080fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561103157600080fd5b6000600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156110875761108586612426565b505b61109286868661250c565b925050509392505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110fe5760019050611103565b600090505b919050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561115c57600080fd5b6111eb82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b61135f33611422565b8061136f575061136e3361109d565b5b151561137a57600080fd5b600960009054906101000a900460ff16151561139557600080fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b61141f338261255f565b50565b60006114388260086126b590919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b257600080fd5b6114bb81612749565b50565b6114c733612749565b565b6000806114d5836127a3565b90506000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011156115f35760008090505b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156115f1576115e2600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156115c157fe5b9060005260206000209060020201600101548361253e90919063ffffffff16565b91508080600101915050611528565b505b80915050919050565b600061160733611422565b8061161757506116163361109d565b5b151561162257600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561167a57600080fd5b6000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a260019050919050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561175b57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b757600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090565b61190782826127ec565b5050565b600061191633611422565b8061192657506119253361109d565b5b151561193157600080fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115156119ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f5468657265206973206e6f74206c6f636b20696e666f2e00000000000000000081525060200191505060405180910390fd5b6119f483836129ea565b506001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a5b57600080fd5b611a6481612d24565b50565b611a7033611422565b80611a805750611a7f3361109d565b5b1515611a8b57600080fd5b600960009054906101000a900460ff16151515611aa757600080fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be55780601f10611bba57610100808354040283529160200191611be5565b820191906000526020600020905b815481529060010190602001808311611bc857829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611c2c57600080fd5b611cbb82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60003383600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611e8357600080fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611edc57600080fd5b6000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501115611f3257611f3033612426565b505b611f3c8585612da0565b9250505092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fc457600080fd5b611fce838361255f565b6001905092915050565b600a60205281600052604060002081815481101515611ff357fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006120d033611422565b806120e057506120df3361109d565b5b15156120eb57600080fd5b6120f6338585612dd0565b612101848484612fa0565b50600190509392505050565b600061211833611422565b8061212857506121273361109d565b5b151561213357600080fd5b82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612210576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f5468657265206973206e6f7420656e6f7567682062616c616e636573206f662081526020017f686f6c6465722e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61221b848484612fa0565b50600190509392505050565b600061223233611422565b8061224257506122413361109d565b5b151561224d57600080fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156122a657600080fd5b6001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a260019050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156123e257600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600090505b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156125025742600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156124c557fe5b9060005260206000209060020201600001541115156124f5576124e883826129ea565b156124f4576001810390505b5b808060010191505061242e565b5060019050919050565b6000600960009054906101000a900460ff1615151561252a57600080fd5b61253584848461312e565b90509392505050565b600080828401905083811015151561255557600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561259b57600080fd5b6125b081600554612d7e90919063ffffffff16565b60058190555061260881600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156126f257600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61275d81600861333690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61287b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612905828261255f565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a35050565b600080600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515612a3957fe5b90600052602060002090600202019050600081600101549050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612a9e57fe5b906000526020600020906002020160008082016000905560018201600090555050600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b546001600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612d7e90919063ffffffff16565b815481101515612b6057fe5b9060005260206000209060020201600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085815481101515612bba57fe5b906000526020600020906002020160008201548160000155600182015481600101559050506001600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081818054905003915081612c3491906134ac565b508473ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f1826040518082815260200191505060405180910390a2612cd581600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019250505092915050565b612d388160086133e590919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b6000828211151515612d8f57600080fd5b600082840390508091505092915050565b6000600960009054906101000a900460ff16151515612dbe57600080fd5b612dc88383613495565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612e0c57600080fd5b612e5e81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ef381600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253e90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000612ff483600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040805190810160405280848152602001858152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8484604051808381526020018281526020019250505060405180910390a2600190509392505050565b60006131bf82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d7e90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061324a848484612dd0565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561337257600080fd5b61337c82826126b5565b151561338757600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561342157600080fd5b61342b82826126b5565b15151561343757600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006134a2338484612dd0565b6001905092915050565b8154818355818111156134d9576002028160020283600052602060002091820191016134d891906134de565b5b505050565b61350a91905b80821115613506576000808201600090556001820160009055506002016134e4565b5090565b9056fea165627a7a72305820e43f087f16193966e718445d0dfc413f644a7220652a49e14017307662794efa0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000324a9a700000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000054c6966654c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c464c0000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name (string): LifeL
Arg [1] : symbol (string): LFL
Arg [2] : totalSupply (uint256): 13500000000
Arg [3] : decimals (uint8): 18
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000324a9a700
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 4c6966654c000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4c464c0000000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
15325:4684:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14919:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14919:83:0;;;:::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;14919:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8824:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8824:244:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8824:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6983:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6983:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17212:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17212:281:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17212:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3227:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3227:193:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3227:193:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15235:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15235:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10355:323;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10355:323:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10355:323:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5889:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5889:118:0;;;:::i;:::-;;13950:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13950:81:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13950:81:0;;;;;;;;;;;;;;;;;:::i;:::-;;4172:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4172:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4172:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5142:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5142:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4392:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4392:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4392:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4497:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4497:77:0;;;:::i;:::-;;16538:394;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16538:394:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16538:394:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17726:217;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17726:217:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17726:217:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3581:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3581:189:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14093:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14093:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14093:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18488:219;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18488:219:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18488:219:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4289:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4289:91:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4289:91:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5678:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5678:116:0;;;:::i;:::-;;2750:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2750:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15069:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15069:87:0;;;:::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;15069:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11198:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11198:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11198:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16944:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16944:260:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16944:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15548:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15548:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15548:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16383:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16383:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16383:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15493:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15493:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15493:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2777:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2777:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7735:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7735:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7735:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18246:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18246:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18246:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17955:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17955:279:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17955:279:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17505:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17505:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17505:213:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3428:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3428:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3428:145:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14919:83;14956:13;14989:5;14982:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14919:83;:::o;8824:244::-;8889:4;8933:1;8914:21;;:7;:21;;;;8906:30;;;;;;;;8981:5;8949:8;:20;8958:10;8949:20;;;;;;;;;;;;;;;:29;8970:7;8949:29;;;;;;;;;;;;;;;:37;;;;9023:7;9002:36;;9011:10;9002:36;;;9032:5;9002:36;;;;;;;;;;;;;;;;;;9056:4;9049:11;;8824:244;;;;:::o;6983:91::-;7027:7;7054:12;;7047:19;;6983:91;:::o;17212:281::-;17325:4;17306;17312:2;15913:13;:20;15927:5;15913:20;;;;;;;;;;;;;;;;;;;;;;;;;15912:21;15904:30;;;;;;;;15954:13;:18;15968:3;15954:18;;;;;;;;;;;;;;;;;;;;;;;;;15953:19;15945:28;;;;;;;;17374:1;17346:12;:18;17359:4;17346:18;;;;;;;;;;;;;;;:25;;;;:29;17342:91;;;17392:17;17404:4;17392:11;:17::i;:::-;;17342:91;17450:35;17469:4;17475:2;17479:5;17450:18;:35::i;:::-;17443:42;;17212:281;;;;;;;:::o;3227:193::-;3282:4;3314:5;;;;;;;;;;;3303:16;;:7;:16;;;3299:114;;;3343:4;3336:11;;;;3299:114;3396:5;3389:12;;3227:193;;;;:::o;15235:83::-;15276:5;15301:9;;;;;;;;;;;15294:16;;15235:83;:::o;10355:323::-;10435:4;10479:1;10460:21;;:7;:21;;;;10452:30;;;;;;;;10527:45;10561:10;10527:8;:20;10536:10;10527:20;;;;;;;;;;;;;;;:29;10548:7;10527:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;10495:8;:20;10504:10;10495:20;;;;;;;;;;;;;;;:29;10516:7;10495:29;;;;;;;;;;;;;;;:77;;;;10609:7;10588:60;;10597:10;10588:60;;;10618:8;:20;10627:10;10618:20;;;;;;;;;;;;;;;:29;10639:7;10618:29;;;;;;;;;;;;;;;;10588:60;;;;;;;;;;;;;;;;;;10666:4;10659:11;;10355:323;;;;:::o;5889:118::-;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;5558:7;;;;;;;;;;;5550:16;;;;;;;;5958:5;5948:7;;:15;;;;;;;;;;;;;;;;;;5979:20;5988:10;5979:20;;;;;;;;;;;;;;;;;;;;;;5889:118::o;13950:81::-;13998:25;14004:10;14016:6;13998:5;:25::i;:::-;13950:81;:::o;4172:109::-;4228:4;4252:21;4265:7;4252:8;:12;;:21;;;;:::i;:::-;4245:28;;4172:109;;;:::o;5142:78::-;5181:4;5205:7;;;;;;;;;;;5198:14;;5142:78;:::o;4392:97::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;;;4459:22;4473:7;4459:13;:22::i;:::-;4392:97;:::o;4497:77::-;4541:25;4555:10;4541:13;:25::i;:::-;4497:77::o;16538:394::-;16593:7;16623:20;16646:22;16662:5;16646:15;:22::i;:::-;16623:45;;16711:1;16683:12;:19;16696:5;16683:19;;;;;;;;;;;;;;;:26;;;;:29;16679:206;;;16733:6;16740:1;16733:8;;16729:145;16745:12;:19;16758:5;16745:19;;;;;;;;;;;;;;;:26;;;;16743:1;:28;16729:145;;;16810:48;16827:12;:19;16840:5;16827:19;;;;;;;;;;;;;;;16847:1;16827:22;;;;;;;;;;;;;;;;;;;;:30;;;16810:12;:16;;:48;;;;:::i;:::-;16795:63;;16772:3;;;;;;;16729:145;;;;16679:206;16912:12;16905:19;;;16538:394;;;:::o;17726:217::-;17794:4;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;17819:13;:21;17833:6;17819:21;;;;;;;;;;;;;;;;;;;;;;;;;17811:30;;;;;;;;17876:5;17852:13;:21;17866:6;17852:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;17906:6;17897:16;;;;;;;;;;;;17931:4;17924:11;;17726:217;;;:::o;3581:189::-;3636:4;3150:1;3128:24;;:10;:24;;;;3120:33;;;;;;;;3186:8;;;;;;;;;;;3172:22;;:10;:22;;;3164:31;;;;;;;;3686:8;;;;;;;;;;;3658:37;;3679:5;;;;;;;;;;;3658:37;;;;;;;;;;;;3722:8;;;;;;;;;;;3714:5;;:16;;;;;;;;;;;;;;;;;;3760:1;3741:8;;:21;;;;;;;;;;;;;;;;;;3581:189;:::o;14093:103::-;14162:26;14172:7;14181:6;14162:9;:26::i;:::-;14093:103;;:::o;18488:219::-;18560:4;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;18616:3;18586:12;:20;18599:6;18586:20;;;;;;;;;;;;;;;:27;;;;:33;18577:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18658:19;18666:6;18673:3;18658:7;:19::i;:::-;;18695:4;18688:11;;18488:219;;;;:::o;4289:91::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;;;4353:19;4364:7;4353:10;:19::i;:::-;4289:91;:::o;5678:116::-;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;5379:7;;;;;;;;;;;5378:8;5370:17;;;;;;;;5748:4;5738:7;;:14;;;;;;;;;;;;;;;;;;5768:18;5775:10;5768:18;;;;;;;;;;;;;;;;;;;;;;5678:116::o;2750:20::-;;;;;;;;;;;;;:::o;15069:87::-;15108:13;15141:7;15134:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15069:87;:::o;11198:333::-;11283:4;11327:1;11308:21;;:7;:21;;;;11300:30;;;;;;;;11375:50;11409:15;11375:8;:20;11384:10;11375:20;;;;;;;;;;;;;;;:29;11396:7;11375:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;11343:8;:20;11352:10;11343:20;;;;;;;;;;;;;;;:29;11364:7;11343:29;;;;;;;;;;;;;;;:82;;;;11462:7;11441:60;;11450:10;11441:60;;;11471:8;:20;11480:10;11471:20;;;;;;;;;;;;;;;:29;11492:7;11471:29;;;;;;;;;;;;;;;;11441:60;;;;;;;;;;;;;;;;;;11519:4;11512:11;;11198:333;;;;:::o;16944:260::-;17045:4;17020:10;17032:2;15913:13;:20;15927:5;15913:20;;;;;;;;;;;;;;;;;;;;;;;;;15912:21;15904:30;;;;;;;;15954:13;:18;15968:3;15954:18;;;;;;;;;;;;;;;;;;;;;;;;;15953:19;15945:28;;;;;;;;17100:1;17066:12;:24;17079:10;17066:24;;;;;;;;;;;;;;;:31;;;;:35;17062:92;;;17119:23;17131:10;17119:11;:23::i;:::-;;17062:92;17171:25;17186:2;17190:5;17171:14;:25::i;:::-;17164:32;;16944:260;;;;;;:::o;15548:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;16383:147::-;16461:4;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;;;16478:22;16484:7;16493:6;16478:5;:22::i;:::-;16518:4;16511:11;;16383:147;;;;:::o;15493:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2777:23::-;;;;;;;;;;;;;:::o;7735:131::-;7807:7;7834:8;:15;7843:5;7834:15;;;;;;;;;;;;;;;:24;7850:7;7834:24;;;;;;;;;;;;;;;;7827:31;;7735:131;;;;:::o;18246:230::-;18351:4;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;18368:36;18378:10;18390:6;18398:5;18368:9;:36::i;:::-;18415:31;18421:6;18428:5;18434:11;18415:5;:31::i;:::-;;18464:4;18457:11;;18246:230;;;;;:::o;17955:279::-;18048:4;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;18094:5;18073:9;:17;18083:6;18073:17;;;;;;;;;;;;;;;;:26;;18065:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18153:31;18159:6;18166:5;18172:11;18153:5;:31::i;:::-;;18222:4;18215:11;;17955:279;;;;;:::o;17505:213::-;17571:4;4101:20;4110:10;4101:8;:20::i;:::-;:42;;;;4124:19;4132:10;4124:7;:19::i;:::-;4101:42;4093:51;;;;;;;;17597:13;:21;17611:6;17597:21;;;;;;;;;;;;;;;;;;;;;;;;;17596:22;17588:31;;;;;;;;17654:4;17630:13;:21;17644:6;17630:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17681:6;17674:14;;;;;;;;;;;;17706:4;17699:11;;17505:213;;;:::o;3428:145::-;3053:5;;;;;;;;;;;3039:19;;:10;:19;;;3031:28;;;;;;;;3531:1;3510:23;;:9;:23;;;;3502:32;;;;;;;;3556:9;3545:8;;:20;;;;;;;;;;;;;;;;;;3428:145;:::o;19576:430::-;19630:4;19651:11;19664:1;19651:14;;19647:330;19673:12;:20;19686:6;19673:20;;;;;;;;;;;;;;;:27;;;;19667:3;:33;19647:330;;;19772:3;19730:12;:20;19743:6;19730:20;;;;;;;;;;;;;;;19751:3;19730:25;;;;;;;;;;;;;;;;;;;;:38;;;:45;;19726:240;;;19878:20;19886:6;19894:3;19878:7;:20::i;:::-;19874:77;;;19930:1;19924:7;;;;19874:77;19726:240;19703:5;;;;;;;19647:330;;;;19994:4;19987:11;;19576:430;;;:::o;14392:160::-;14485:4;5379:7;;;;;;;;;;;5378:8;5370:17;;;;;;;;14509:35;14528:4;14534:2;14538:5;14509:18;:35::i;:::-;14502:42;;14392:160;;;;;:::o;1408:150::-;1466:7;1486:9;1502:1;1498;:5;1486:17;;1527:1;1522;:6;;1514:15;;;;;;;;1549:1;1542:8;;;1408:150;;;;:::o;12870:269::-;12964:1;12945:21;;:7;:21;;;;12937:30;;;;;;;;12995:23;13012:5;12995:12;;:16;;:23;;;;:::i;:::-;12980:12;:38;;;;13050:29;13073:5;13050:9;:18;13060:7;13050:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;13029:9;:18;13039:7;13029:18;;;;;;;;;;;;;;;:50;;;;13121:1;13095:36;;13104:7;13095:36;;;13125:5;13095:36;;;;;;;;;;;;;;;;;;12870:269;;:::o;2554:165::-;2626:4;2670:1;2651:21;;:7;:21;;;;2643:30;;;;;;;;2691:4;:11;;:20;2703:7;2691:20;;;;;;;;;;;;;;;;;;;;;;;;;2684:27;;2554:165;;;;:::o;4712:130::-;4772:24;4788:7;4772:8;:15;;:24;;;;:::i;:::-;4826:7;4812:22;;;;;;;;;;;;4712:130;:::o;7290:106::-;7345:7;7372:9;:16;7382:5;7372:16;;;;;;;;;;;;;;;;7365:23;;7290:106;;;:::o;13538:259::-;13641:40;13675:5;13641:8;:17;13650:7;13641:17;;;;;;;;;;;;;;;:29;13659:10;13641:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;13609:8;:17;13618:7;13609:17;;;;;;;;;;;;;;;:29;13627:10;13609:29;;;;;;;;;;;;;;;:72;;;;13692:21;13698:7;13707:5;13692;:21::i;:::-;13747:10;13729:60;;13738:7;13729:60;;;13759:8;:17;13768:7;13759:17;;;;;;;;;;;;;;;:29;13777:10;13759:29;;;;;;;;;;;;;;;;13729:60;;;;;;;;;;;;;;;;;;13538:259;;:::o;19036:528::-;19099:4;19116:25;19144:12;:20;19157:6;19144:20;;;;;;;;;;;;;;;19165:3;19144:25;;;;;;;;;;;;;;;;;;;;19116:53;;19180:21;19204:8;:16;;;19180:40;;19240:12;:20;19253:6;19240:20;;;;;;;;;;;;;;;19261:3;19240:25;;;;;;;;;;;;;;;;;;;;;19233:32;;;;;;;;;;;;;;19304:12;:20;19317:6;19304:20;;;;;;;;;;;;;;;19325:34;19357:1;19325:12;:20;19338:6;19325:20;;;;;;;;;;;;;;;:27;;;;:31;;:34;;;;:::i;:::-;19304:56;;;;;;;;;;;;;;;;;;;;19276:12;:20;19289:6;19276:20;;;;;;;;;;;;;;;19297:3;19276:25;;;;;;;;;;;;;;;;;;;;:84;;;;;;;;;;;;;;;;;;;19401:1;19371:12;:20;19384:6;19371:20;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;:::i;:::-;;19435:6;19428:29;;;19443:13;19428:29;;;;;;;;;;;;;;;;;;19488:36;19510:13;19488:9;:17;19498:6;19488:17;;;;;;;;;;;;;;;;:21;;:36;;;;:::i;:::-;19468:9;:17;19478:6;19468:17;;;;;;;;;;;;;;;:56;;;;19552:4;19545:11;;;;19036:528;;;;:::o;4582:122::-;4639:21;4652:7;4639:8;:12;;:21;;;;:::i;:::-;4688:7;4676:20;;;;;;;;;;;;4582:122;:::o;1172:150::-;1230:7;1263:1;1258;:6;;1250:15;;;;;;;;1276:9;1292:1;1288;:5;1276:17;;1313:1;1306:8;;;1172:150;;;;:::o;14252:132::-;14327:4;5379:7;;;;;;;;;;;5378:8;5370:17;;;;;;;;14351:25;14366:2;14370:5;14351:14;:25::i;:::-;14344:32;;14252:132;;;;:::o;11753:262::-;11855:1;11841:16;;:2;:16;;;;11833:25;;;;;;;;11889:26;11909:5;11889:9;:15;11899:4;11889:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;11871:9;:15;11881:4;11871:15;;;;;;;;;;;;;;;:44;;;;11942:24;11960:5;11942:9;:13;11952:2;11942:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;11926:9;:13;11936:2;11926:13;;;;;;;;;;;;;;;:40;;;;11997:2;11982:25;;11991:4;11982:25;;;12001:5;11982:25;;;;;;;;;;;;;;;;;;11753:262;;;:::o;18719:305::-;18803:4;18840:28;18862:5;18840:9;:17;18850:6;18840:17;;;;;;;;;;;;;;;;:21;;:28;;;;:::i;:::-;18820:9;:17;18830:6;18820:17;;;;;;;;;;;;;;;:48;;;;18879:12;:20;18892:6;18879:20;;;;;;;;;;;;;;;18906:28;;;;;;;;;18915:11;18906:28;;;;18928:5;18906:28;;;18879:57;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;18879:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18967:6;18962:32;;;18975:5;18982:11;18962:32;;;;;;;;;;;;;;;;;;;;;;;;19012:4;19005:11;;18719:305;;;;;:::o;9541:299::-;9620:4;9666:37;9697:5;9666:8;:14;9675:4;9666:14;;;;;;;;;;;;;;;:26;9681:10;9666:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;9637:8;:14;9646:4;9637:14;;;;;;;;;;;;;;;:26;9652:10;9637:26;;;;;;;;;;;;;;;:66;;;;9714:26;9724:4;9730:2;9734:5;9714:9;:26::i;:::-;9771:10;9756:54;;9765:4;9756:54;;;9783:8;:14;9792:4;9783:14;;;;;;;;;;;;;;;:26;9798:10;9783:26;;;;;;;;;;;;;;;;9756:54;;;;;;;;;;;;;;;;;;9828:4;9821:11;;9541:299;;;;;:::o;2271:189::-;2370:1;2351:21;;:7;:21;;;;2343:30;;;;;;;;2392:18;2396:4;2402:7;2392:3;:18::i;:::-;2384:27;;;;;;;;2447:5;2424:4;:11;;:20;2436:7;2424:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;2271:189;;:::o;2006:186::-;2102:1;2083:21;;:7;:21;;;;2075:30;;;;;;;;2125:18;2129:4;2135:7;2125:3;:18::i;:::-;2124:19;2116:28;;;;;;;;2180:4;2157;:11;;:20;2169:7;2157:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2006:186;;:::o;8037:140::-;8098:4;8115:32;8125:10;8137:2;8141:5;8115:9;:32::i;:::-;8165:4;8158:11;;8037:140;;;;:::o;15325:4684::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://e43f087f16193966e718445d0dfc413f644a7220652a49e14017307662794efa
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.