ETH Price: $2,394.79 (+0.95%)

Token

Redvolution (REDV)
 

Overview

Max Total Supply

20,990,000 REDV

Holders

2,896

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
1,141,596.70330495 REDV

Value
$0.00
0xaC2d706200AeF9C305c3A624137920e868fBb46d
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Redvolution

Compiler Version
v0.4.17+commit.bdeb9e52

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-03
*/

pragma solidity ^0.4.13;

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


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


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


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

}

/**
 * Math operations with safety checks
 */
contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }

  function assert(bool assertion) internal {
    if (!assertion) throw;
  }
}

contract ERC20 {
    string public symbol;
    string public name;
    uint8 public decimals;
    uint256 _totalSupply;
    
    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;
    
    function totalSupply() constant returns (uint256 totalSupply);
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

 
contract Redvolution is Ownable, SafeMath, ERC20 {
    // ERC20 constants
    string public symbol = "REDV";
    string public name = "Redvolution";
    uint8 public constant decimals = 8;
    uint256 _totalSupply = 21000000*(10**8);
    
    // Constants
    uint public pricePerMessage = 5*(10**8);
    uint public priceCreatingChannel = 5000*(10**8);
    uint public maxCharacters = 300;
    uint public metadataSize = 1000;
    uint public channelMaxSize = 25;
    
    // Channels
    mapping(string => address) channelOwner;
    mapping(string => uint256) channelsOnSale;
    mapping(string => string) metadataChannel;
    mapping(address => string) metadataUser;
    mapping(address => uint256) ranks;
    
    // Events
    event MessageSent(address from, address to, uint256 bonus, string messageContent, string messageTitle, uint256 timestamp);
    event MessageSentToChannel(address from, string channel, string messageContent, uint256 timestamp);
    event pricePerMessageChanged(uint256 lastOne, uint256 newOne);
    event priceCreatingChannelChanged(uint256 lastOne, uint256 newOne);
    event ChannelBought(string channelName, address buyer, address seller);
    event ChannelCreated(string channelName, address creator);
    
    function Redvolution() {
        owner = msg.sender;
        balances[msg.sender] = _totalSupply;
        channelOwner["general"] = owner;
        channelOwner["General"] = owner;
        channelOwner["redvolution"] = owner;
        channelOwner["Redvolution"] = owner;
        channelOwner["REDV"] = owner;
    }
    
    function sendMessage(address to, string messageContent, string messageTitle, uint256 amountBonusToken){
        assert(bytes(messageContent).length <= maxCharacters);
        transfer(to,amountBonusToken+pricePerMessage);
        MessageSent(msg.sender,to,amountBonusToken,messageContent,messageTitle,block.timestamp);
    }
    
    function sendMultipleMessages(address[] to, string messageContent, string messageTitle, uint256 amountBonusToken){
        for(uint i=0;i<to.length;i++){
            sendMessage(to[i],messageContent,messageTitle,amountBonusToken);
        }
    }
    
    function sendMessageToChannel(string channelName, string messageContent){ // only owners can send messages to channels
        assert(bytes(messageContent).length <= maxCharacters);
        assert(bytes(channelName).length <= channelMaxSize);
        assert(msg.sender == channelOwner[channelName]);
        
        MessageSentToChannel(msg.sender,channelName,messageContent, block.timestamp);
    }
    
    /**
     * Sales of Channels 
     */
     
    function sellChannel(string channelName, uint256 price){
        assert(bytes(channelName).length <= channelMaxSize);
        assert(channelOwner[channelName] != 0);
        assert(msg.sender == channelOwner[channelName]);
        
        channelsOnSale[channelName] = price;
    } 
    
    function buyChannel(string channelName){
        assert(bytes(channelName).length <= channelMaxSize);
        assert(channelsOnSale[channelName] > 0);
        assert(channelOwner[channelName] != 0);
        
        transfer(channelOwner[channelName],channelsOnSale[channelName]);
        
        ChannelBought(channelName,msg.sender,channelOwner[channelName]);
        channelOwner[channelName] = msg.sender;
        channelsOnSale[channelName] = 0;
    }
    
    function createChannel(string channelName){
        assert(channelOwner[channelName] == 0);
        assert(bytes(channelName).length <= channelMaxSize);
        
        burn(priceCreatingChannel);
        channelOwner[channelName] = msg.sender;
        ChannelCreated(channelName,msg.sender);
    }
    
    /**
     * General setters
     */
     
    function setMetadataUser(string metadata) {
        assert(bytes(metadata).length <= metadataSize);
        metadataUser[msg.sender] = metadata;    
    }
    
    function setMetadataChannels(string channelName, string metadata){ // metadata can be used for a lot of things such as redirection or displaying an image
        assert(msg.sender == channelOwner[channelName]);
        assert(bytes(metadata).length <= metadataSize);
        
        metadataChannel[channelName] = metadata;
    }
    
    /**
     * General getters
     */
    
    function getOwner(string channel) constant returns(address ownerOfChannel){
        return channelOwner[channel];
    }
    
    function getPriceChannel(string channel) constant returns(uint256 price){
        return channelsOnSale[channel];
    }
    
    function getMetadataChannel(string channel) constant returns(string metadataOfChannel){
        return metadataChannel[channel];
    }
    
    function getMetadataUser(address user) constant returns(string metadataOfUser){
        return metadataUser[user];
    }
    
    function getRank(address user) constant returns(uint256){
        return ranks[user];
    }
    
    /**
     * Update the constants of the network if necessary
     */
    
    function setPricePerMessage(uint256 newPrice) onlyOwner {
        pricePerMessageChanged(pricePerMessage,newPrice);
        pricePerMessage = newPrice;
    }
    
    function setPriceCreatingChannel(uint256 newPrice) onlyOwner {
        priceCreatingChannelChanged(priceCreatingChannel,newPrice);
        priceCreatingChannel = newPrice;
    }
    
    function setPriceChannelMaxSize(uint256 newSize) onlyOwner {
        channelMaxSize = newSize;
    }
    
    function setMetadataSize(uint256 newSize) onlyOwner {
        metadataSize = newSize;
    }
    
    function setMaxCharacters(uint256 newMax) onlyOwner {
        maxCharacters = newMax;
    }
    
    function setSymbol(string newSymbol) onlyOwner {
        symbol = newSymbol;
    }
    
    function setName(string newName) onlyOwner {
        name = newName;
    }
    
    function setRank(address user, uint256 newRank) onlyOwner {
        ranks[user] = newRank;
    }
    
    /**
     * Others
     */
     
    function burn(uint256 amount){
        balances[msg.sender] = safeSub(balances[msg.sender],amount);
        _totalSupply = safeSub(_totalSupply,amount);
    }
    
    /**
     * ERC20 functions
     */
    
    function totalSupply() constant returns (uint256 totalSupply) {
        totalSupply = _totalSupply;
    }
  
    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }
 
    function transfer(address _to, uint256 _amount) returns (bool success) {
        balances[msg.sender] = safeSub(balances[msg.sender],_amount);
        balances[_to] = safeAdd(balances[_to],_amount);
        Transfer(msg.sender, _to, _amount);
        return true;
    }
     
    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    ) returns (bool success) {
        
        allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender],_amount);
        balances[_from] = safeSub(balances[_from],_amount);
        balances[_to] = safeAdd(balances[_to],_amount);
        Transfer(_from, _to, _amount);
        return true;
    }
 
    function approve(address _spender, uint256 _amount) returns (bool success) {
        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }
  
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    /**
    * @dev Transfer an _amount to multiple addresses, used for airdrop
    * @param _amount The amount to be transfered
    * @param addresses The array of addresses to which the tokens will be sent
    */
    function transferMultiple(uint256 _amount, address[] addresses) onlyOwner {
        for (uint i = 0; i < addresses.length; i++) {
            transfer(addresses[i],_amount);
        }
    }
    
    function transferMultipleDifferentValues(uint256[] amounts, address[] addresses) onlyOwner {
        assert(amounts.length == addresses.length);
        for (uint i = 0; i < addresses.length; i++) {
            transfer(addresses[i],amounts[i]);
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"newSize","type":"uint256"}],"name":"setMetadataSize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"metadataSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"messageContent","type":"string"},{"name":"messageTitle","type":"string"},{"name":"amountBonusToken","type":"uint256"}],"name":"sendMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pricePerMessage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"setPriceCreatingChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"channel","type":"string"}],"name":"getOwner","outputs":[{"name":"ownerOfChannel","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getRank","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getMetadataUser","outputs":[{"name":"metadataOfUser","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"metadata","type":"string"}],"name":"setMetadataUser","outputs":[],"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":false,"inputs":[{"name":"channelName","type":"string"},{"name":"metadata","type":"string"}],"name":"setMetadataChannels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amounts","type":"uint256[]"},{"name":"addresses","type":"address[]"}],"name":"transferMultipleDifferentValues","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"setMaxCharacters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"channelName","type":"string"}],"name":"buyChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxCharacters","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"channel","type":"string"}],"name":"getPriceChannel","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_amount","type":"uint256"},{"name":"addresses","type":"address[]"}],"name":"transferMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"channelName","type":"string"},{"name":"price","type":"uint256"}],"name":"sellChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"channelMaxSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"setPricePerMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSymbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSize","type":"uint256"}],"name":"setPriceChannelMaxSize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newName","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"channel","type":"string"}],"name":"getMetadataChannel","outputs":[{"name":"metadataOfChannel","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"channelName","type":"string"}],"name":"createChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceCreatingChannel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"newRank","type":"uint256"}],"name":"setRank","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address[]"},{"name":"messageContent","type":"string"},{"name":"messageTitle","type":"string"},{"name":"amountBonusToken","type":"uint256"}],"name":"sendMultipleMessages","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"channelName","type":"string"},{"name":"messageContent","type":"string"}],"name":"sendMessageToChannel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"bonus","type":"uint256"},{"indexed":false,"name":"messageContent","type":"string"},{"indexed":false,"name":"messageTitle","type":"string"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"MessageSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"channel","type":"string"},{"indexed":false,"name":"messageContent","type":"string"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"MessageSentToChannel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"lastOne","type":"uint256"},{"indexed":false,"name":"newOne","type":"uint256"}],"name":"pricePerMessageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"lastOne","type":"uint256"},{"indexed":false,"name":"newOne","type":"uint256"}],"name":"priceCreatingChannelChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"channelName","type":"string"},{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"seller","type":"address"}],"name":"ChannelBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"channelName","type":"string"},{"indexed":false,"name":"creator","type":"address"}],"name":"ChannelCreated","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"}]

