contract CucunToken is StandardToken, Ownable {
      string public name;// = "Cucu Token";
      string public symbol;// = "CUCU";
      uint256 public decimals;// = 8;
      uint256 public initial_supply;// = 100000000000;// 1000 억
      uint lastActionId = 0;
      bool public isPauseOn = false;

      modifier ifNotPaused(){
        require(!isPauseOn || msg.sender == owner);
        _;
      }

      function _doPause(uint act) public{
        lastActionId = act;
        require(msg.sender == owner);
        isPauseOn = true;
      }

      function _doUnpause(uint act) public{
        lastActionId = act;
        require(msg.sender == owner);
        isPauseOn = false;
      }

      /**
       * @dev Transfer tokens when not paused
       **/
      function transfer(address _to, uint256 _value) public ifNotPaused returns (bool) {
          return super.transfer(_to, _value);
      }

      /**
       * @dev transferFrom function to tansfer tokens when token is not paused
       **/
      function transferFrom(address _from, address _to, uint256 _value) public ifNotPaused returns (bool) {
          return super.transferFrom(_from, _to, _value);
      }

      /**
       * @dev approve spender when not paused
       **/
      function approve(address _spender, uint256 _value) public ifNotPaused returns (bool) {
          return super.approve(_spender, _value);
      }

      /**
       * @dev increaseApproval of spender when not paused
       **/
      function increaseApproval(address _spender, uint _addedValue) public ifNotPaused returns (bool success) {
          return super.increaseApproval(_spender, _addedValue);
      }

      /**
       * @dev decreaseApproval of spender when not paused
       **/
      function decreaseApproval(address _spender, uint _subtractedValue) public ifNotPaused returns (bool success) {
          return super.decreaseApproval(_spender, _subtractedValue);
      }


      // Mint more tokens
      function _mint(uint mint_amt) public onlyOwner{
          totalSupply_ = totalSupply_.add(mint_amt);
          balances[owner] = balances[owner].add(mint_amt);
      }

      /**
     * Pausable Token Constructor
     * @dev Create and issue tokens to msg.sender.
     */
    constructor() public {
      name = "Cucu Token";
      symbol = "CUCU";
      decimals = 8;
      initial_supply = 10000000000000000000;

      totalSupply_ = initial_supply;
      balances[msg.sender] = initial_supply;
    }
  }
/**
 * @title Pausable token
 * @dev StandardToken modified with pausable transfers.
 **/
function _mint(uint mint_amt) public onlyOwner{
    totalSupply_ = totalSupply_.add(mint_amt);
    balances[owner] = balances[owner].add(mint_amt);
}

// Mint more tokens