code: static byte[] parseBytes(String bytes, String source) {
  
      NlsNullPointerException.checkNotNull(source, bytes);
      int length = bytes.length();
      if ((length == 0) || (length % 3 != 0)) {
        throw new NlsIllegalArgumentException(bytes, source);
      }
      length = length / 3;
      byte[] result = new byte[length];
      int start = 0;
      for (int i = 0; i < length; i++) {
        String byteString = bytes.substring(start, start + 1);
        result[i] = (byte) Integer.parseInt(byteString, 16);
        if (bytes.charAt(start + 2) != '-') {
          throw new NlsIllegalArgumentException(bytes, source);
        }
        start = start + 3;
      }
      return result;
    }
docs: This method parses the given {@code bytes} from {@code source} to {@code byte[]}.
  
  @param bytes are the bytes encoded as {@link String} in the form {@code HH([-]HH)*} where {@code HH} is a hex
  encoded byte ([0-9A-F]{2}). Example: "FE-7A-32-BB".
  @param source describes where the given {@code bytes} origin from. This is only used in case of an error for the
  exception message.
  @return the converted byte array.