60606040526040805190810160405280600481526020017f52454456000000000000000000000000000000000000000000000000000000008152506007908051906020019062000051929190620004bb565b506040805190810160405280600b81526020017f526564766f6c7574696f6e000000000000000000000000000000000000000000815250600890805190602001906200009f929190620004bb565b50660775f05a074000600955631dcd6500600a5564746a528800600b5561012c600c556103e8600d556019600e553415620000d957600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60405180807f67656e6572616c000000000000000000000000000000000000000000000000008152506007019050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60405180807f47656e6572616c000000000000000000000000000000000000000000000000008152506007019050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60405180807f726564766f6c7574696f6e000000000000000000000000000000000000000000815250600b019050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60405180807f526564766f6c7574696f6e000000000000000000000000000000000000000000815250600b019050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f60405180807f52454456000000000000000000000000000000000000000000000000000000008152506004019050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200056a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004fe57805160ff19168380011785556200052f565b828001600101855582156200052f579182015b828111156200052e57825182559160200191906001019062000511565b5b5090506200053e919062000542565b5090565b6200056791905b808211156200056357600081600090555060010162000549565b5090565b90565b613277806200057a6000396000f300606060405236156101ec576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305a873dc146101f157806306fdde0314610214578063095ea7b3146102a257806316708bc6146102fc57806318160ddd146103255780631d9caa691461034e57806323b872dd1461041657806325e1b5e41461048f5780632cc82225146104b8578063313ce567146104db57806342966c681461050a5780634aaf4a121461052d578063548c0ef4146105ca5780635c552fab146106175780636338977e146106c957806370a08231146107265780638214fe031461077357806384a0f60414610813578063864e8cc1146108ad578063869c8bd4146108d05780638882ddc91461092d57806389a451fb146109565780638da5cb5b146109c757806395d89b4114610a1c578063982b668914610aaa578063997aa31f14610b0d5780639f53e07b14610b73578063a2e2998c14610b9c578063a9059cbb14610bbf578063b84c824614610c19578063b9dfaf3a14610c76578063c47f002714610c99578063c83923c514610cf6578063cb6af4cb14610dcc578063dd62ed3e14610e29578063e265153914610e95578063e3aa018e14610ebe578063f2fde38b14610f00578063fa307fcb14610f39578063fe94915914611022575b600080fd5b34156101fc57600080fd5b61021260048080359060200190919050506110c2565b005b341561021f57600080fd5b610227611127565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026757808201518184015260208101905061024c565b50505050905090810190601f1680156102945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ad57600080fd5b6102e2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111c5565b604051808215151515815260200191505060405180910390f35b341561030757600080fd5b61030f6112b7565b6040518082815260200191505060405180910390f35b341561033057600080fd5b6103386112bd565b6040518082815260200191505060405180910390f35b341561035957600080fd5b610414600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506112c7565b005b341561042157600080fd5b610475600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061146c565b604051808215151515815260200191505060405180910390f35b341561049a57600080fd5b6104a26116fc565b6040518082815260200191505060405180910390f35b34156104c357600080fd5b6104d96004808035906020019091905050611702565b005b34156104e657600080fd5b6104ee6117a8565b604051808260ff1660ff16815260200191505060405180910390f35b341561051557600080fd5b61052b60048080359060200190919050506117ad565b005b341561053857600080fd5b610588600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061184e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d557600080fd5b610601600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118e3565b6040518082815260200191505060405180910390f35b341561062257600080fd5b61064e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061192c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106d457600080fd5b610724600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611a13565b005b341561073157600080fd5b61075d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a79565b6040518082815260200191505060405180910390f35b341561077e57600080fd5b610811600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ac2565b005b341561081e57600080fd5b6108ab60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611c17565b005b34156108b857600080fd5b6108ce6004808035906020019091905050611cda565b005b34156108db57600080fd5b61092b600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611d3f565b005b341561093857600080fd5b610940612221565b6040518082815260200191505060405180910390f35b341561096157600080fd5b6109b1600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612227565b6040518082815260200191505060405180910390f35b34156109d257600080fd5b6109da61229c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a2757600080fd5b610a2f6122c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a6f578082015181840152602081019050610a54565b50505050905090810190601f168015610a9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610ab557600080fd5b610b0b60048080359060200190919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061235f565b005b3415610b1857600080fd5b610b71600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506123fe565b005b3415610b7e57600080fd5b610b866125f1565b6040518082815260200191505060405180910390f35b3415610ba757600080fd5b610bbd60048080359060200190919050506125f7565b005b3415610bca57600080fd5b610bff600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061269d565b604051808215151515815260200191505060405180910390f35b3415610c2457600080fd5b610c74600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612826565b005b3415610c8157600080fd5b610c97600480803590602001909190505061289b565b005b3415610ca457600080fd5b610cf4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612900565b005b3415610d0157600080fd5b610d51600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612975565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d91578082015181840152602081019050610d76565b50505050905090810190601f168015610dbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610dd757600080fd5b610e27600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612a88565b005b3415610e3457600080fd5b610e7f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ccc565b6040518082815260200191505060405180910390f35b3415610ea057600080fd5b610ea8612d53565b6040518082815260200191505060405180910390f35b3415610ec957600080fd5b610efe600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612d59565b005b3415610f0b57600080fd5b610f37600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612dfc565b005b3415610f4457600080fd5b61102060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050612ed1565b005b341561102d57600080fd5b6110c0600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f17565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111d57600080fd5b80600d8190555050565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111bd5780601f10611192576101008083540402835291602001916111bd565b820191906000526020600020905b8154815290600101906020018083116111a057829003601f168201915b505050505081565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600d5481565b6000600954905090565b6112d6600c5484511115613140565b6112e484600a54830161269d565b507f4129d7d1f4c88951fa10df15b854981af16d0390220f22cb931d247757d46caf338583868642604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156113c05780820151818401526020810190506113a5565b50505050905090810190601f1680156113ed5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561142657808201518184015260208101905061140b565b50505050905090810190601f1680156114535780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a150505050565b60006114f4600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115bd600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611649600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613168565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175d57600080fd5b7f3eb2a37d28b6e2cbab69063e24753b51ac169164389bb6968c9dd1b305e33e2c600b5482604051808381526020018281526020019250505060405180910390a180600b8190555050565b600881565b6117f6600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261314f565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118456009548261314f565b60098190555050565b6000600f826040518082805190602001908083835b6020831015156118885780518252602082019150602081019050602083039250611863565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611934613192565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a075780601f106119dc57610100808354040283529160200191611a07565b820191906000526020600020905b8154815290600101906020018083116119ea57829003601f168201915b50505050509050919050565b611a22600d5482511115613140565b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611a759291906131a6565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b84600f836040518082805190602001908083835b602083101515611afd5780518252602082019150602081019050602083039250611ad8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b611b93600d5482511115613140565b806011836040518082805190602001908083835b602083101515611bcc5780518252602082019150602081019050602083039250611ba7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611c129291906131a6565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7457600080fd5b611c818251845114613140565b600090505b8151811015611cd557611cc78282815181101515611ca057fe5b906020019060200201518483815181101515611cb857fe5b9060200190602002015161269d565b508080600101915050611c86565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d3557600080fd5b80600c8190555050565b611d4e600e5482511115613140565b611dc560006010836040518082805190602001908083835b602083101515611d8b5780518252602082019150602081019050602083039250611d66565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205411613140565b611e736000600f836040518082805190602001908083835b602083101515611e025780518252602082019150602081019050602083039250611ddd565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613140565b611f73600f826040518082805190602001908083835b602083101515611eae5780518252602082019150602081019050602083039250611e89565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010836040518082805190602001908083835b602083101515611f3a5780518252602082019150602081019050602083039250611f15565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205461269d565b507f75ddfa112e729f87fd5087a0831afed24f992d9354e003d9cdc3cdcef58635bd8133600f846040518082805190602001908083835b602083101515611fcf5780518252602082019150602081019050602083039250611faa565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156120c75780820151818401526020810190506120ac565b50505050905090810190601f1680156120f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a133600f826040518082805190602001908083835b60208310151561213c5780518252602082019150602081019050602083039250612117565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006010826040518082805190602001908083835b6020831015156121e757805182526020820191506020810190506020830392506121c2565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555050565b600c5481565b60006010826040518082805190602001908083835b602083101515612261578051825260208201915060208101905060208303925061223c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123575780601f1061232c57610100808354040283529160200191612357565b820191906000526020600020905b81548152906001019060200180831161233a57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123bc57600080fd5b600090505b81518110156123f9576123eb82828151811015156123db57fe5b906020019060200201518461269d565b5080806001019150506123c1565b505050565b61240d600e5483511115613140565b6124bb6000600f846040518082805190602001908083835b60208310151561244a5780518252602082019150602081019050602083039250612425565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613140565b61257d600f836040518082805190602001908083835b6020831015156124f657805182526020820191506020810190506020830392506124d1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b806010836040518082805190602001908083835b6020831015156125b65780518252602082019150602081019050602083039250612591565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055505050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561265257600080fd5b7f8d9a7b4902b5ca385c252aabb82e3929c68732a5bd78255d281ed0c73675f185600a5482604051808381526020018281526020019250505060405180910390a180600a8190555050565b60006126e8600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612774600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613168565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288157600080fd5b80600790805190602001906128979291906131a6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128f657600080fd5b80600e8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561295b57600080fd5b80600890805190602001906129719291906131a6565b5050565b61297d613192565b6011826040518082805190602001908083835b6020831015156129b55780518252602082019150602081019050602083039250612990565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a7c5780601f10612a5157610100808354040283529160200191612a7c565b820191906000526020600020905b815481529060010190602001808311612a5f57829003601f168201915b50505050509050919050565b612b356000600f836040518082805190602001908083835b602083101515612ac55780518252602082019150602081019050602083039250612aa0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613140565b612b44600e5482511115613140565b612b4f600b546117ad565b33600f826040518082805190602001908083835b602083101515612b885780518252602082019150602081019050602083039250612b63565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5d98d9ee2f45a911e7f127ab3975a8fa4e2681b57e7411cf547f5a6bd094dda2813360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612c8e578082015181840152602081019050612c73565b50505050905090810190601f168015612cbb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612db457600080fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612ece57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008090505b8451811015612f1057612f038582815181101515612ef157fe5b906020019060200201518585856112c7565b8080600101915050612ed7565b5050505050565b612f26600c5482511115613140565b612f35600e5483511115613140565b612ff7600f836040518082805190602001908083835b602083101515612f705780518252602082019150602081019050602083039250612f4b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b7fa5d33c2b350354c6a09f9ffad259e92d4d77763e10b908c0d7f86b9326d63ba633838342604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561309857808201518184015260208101905061307d565b50505050905090810190601f1680156130c55780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156130fe5780820151818401526020810190506130e3565b50505050905090810190601f16801561312b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a15050565b80151561314c57600080fd5b50565b600061315d83831115613140565b818303905092915050565b60008082840190506131888482101580156131835750838210155b613140565b8091505092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131e757805160ff1916838001178555613215565b82800160010185558215613215579182015b828111156132145782518255916020019190600101906131f9565b5b5090506132229190613226565b5090565b61324891905b8082111561324457600081600090555060010161322c565b5090565b905600a165627a7a723058207f3cc7eefb46762cb677ee2c41ce70fa1864d5820d2838922ef6338bc2cd97f00029

