ERC-20
Overview
Max Total Supply
60,793,471.111515091916 BBI
Holders
6,114 ( 0.131%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
157.73472 BBIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BBIToken
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-28 */ pragma solidity 0.4.18; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; uint256 totalSupply_; /** * @dev total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @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) { require(_to != address(0)); require(_value <= balances[msg.sender]); // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256 balance) { return balances[_owner]; } } /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @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) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _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) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @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 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 * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); 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 * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } contract BBIToken is StandardToken { string public constant name = "Beluga Banking Infrastructure Token"; string public constant symbol = "BBI"; uint256 public constant decimals= 18; uint public totalUsed = 0; uint public etherRaised = 0; /* * ICO : 01-Mar-2018 00:00:00 GMT - 31-Mar-2018 23:59:59 GMT */ uint public icoEndDate = 1522540799; // 31-Mar-2018 23:59:59 GMT uint constant SECONDS_IN_YEAR = 31536000; // 365 * 24 * 60 * 60 secs // flag for emergency stop or start bool public halted = false; uint public etherCap = 30000 * (10 ** uint256(decimals)); // 30,000 Ether uint public maxAvailableForSale = 29800000 * (10 ** uint256(decimals)); // ( 29.8M ) uint public tokensPreSale = 10200000 * (10 ** uint256(decimals)); // ( 10.2M ) uint public tokensTeam = 30000000 * (10 ** uint256(decimals)); // ( 30M ) uint public tokensCommunity = 5000000 * (10 ** uint256(decimals)); // ( 5M ) uint public tokensMasterNodes = 5000000 * (10 ** uint256(decimals)); // ( 5M ) uint public tokensBankPartners = 5000000 * (10 ** uint256(decimals)); // ( 5M ) uint public tokensDataProviders = 5000000 * (10 ** uint256(decimals)); // ( 5M ) /* * team classification flag * for defining the lock period */ uint constant teamInternal = 1; // team and community uint constant teamPartners = 2; // bank partner, data providers etc uint constant icoInvestors = 3; // ico investors /* * Addresses */ address public addressETHDeposit = 0x0D2b5B427E0Bd97c71D4DF281224540044D279E1; address public addressTeam = 0x7C898F01e85a5387D58b52C6356B5AE0D5aa48ba; address public addressCommunity = 0xB7218D5a1f1b304E6bD69ea35C93BA4c1379FA43; address public addressBankPartners = 0xD5BC3c2894af7CB046398257df7A447F44b0CcA1; address public addressDataProviders = 0x9f6fce8c014210D823FdFFA274f461BAdC279A42; address public addressMasterNodes = 0x8ceA6dABB68bc9FCD6982E537A16bC9D219605b0; address public addressPreSale = 0x2526082305FdB4B999340Db3D53bD2a60F674101; address public addressICOManager = 0xE5B3eF1fde3761225C9976EBde8D67bb54d7Ae17; /* * Contract Constructor */ function BBIToken() public { totalSupply_ = 90000000 * (10 ** uint256(decimals)); // 90,000,000 - 90M; balances[addressTeam] = tokensTeam; balances[addressCommunity] = tokensCommunity; balances[addressBankPartners] = tokensBankPartners; balances[addressDataProviders] = tokensDataProviders; balances[addressMasterNodes] = tokensMasterNodes; balances[addressPreSale] = tokensPreSale; balances[addressICOManager] = maxAvailableForSale; Transfer(this, addressTeam, tokensTeam); Transfer(this, addressCommunity, tokensCommunity); Transfer(this, addressBankPartners, tokensBankPartners); Transfer(this, addressDataProviders, tokensDataProviders); Transfer(this, addressMasterNodes, tokensMasterNodes); Transfer(this, addressPreSale, tokensPreSale); Transfer(this, addressICOManager, maxAvailableForSale); } /* * Emergency Stop or Start ICO. */ function halt() onlyManager public{ require(msg.sender == addressICOManager); halted = true; } function unhalt() onlyManager public { require(msg.sender == addressICOManager); halted = false; } /* * Check whether ICO running or not. */ modifier onIcoRunning() { // Checks, if ICO is running and has not been stopped require( halted == false); _; } modifier onIcoStopped() { // Checks if ICO was stopped or deadline is reached require( halted == true); _; } modifier onlyManager() { // only ICO manager can do this action require(msg.sender == addressICOManager); _; } /* * ERC 20 Standard Token interface transfer function * Prevent transfers until ICO period is over. * * Transfer * - Allow 50% after six months for Community and Team * - Allow all including (Dataproviders, MasterNodes, Bank) after one year * - Allow Investors after ICO end date */ function transfer(address _to, uint256 _value) public returns (bool success) { if ( msg.sender == addressICOManager) { return super.transfer(_to, _value); } // Team can transfer upto 50% of tokens after six months of ICO end date if ( !halted && msg.sender == addressTeam && SafeMath.sub(balances[msg.sender], _value) >= tokensTeam/2 && (now > icoEndDate + SECONDS_IN_YEAR/2) ) { return super.transfer(_to, _value); } // Community can transfer upto 50% of tokens after six months of ICO end date if ( !halted && msg.sender == addressCommunity && SafeMath.sub(balances[msg.sender], _value) >= tokensCommunity/2 && (now > icoEndDate + SECONDS_IN_YEAR/2) ) { return super.transfer(_to, _value); } // ICO investors can transfer after the ICO period if ( !halted && identifyAddress(msg.sender) == icoInvestors && now > icoEndDate ) { return super.transfer(_to, _value); } // All can transfer after a year from ICO end date if ( !halted && now > icoEndDate + SECONDS_IN_YEAR) { return super.transfer(_to, _value); } return false; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { if ( msg.sender == addressICOManager) { return super.transferFrom(_from,_to, _value); } // Team can transfer upto 50% of tokens after six months of ICO end date if ( !halted && msg.sender == addressTeam && SafeMath.sub(balances[msg.sender], _value) >= tokensTeam/2 && (now > icoEndDate + SECONDS_IN_YEAR/2) ) { return super.transferFrom(_from,_to, _value); } // Community can transfer upto 50% of tokens after six months of ICO end date if ( !halted && msg.sender == addressCommunity && SafeMath.sub(balances[msg.sender], _value) >= tokensCommunity/2 && (now > icoEndDate + SECONDS_IN_YEAR/2)) { return super.transferFrom(_from,_to, _value); } // ICO investors can transfer after the ICO period if ( !halted && identifyAddress(msg.sender) == icoInvestors && now > icoEndDate ) { return super.transferFrom(_from,_to, _value); } // All can transfer after a year from ICO end date if ( !halted && now > icoEndDate + SECONDS_IN_YEAR) { return super.transferFrom(_from,_to, _value); } return false; } function identifyAddress(address _buyer) constant public returns(uint) { if (_buyer == addressTeam || _buyer == addressCommunity) return teamInternal; if (_buyer == addressMasterNodes || _buyer == addressBankPartners || _buyer == addressDataProviders) return teamPartners; return icoInvestors; } /** * Destroy tokens * Remove _value tokens from the system irreversibly */ function burn(uint256 _value) onlyManager public returns (bool success) { require(balances[msg.sender] >= _value); // Check if the sender has enough BBI balances[msg.sender] -= _value; // Subtract from the sender totalSupply_ -= _value; // Updates totalSupply return true; } /* * main function for receiving the ETH from the investors * and transferring tokens after calculating the price */ function buyBBITokens(address _buyer, uint256 _value) internal { // prevent transfer to 0x0 address require(_buyer != 0x0); // msg value should be more than 0 require(_value > 0); // if not halted require(!halted); // Now is before ICO end date require(now < icoEndDate); // total tokens is price (1ETH = 960 tokens) multiplied by the ether value provided uint tokens = (SafeMath.mul(_value, 960)); // total used + tokens should be less than maximum available for sale require(SafeMath.add(totalUsed, tokens) < balances[addressICOManager]); // Ether raised + new value should be less than the Ether cap require(SafeMath.add(etherRaised, _value) < etherCap); balances[_buyer] = SafeMath.add( balances[_buyer], tokens); balances[addressICOManager] = SafeMath.sub(balances[addressICOManager], tokens); totalUsed += tokens; etherRaised += _value; addressETHDeposit.transfer(_value); Transfer(this, _buyer, tokens ); } /* * default fall back function */ function () payable onIcoRunning public { buyBBITokens(msg.sender, msg.value); } }
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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"addressDataProviders","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoEndDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressCommunity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressPreSale","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"addressTeam","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensMasterNodes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_buyer","type":"address"}],"name":"identifyAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressBankPartners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressETHDeposit","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"addressICOManager","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxAvailableForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalUsed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensDataProviders","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"etherRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensTeam","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"addressMasterNodes","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensBankPartners","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPreSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensCommunity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"},{"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"}]
Contract Creation Code
606060405260006003556000600455635ac020ff6005556000600660006101000a81548160ff0219169083151502179055506012600a0a617530026007556012600a0a6301c6b640026008556012600a0a629ba3c0026009556012600a0a6301c9c38002600a556012600a0a624c4b4002600b556012600a0a624c4b4002600c556012600a0a624c4b4002600d556012600a0a624c4b4002600e55730d2b5b427e0bd97c71d4df281224540044d279e1600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737c898f01e85a5387d58b52c6356b5ae0d5aa48ba601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b7218d5a1f1b304e6bd69ea35c93ba4c1379fa43601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d5bc3c2894af7cb046398257df7a447f44b0cca1601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f6fce8c014210d823fdffa274f461badc279a42601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738cea6dabb68bc9fcd6982e537a16bc9d219605b0601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732526082305fdb4b999340db3d53bd2a60f674101601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e5b3ef1fde3761225c9976ebde8d67bb54d7ae17601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550341561034d57600080fd5b6012600a0a63055d4a8002600181905550600a54600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b54600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600d54600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600080601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600c54600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600854600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040518082815260200191505060405180910390a3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d546040518082815260200191505060405180910390a3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040518082815260200191505060405180910390a3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c546040518082815260200191505060405180910390a3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040518082815260200191505060405180910390a3601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a36127ef806109fd6000396000f3006060604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101e5578063095ea7b31461027357806318160ddd146102cd57806323b872dd146102f657806329b9f3671461036f5780632a62738b146103c4578063313ce567146103ed57806333f4406a14610416578063415510df1461046b57806342966c68146104c0578063562e9df9146104fb5780635ed7ca5b14610550578063650462ab14610565578063661884631461058e57806370a08231146105e85780637228b9db14610635578063805341001461065e57806395d89b41146106ab5780639a63157a146107395780639c2553121461078e578063a9059cbb146107e3578063ac218c6d1461083d578063b1bd768314610892578063b2e2c75f146108bb578063b9b8af0b146108e4578063baa2edaf14610911578063cb3e64fd1461093a578063cd72ab691461094f578063d73dd62314610978578063d92ca5b4146109d2578063dd62ed3e146109fb578063de75c36e14610a67578063e182fd0114610abc578063ecdfca0614610ae5578063eea8465a14610b0e575b60001515600660009054906101000a900460ff1615151415156101d957600080fd5b6101e33334610b37565b005b34156101f057600080fd5b6101f8610e7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023857808201518184015260208101905061021d565b50505050905090810190601f1680156102655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027e57600080fd5b6102b3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610edf565b604051808215151515815260200191505060405180910390f35b34156102d857600080fd5b6102e0610fd1565b6040518082815260200191505060405180910390f35b341561030157600080fd5b610355600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdb565b604051808215151515815260200191505060405180910390f35b341561037a57600080fd5b6103826112d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103cf57600080fd5b6103d76112fd565b6040518082815260200191505060405180910390f35b34156103f857600080fd5b610400611303565b6040518082815260200191505060405180910390f35b341561042157600080fd5b610429611308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047657600080fd5b61047e61132e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104cb57600080fd5b6104e16004808035906020019091905050611354565b604051808215151515815260200191505060405180910390f35b341561050657600080fd5b61050e611464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561055b57600080fd5b61056361148a565b005b341561057057600080fd5b61057861155f565b6040518082815260200191505060405180910390f35b341561059957600080fd5b6105ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611565565b604051808215151515815260200191505060405180910390f35b34156105f357600080fd5b61061f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117f6565b6040518082815260200191505060405180910390f35b341561064057600080fd5b61064861183e565b6040518082815260200191505060405180910390f35b341561066957600080fd5b610695600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611844565b6040518082815260200191505060405180910390f35b34156106b657600080fd5b6106be611a16565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fe5780820151818401526020810190506106e3565b50505050905090810190601f16801561072b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561074457600080fd5b61074c611a4f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079957600080fd5b6107a1611a75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107ee57600080fd5b610823600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a9b565b604051808215151515815260200191505060405180910390f35b341561084857600080fd5b610850611d91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561089d57600080fd5b6108a5611db7565b6040518082815260200191505060405180910390f35b34156108c657600080fd5b6108ce611dbd565b6040518082815260200191505060405180910390f35b34156108ef57600080fd5b6108f7611dc3565b604051808215151515815260200191505060405180910390f35b341561091c57600080fd5b610924611dd6565b6040518082815260200191505060405180910390f35b341561094557600080fd5b61094d611ddc565b005b341561095a57600080fd5b610962611eb1565b6040518082815260200191505060405180910390f35b341561098357600080fd5b6109b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611eb7565b604051808215151515815260200191505060405180910390f35b34156109dd57600080fd5b6109e56120b3565b6040518082815260200191505060405180910390f35b3415610a0657600080fd5b610a51600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120b9565b6040518082815260200191505060405180910390f35b3415610a7257600080fd5b610a7a612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ac757600080fd5b610acf612166565b6040518082815260200191505060405180910390f35b3415610af057600080fd5b610af861216c565b6040518082815260200191505060405180910390f35b3415610b1957600080fd5b610b21612172565b6040518082815260200191505060405180910390f35b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515610b5e57600080fd5b600082111515610b6d57600080fd5b600660009054906101000a900460ff16151515610b8957600080fd5b60055442101515610b9957600080fd5b610ba5826103c0612178565b9050600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c14600354836121b3565b101515610c2057600080fd5b600754610c2f600454846121b3565b101515610c3b57600080fd5b610c836000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826121b3565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d2f600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826121d1565b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060036000828254019250508190555081600460008282540192505081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610e1557600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b606060405190810160405280602381526020017f42656c7567612042616e6b696e6720496e66726173747275637475726520546f81526020017f6b656e000000000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110455761103e8484846121ea565b90506112d0565b600660009054906101000a900460ff161580156110af5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561111057506002600a548115156110c457fe5b0461110d6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b801561112f575060026301e1338081151561112757fe5b046005540142115b156111465761113f8484846121ea565b90506112d0565b600660009054906101000a900460ff161580156111b05750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561121157506002600b548115156111c557fe5b0461120e6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611230575060026301e1338081151561122857fe5b046005540142115b15611247576112408484846121ea565b90506112d0565b600660009054906101000a900460ff1615801561126c5750600361126a33611844565b145b8015611279575060055442115b15611290576112898484846121ea565b90506112d0565b600660009054906101000a900460ff161580156112b457506301e133806005540142115b156112cb576112c48484846121ea565b90506112d0565b600090505b9392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b601281565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113b257600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156113ff57600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160016000828254039250508190555060019050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e657600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561154257600080fd5b6001600660006101000a81548160ff021916908315150217905550565b600c5481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611676576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061170a565b61168983826121d190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118ef5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156118fd5760019050611a11565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806119a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119fe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a0c5760029050611a11565b600390505b919050565b6040805190810160405280600381526020017f424249000000000000000000000000000000000000000000000000000000000081525081565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b0457611afd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611b6e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611bcf57506002600a54811515611b8357fe5b04611bcc6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611bee575060026301e13380811515611be657fe5b046005540142115b15611c0457611bfd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611c6e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611ccf57506002600b54811515611c8357fe5b04611ccc6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611cee575060026301e13380811515611ce657fe5b046005540142115b15611d0457611cfd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611d2957506003611d2733611844565b145b8015611d36575060055442115b15611d4c57611d4583836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611d7057506301e133806005540142115b15611d8657611d7f83836125a4565b9050611d8b565b600090505b92915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60035481565b600660009054906101000a900460ff1681565b600e5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3857600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9457600080fd5b6000600660006101000a81548160ff021916908315150217905550565b60045481565b6000611f4882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600a5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60095481565b600b5481565b600080600084141561218d57600091506121ac565b828402905082848281151561219e57fe5b041415156121a857fe5b8091505b5092915050565b60008082840190508381101515156121c757fe5b8091505092915050565b60008282111515156121df57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561222757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561227457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122ff57600080fd5b612350826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124b482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156125e157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561262e57600080fd5b61267f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612712826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820f1a3154a2bb05aa5c51e168ef232e5b0fd0ed860e20d7ba42397c8b04e7198200029
Deployed Bytecode
0x6060604052600436106101b7576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101e5578063095ea7b31461027357806318160ddd146102cd57806323b872dd146102f657806329b9f3671461036f5780632a62738b146103c4578063313ce567146103ed57806333f4406a14610416578063415510df1461046b57806342966c68146104c0578063562e9df9146104fb5780635ed7ca5b14610550578063650462ab14610565578063661884631461058e57806370a08231146105e85780637228b9db14610635578063805341001461065e57806395d89b41146106ab5780639a63157a146107395780639c2553121461078e578063a9059cbb146107e3578063ac218c6d1461083d578063b1bd768314610892578063b2e2c75f146108bb578063b9b8af0b146108e4578063baa2edaf14610911578063cb3e64fd1461093a578063cd72ab691461094f578063d73dd62314610978578063d92ca5b4146109d2578063dd62ed3e146109fb578063de75c36e14610a67578063e182fd0114610abc578063ecdfca0614610ae5578063eea8465a14610b0e575b60001515600660009054906101000a900460ff1615151415156101d957600080fd5b6101e33334610b37565b005b34156101f057600080fd5b6101f8610e7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023857808201518184015260208101905061021d565b50505050905090810190601f1680156102655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027e57600080fd5b6102b3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610edf565b604051808215151515815260200191505060405180910390f35b34156102d857600080fd5b6102e0610fd1565b6040518082815260200191505060405180910390f35b341561030157600080fd5b610355600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fdb565b604051808215151515815260200191505060405180910390f35b341561037a57600080fd5b6103826112d7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103cf57600080fd5b6103d76112fd565b6040518082815260200191505060405180910390f35b34156103f857600080fd5b610400611303565b6040518082815260200191505060405180910390f35b341561042157600080fd5b610429611308565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047657600080fd5b61047e61132e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156104cb57600080fd5b6104e16004808035906020019091905050611354565b604051808215151515815260200191505060405180910390f35b341561050657600080fd5b61050e611464565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561055b57600080fd5b61056361148a565b005b341561057057600080fd5b61057861155f565b6040518082815260200191505060405180910390f35b341561059957600080fd5b6105ce600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611565565b604051808215151515815260200191505060405180910390f35b34156105f357600080fd5b61061f600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506117f6565b6040518082815260200191505060405180910390f35b341561064057600080fd5b61064861183e565b6040518082815260200191505060405180910390f35b341561066957600080fd5b610695600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611844565b6040518082815260200191505060405180910390f35b34156106b657600080fd5b6106be611a16565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106fe5780820151818401526020810190506106e3565b50505050905090810190601f16801561072b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561074457600080fd5b61074c611a4f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079957600080fd5b6107a1611a75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107ee57600080fd5b610823600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a9b565b604051808215151515815260200191505060405180910390f35b341561084857600080fd5b610850611d91565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561089d57600080fd5b6108a5611db7565b6040518082815260200191505060405180910390f35b34156108c657600080fd5b6108ce611dbd565b6040518082815260200191505060405180910390f35b34156108ef57600080fd5b6108f7611dc3565b604051808215151515815260200191505060405180910390f35b341561091c57600080fd5b610924611dd6565b6040518082815260200191505060405180910390f35b341561094557600080fd5b61094d611ddc565b005b341561095a57600080fd5b610962611eb1565b6040518082815260200191505060405180910390f35b341561098357600080fd5b6109b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611eb7565b604051808215151515815260200191505060405180910390f35b34156109dd57600080fd5b6109e56120b3565b6040518082815260200191505060405180910390f35b3415610a0657600080fd5b610a51600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120b9565b6040518082815260200191505060405180910390f35b3415610a7257600080fd5b610a7a612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ac757600080fd5b610acf612166565b6040518082815260200191505060405180910390f35b3415610af057600080fd5b610af861216c565b6040518082815260200191505060405180910390f35b3415610b1957600080fd5b610b21612172565b6040518082815260200191505060405180910390f35b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515610b5e57600080fd5b600082111515610b6d57600080fd5b600660009054906101000a900460ff16151515610b8957600080fd5b60055442101515610b9957600080fd5b610ba5826103c0612178565b9050600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c14600354836121b3565b101515610c2057600080fd5b600754610c2f600454846121b3565b101515610c3b57600080fd5b610c836000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826121b3565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d2f600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826121d1565b600080601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060036000828254019250508190555081600460008282540192505081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515610e1557600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b606060405190810160405280602381526020017f42656c7567612042616e6b696e6720496e66726173747275637475726520546f81526020017f6b656e000000000000000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156110455761103e8484846121ea565b90506112d0565b600660009054906101000a900460ff161580156110af5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561111057506002600a548115156110c457fe5b0461110d6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b801561112f575060026301e1338081151561112757fe5b046005540142115b156111465761113f8484846121ea565b90506112d0565b600660009054906101000a900460ff161580156111b05750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b801561121157506002600b548115156111c557fe5b0461120e6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611230575060026301e1338081151561122857fe5b046005540142115b15611247576112408484846121ea565b90506112d0565b600660009054906101000a900460ff1615801561126c5750600361126a33611844565b145b8015611279575060055442115b15611290576112898484846121ea565b90506112d0565b600660009054906101000a900460ff161580156112b457506301e133806005540142115b156112cb576112c48484846121ea565b90506112d0565b600090505b9392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b601281565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113b257600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156113ff57600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160016000828254039250508190555060019050919050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e657600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561154257600080fd5b6001600660006101000a81548160ff021916908315150217905550565b600c5481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611676576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061170a565b61168983826121d190919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806118ef5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156118fd5760019050611a11565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806119a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806119fe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611a0c5760029050611a11565b600390505b919050565b6040805190810160405280600381526020017f424249000000000000000000000000000000000000000000000000000000000081525081565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611b0457611afd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611b6e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611bcf57506002600a54811515611b8357fe5b04611bcc6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611bee575060026301e13380811515611be657fe5b046005540142115b15611c0457611bfd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611c6e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611ccf57506002600b54811515611c8357fe5b04611ccc6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846121d1565b10155b8015611cee575060026301e13380811515611ce657fe5b046005540142115b15611d0457611cfd83836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611d2957506003611d2733611844565b145b8015611d36575060055442115b15611d4c57611d4583836125a4565b9050611d8b565b600660009054906101000a900460ff16158015611d7057506301e133806005540142115b15611d8657611d7f83836125a4565b9050611d8b565b600090505b92915050565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b60035481565b600660009054906101000a900460ff1681565b600e5481565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e3857600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e9457600080fd5b6000600660006101000a81548160ff021916908315150217905550565b60045481565b6000611f4882600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600a5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60095481565b600b5481565b600080600084141561218d57600091506121ac565b828402905082848281151561219e57fe5b041415156121a857fe5b8091505b5092915050565b60008082840190508381101515156121c757fe5b8091505092915050565b60008282111515156121df57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561222757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561227457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156122ff57600080fd5b612350826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123e3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124b482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156125e157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561262e57600080fd5b61267f826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121d190919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612712826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b390919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820f1a3154a2bb05aa5c51e168ef232e5b0fd0ed860e20d7ba42397c8b04e7198200029
Swarm Source
bzzr://f1a3154a2bb05aa5c51e168ef232e5b0fd0ed860e20d7ba42397c8b04e719820
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.