<NA>
<NA>
function mint_Qgo (
    address _recipient,
    uint256 _amount
  ) external onlyAdmin {
    if (_recipient == address(0)) { revert MintToZeroAddress(); }
    if (_amount == 0) { revert MintZeroQuantity(); }
    if (nextId - 1 + _amount > cap) { revert CapExceeded(); }

    /**
      Inspired by the Chiru Labs implementation, we use unchecked math here.
      Only enormous minting counts that are unrealistic for our purposes would
      cause an overflow.
    */
    uint256 startTokenId = nextId;
    unchecked {
      balances[_recipient] += _amount;
      owners[startTokenId] = _recipient;

      uint256 updatedIndex = startTokenId;
      for (uint256 i; i < _amount; i++) {
        emit Transfer(address(0), _recipient, updatedIndex);
        updatedIndex++;
      }
      nextId = updatedIndex;
    }
  }
/**
 This function allows permissioned minters of this contract to mint one or
 more tokens dictated by the `_amount` parameter. Any minted tokens are sent
 to the `_recipient` address.
 
 Note that tokens are always minted sequentially starting at one. That is,
 the list of token IDs is always increasing and looks like [ 1, 2, 3... ].
 Also note that per our use cases the intended recipient of these minted
 items will always be externally-owned accounts and not other contracts. As a
 result there is no safety check on whether or not the mint destination can
 actually correctly handle an ERC-721 token.
 
 @param _recipient The recipient of the tokens being minted.
 @param _amount The amount of tokens to mint.
 */