Deployed Bytecode

0x606060405236156101ec576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305a873dc146101f157806306fdde0314610214578063095ea7b3146102a257806316708bc6146102fc57806318160ddd146103255780631d9caa691461034e57806323b872dd1461041657806325e1b5e41461048f5780632cc82225146104b8578063313ce567146104db57806342966c681461050a5780634aaf4a121461052d578063548c0ef4146105ca5780635c552fab146106175780636338977e146106c957806370a08231146107265780638214fe031461077357806384a0f60414610813578063864e8cc1146108ad578063869c8bd4146108d05780638882ddc91461092d57806389a451fb146109565780638da5cb5b146109c757806395d89b4114610a1c578063982b668914610aaa578063997aa31f14610b0d5780639f53e07b14610b73578063a2e2998c14610b9c578063a9059cbb14610bbf578063b84c824614610c19578063b9dfaf3a14610c76578063c47f002714610c99578063c83923c514610cf6578063cb6af4cb14610dcc578063dd62ed3e14610e29578063e265153914610e95578063e3aa018e14610ebe578063f2fde38b14610f00578063fa307fcb14610f39578063fe94915914611022575b600080fd5b34156101fc57600080fd5b61021260048080359060200190919050506110c2565b005b341561021f57600080fd5b610227611127565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026757808201518184015260208101905061024c565b50505050905090810190601f1680156102945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ad57600080fd5b6102e2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111c5565b604051808215151515815260200191505060405180910390f35b341561030757600080fd5b61030f6112b7565b6040518082815260200191505060405180910390f35b341561033057600080fd5b6103386112bd565b6040518082815260200191505060405180910390f35b341561035957600080fd5b610414600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506112c7565b005b341561042157600080fd5b610475600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061146c565b604051808215151515815260200191505060405180910390f35b341561049a57600080fd5b6104a26116fc565b6040518082815260200191505060405180910390f35b34156104c357600080fd5b6104d96004808035906020019091905050611702565b005b34156104e657600080fd5b6104ee6117a8565b604051808260ff1660ff16815260200191505060405180910390f35b341561051557600080fd5b61052b60048080359060200190919050506117ad565b005b341561053857600080fd5b610588600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061184e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105d557600080fd5b610601600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118e3565b6040518082815260200191505060405180910390f35b341561062257600080fd5b61064e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061192c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561068e578082015181840152602081019050610673565b50505050905090810190601f1680156106bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106d457600080fd5b610724600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611a13565b005b341561073157600080fd5b61075d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a79565b6040518082815260200191505060405180910390f35b341561077e57600080fd5b610811600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611ac2565b005b341561081e57600080fd5b6108ab60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611c17565b005b34156108b857600080fd5b6108ce6004808035906020019091905050611cda565b005b34156108db57600080fd5b61092b600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611d3f565b005b341561093857600080fd5b610940612221565b6040518082815260200191505060405180910390f35b341561096157600080fd5b6109b1600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612227565b6040518082815260200191505060405180910390f35b34156109d257600080fd5b6109da61229c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a2757600080fd5b610a2f6122c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a6f578082015181840152602081019050610a54565b50505050905090810190601f168015610a9c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610ab557600080fd5b610b0b60048080359060200190919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190505061235f565b005b3415610b1857600080fd5b610b71600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919050506123fe565b005b3415610b7e57600080fd5b610b866125f1565b6040518082815260200191505060405180910390f35b3415610ba757600080fd5b610bbd60048080359060200190919050506125f7565b005b3415610bca57600080fd5b610bff600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061269d565b604051808215151515815260200191505060405180910390f35b3415610c2457600080fd5b610c74600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612826565b005b3415610c8157600080fd5b610c97600480803590602001909190505061289b565b005b3415610ca457600080fd5b610cf4600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612900565b005b3415610d0157600080fd5b610d51600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612975565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d91578082015181840152602081019050610d76565b50505050905090810190601f168015610dbe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610dd757600080fd5b610e27600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612a88565b005b3415610e3457600080fd5b610e7f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ccc565b6040518082815260200191505060405180910390f35b3415610ea057600080fd5b610ea8612d53565b6040518082815260200191505060405180910390f35b3415610ec957600080fd5b610efe600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612d59565b005b3415610f0b57600080fd5b610f37600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612dfc565b005b3415610f4457600080fd5b61102060048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050612ed1565b005b341561102d57600080fd5b6110c0600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612f17565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561111d57600080fd5b80600d8190555050565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111bd5780601f10611192576101008083540402835291602001916111bd565b820191906000526020600020905b8154815290600101906020018083116111a057829003601f168201915b505050505081565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600d5481565b6000600954905090565b6112d6600c5484511115613140565b6112e484600a54830161269d565b507f4129d7d1f4c88951fa10df15b854981af16d0390220f22cb931d247757d46caf338583868642604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b838110156113c05780820151818401526020810190506113a5565b50505050905090810190601f1680156113ed5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561142657808201518184015260208101905061140b565b50505050905090810190601f1680156114535780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a150505050565b60006114f4600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115bd600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611649600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613168565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175d57600080fd5b7f3eb2a37d28b6e2cbab69063e24753b51ac169164389bb6968c9dd1b305e33e2c600b5482604051808381526020018281526020019250505060405180910390a180600b8190555050565b600881565b6117f6600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261314f565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118456009548261314f565b60098190555050565b6000600f826040518082805190602001908083835b6020831015156118885780518252602082019150602081019050602083039250611863565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611934613192565b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a075780601f106119dc57610100808354040283529160200191611a07565b820191906000526020600020905b8154815290600101906020018083116119ea57829003601f168201915b50505050509050919050565b611a22600d5482511115613140565b80601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611a759291906131a6565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611b84600f836040518082805190602001908083835b602083101515611afd5780518252602082019150602081019050602083039250611ad8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b611b93600d5482511115613140565b806011836040518082805190602001908083835b602083101515611bcc5780518252602082019150602081019050602083039250611ba7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390209080519060200190611c129291906131a6565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7457600080fd5b611c818251845114613140565b600090505b8151811015611cd557611cc78282815181101515611ca057fe5b906020019060200201518483815181101515611cb857fe5b9060200190602002015161269d565b508080600101915050611c86565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d3557600080fd5b80600c8190555050565b611d4e600e5482511115613140565b611dc560006010836040518082805190602001908083835b602083101515611d8b5780518252602082019150602081019050602083039250611d66565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205411613140565b611e736000600f836040518082805190602001908083835b602083101515611e025780518252602082019150602081019050602083039250611ddd565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613140565b611f73600f826040518082805190602001908083835b602083101515611eae5780518252602082019150602081019050602083039250611e89565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166010836040518082805190602001908083835b602083101515611f3a5780518252602082019150602081019050602083039250611f15565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205461269d565b507f75ddfa112e729f87fd5087a0831afed24f992d9354e003d9cdc3cdcef58635bd8133600f846040518082805190602001908083835b602083101515611fcf5780518252602082019150602081019050602083039250611faa565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405180806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156120c75780820151818401526020810190506120ac565b50505050905090810190601f1680156120f45780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a133600f826040518082805190602001908083835b60208310151561213c5780518252602082019150602081019050602083039250612117565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006010826040518082805190602001908083835b6020831015156121e757805182526020820191506020810190506020830392506121c2565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208190555050565b600c5481565b60006010826040518082805190602001908083835b602083101515612261578051825260208201915060208101905060208303925061223c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123575780601f1061232c57610100808354040283529160200191612357565b820191906000526020600020905b81548152906001019060200180831161233a57829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123bc57600080fd5b600090505b81518110156123f9576123eb82828151811015156123db57fe5b906020019060200201518461269d565b5080806001019150506123c1565b505050565b61240d600e5483511115613140565b6124bb6000600f846040518082805190602001908083835b60208310151561244a5780518252602082019150602081019050602083039250612425565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613140565b61257d600f836040518082805190602001908083835b6020831015156124f657805182526020820191506020810190506020830392506124d1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b806010836040518082805190602001908083835b6020831015156125b65780518252602082019150602081019050602083039250612591565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055505050565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561265257600080fd5b7f8d9a7b4902b5ca385c252aabb82e3929c68732a5bd78255d281ed0c73675f185600a5482604051808381526020018281526020019250505060405180910390a180600a8190555050565b60006126e8600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361314f565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612774600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613168565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288157600080fd5b80600790805190602001906128979291906131a6565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128f657600080fd5b80600e8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561295b57600080fd5b80600890805190602001906129719291906131a6565b5050565b61297d613192565b6011826040518082805190602001908083835b6020831015156129b55780518252602082019150602081019050602083039250612990565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a7c5780601f10612a5157610100808354040283529160200191612a7c565b820191906000526020600020905b815481529060010190602001808311612a5f57829003601f168201915b50505050509050919050565b612b356000600f836040518082805190602001908083835b602083101515612ac55780518252602082019150602081019050602083039250612aa0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613140565b612b44600e5482511115613140565b612b4f600b546117ad565b33600f826040518082805190602001908083835b602083101515612b885780518252602082019150602081019050602083039250612b63565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f5d98d9ee2f45a911e7f127ab3975a8fa4e2681b57e7411cf547f5a6bd094dda2813360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015612c8e578082015181840152602081019050612c73565b50505050905090810190601f168015612cbb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612db457600080fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515612ece57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008090505b8451811015612f1057612f038582815181101515612ef157fe5b906020019060200201518585856112c7565b8080600101915050612ed7565b5050505050565b612f26600c5482511115613140565b612f35600e5483511115613140565b612ff7600f836040518082805190602001908083835b602083101515612f705780518252602082019150602081019050602083039250612f4b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613140565b7fa5d33c2b350354c6a09f9ffad259e92d4d77763e10b908c0d7f86b9326d63ba633838342604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561309857808201518184015260208101905061307d565b50505050905090810190601f1680156130c55780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156130fe5780820151818401526020810190506130e3565b50505050905090810190601f16801561312b5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a15050565b80151561314c57600080fd5b50565b600061315d83831115613140565b818303905092915050565b60008082840190506131888482101580156131835750838210155b613140565b8091505092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131e757805160ff1916838001178555613215565b82800160010185558215613215579182015b828111156132145782518255916020019190600101906131f9565b5b5090506132229190613226565b5090565b61324891905b8082111561324457600081600090555060010161322c565b5090565b905600a165627a7a723058207f3cc7eefb46762cb677ee2c41ce70fa1864d5820d2838922ef6338bc2cd97f00029

Swarm Source

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