code: static public String encode(byte[] bytes, String indentation) {
          StringBuilder result = new StringBuilder();
          int length = bytes.length;
          if (length == 0) return "";  // empty byte array
          if (indentation != null) result.append(indentation);
          encodeBytes(bytes[0], bytes[0], 0, result);
          for (int i = 1; i < length; i++) {
              if (i % 50 == 0) {
                  // format to indented 80 character blocks
                  result.append("\n");
                  if (indentation != null) result.append(indentation);
              }
              encodeBytes(bytes[i - 1], bytes[i], i, result);
          }
          encodeLastByte(bytes[length - 1], length - 1, result);
          return result.toString();
      }
docs: This function encodes a byte array using base 32 with a specific indentation of new lines.
  
  @param bytes The byte array to be encoded.
  @param indentation The indentation string to be inserted before each new line.
  @return The base 32 encoded string.