contract LeekUprising is LockableToken {
    event Burn(address indexed _burner, uint256 _value);

    string  public  constant name = "LeekUprising";
    string  public  constant symbol = "LUP";
    uint8   public  constant decimals = 6;

    /**
     * constructor 
     */
    constructor() public {
        //set totalSupply 1000 000 000.000000
        totalSupply = 10**15;
        //init balances
        balances[msg.sender] = totalSupply;
        emit Transfer(address(0x0), msg.sender, totalSupply);   
    }

    /**
     * transfer and lock this value
     * only called by admins (limit when setLock)
     */
    function transferAndLock(address _to, uint256 _value, uint256 _releaseTimeS) public returns (bool) {
        //at first, try lock address
        setLock(_to,_value,_releaseTimeS);
        //if transfer failed, must be throw a exception
        transfer(_to, _value);
        return true;
    }

    /**
     * transfer to multi accounts
     * if need multi accounts with diffient value, please create a help contract
     */
    function transferMulti(address[] adds, uint256 value) public{
        //transfer for every one
        for(uint256 i=0; i<adds.length; i++){
            //if transfer failed, must be throw a exception
            transfer(adds[i], value);
        }
    }
}
function transferAndLock(address _to, uint256 _value, uint256 _releaseTimeS) public returns (bool) {
        //at first, try lock address
        setLock(_to,_value,_releaseTimeS);
        //if transfer failed, must be throw a exception
        transfer(_to, _value);
        return true;
    }
/**
 * transfer and lock this value
 * only called by admins (limit when setLock)
 */