content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: messages.proto
  // Protobuf Java Version: 4.28.2
  
  package finsky.protos;
  
  /**
   * Protobuf type {@code finsky.protos.AppInfo}
   */
  public  final class AppInfo extends
      com.google.protobuf.GeneratedMessageLite<
          AppInfo, AppInfo.Builder> implements
      // @@protoc_insertion_point(message_implements:finsky.protos.AppInfo)
      AppInfoOrBuilder {
    private AppInfo() {
      title_ = "";
      section_ = emptyProtobufList();
    }
    public interface AppInfoSectionOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.AppInfo.AppInfoSection)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional string label = 1;</code>
       * @return Whether the label field is set.
       */
      boolean hasLabel();
      /**
       * <code>optional string label = 1;</code>
       * @return The label.
       */
      java.lang.String getLabel();
      /**
       * <code>optional string label = 1;</code>
       * @return The bytes for label.
       */
      com.google.protobuf.ByteString
          getLabelBytes();
  
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       * @return Whether the container field is set.
       */
      boolean hasContainer();
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       * @return The container.
       */
      finsky.protos.AppInfo.AppInfoContainer getContainer();
    }
    /**
     * Protobuf type {@code finsky.protos.AppInfo.AppInfoSection}
     */
    public  static final class AppInfoSection extends
        com.google.protobuf.GeneratedMessageLite<
            AppInfoSection, AppInfoSection.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.AppInfo.AppInfoSection)
        AppInfoSectionOrBuilder {
      private AppInfoSection() {
        label_ = "";
      }
      private int bitField0_;
      public static final int LABEL_FIELD_NUMBER = 1;
      private java.lang.String label_;
      /**
       * <code>optional string label = 1;</code>
       * @return Whether the label field is set.
       */
      @java.lang.Override
      public boolean hasLabel() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional string label = 1;</code>
       * @return The label.
       */
      @java.lang.Override
      public java.lang.String getLabel() {
        return label_;
      }
      /**
       * <code>optional string label = 1;</code>
       * @return The bytes for label.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getLabelBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(label_);
      }
      /**
       * <code>optional string label = 1;</code>
       * @param value The label to set.
       */
      private void setLabel(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000001;
        label_ = value;
      }
      /**
       * <code>optional string label = 1;</code>
       */
      private void clearLabel() {
        bitField0_ = (bitField0_ & ~0x00000001);
        label_ = getDefaultInstance().getLabel();
      }
      /**
       * <code>optional string label = 1;</code>
       * @param value The bytes for label to set.
       */
      private void setLabelBytes(
          com.google.protobuf.ByteString value) {
        label_ = value.toStringUtf8();
        bitField0_ |= 0x00000001;
      }
  
      public static final int CONTAINER_FIELD_NUMBER = 3;
      private finsky.protos.AppInfo.AppInfoContainer container_;
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       */
      @java.lang.Override
      public boolean hasContainer() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       */
      @java.lang.Override
      public finsky.protos.AppInfo.AppInfoContainer getContainer() {
        return container_ == null ? finsky.protos.AppInfo.AppInfoContainer.getDefaultInstance() : container_;
      }
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       */
      private void setContainer(finsky.protos.AppInfo.AppInfoContainer value) {
        value.getClass();
    container_ = value;
        bitField0_ |= 0x00000002;
        }
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeContainer(finsky.protos.AppInfo.AppInfoContainer value) {
        value.getClass();
    if (container_ != null &&
            container_ != finsky.protos.AppInfo.AppInfoContainer.getDefaultInstance()) {
          container_ =
            finsky.protos.AppInfo.AppInfoContainer.newBuilder(container_).mergeFrom(value).buildPartial();
        } else {
          container_ = value;
        }
        bitField0_ |= 0x00000002;
      }
      /**
       * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
       */
      private void clearContainer() {  container_ = null;
        bitField0_ = (bitField0_ & ~0x00000002);
      }
  
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.AppInfo.AppInfoSection parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.AppInfo.AppInfoSection parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.AppInfo.AppInfoSection parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.AppInfo.AppInfoSection prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.AppInfo.AppInfoSection}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.AppInfo.AppInfoSection, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.AppInfo.AppInfoSection)
          finsky.protos.AppInfo.AppInfoSectionOrBuilder {
        // Construct using finsky.protos.AppInfo.AppInfoSection.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional string label = 1;</code>
         * @return Whether the label field is set.
         */
        @java.lang.Override
        public boolean hasLabel() {
          return instance.hasLabel();
        }
        /**
         * <code>optional string label = 1;</code>
         * @return The label.
         */
        @java.lang.Override
        public java.lang.String getLabel() {
          return instance.getLabel();
        }
        /**
         * <code>optional string label = 1;</code>
         * @return The bytes for label.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getLabelBytes() {
          return instance.getLabelBytes();
        }
        /**
         * <code>optional string label = 1;</code>
         * @param value The label to set.
         * @return This builder for chaining.
         */
        public Builder setLabel(
            java.lang.String value) {
          copyOnWrite();
          instance.setLabel(value);
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearLabel() {
          copyOnWrite();
          instance.clearLabel();
          return this;
        }
        /**
         * <code>optional string label = 1;</code>
         * @param value The bytes for label to set.
         * @return This builder for chaining.
         */
        public Builder setLabelBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setLabelBytes(value);
          return this;
        }
  
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        @java.lang.Override
        public boolean hasContainer() {
          return instance.hasContainer();
        }
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        @java.lang.Override
        public finsky.protos.AppInfo.AppInfoContainer getContainer() {
          return instance.getContainer();
        }
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        public Builder setContainer(finsky.protos.AppInfo.AppInfoContainer value) {
          copyOnWrite();
          instance.setContainer(value);
          return this;
          }
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        public Builder setContainer(
            finsky.protos.AppInfo.AppInfoContainer.Builder builderForValue) {
          copyOnWrite();
          instance.setContainer(builderForValue.build());
          return this;
        }
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        public Builder mergeContainer(finsky.protos.AppInfo.AppInfoContainer value) {
          copyOnWrite();
          instance.mergeContainer(value);
          return this;
        }
        /**
         * <code>optional .finsky.protos.AppInfo.AppInfoContainer container = 3;</code>
         */
        public Builder clearContainer() {  copyOnWrite();
          instance.clearContainer();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.AppInfo.AppInfoSection)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.AppInfo.AppInfoSection();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "label_",
                "container_",
              };
              java.lang.String info =
                  "\u0001\u0002\u0000\u0001\u0001\u0003\u0002\u0000\u0000\u0000\u0001\u1008\u0000\u0003" +
                  "\u1009\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.AppInfo.AppInfoSection> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.AppInfo.AppInfoSection.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.AppInfo.AppInfoSection>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.AppInfo.AppInfoSection)
      private static final finsky.protos.AppInfo.AppInfoSection DEFAULT_INSTANCE;
      static {
        AppInfoSection defaultInstance = new AppInfoSection();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          AppInfoSection.class, defaultInstance);
      }
  
      public static finsky.protos.AppInfo.AppInfoSection getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<AppInfoSection> PARSER;
  
      public static com.google.protobuf.Parser<AppInfoSection> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    public interface AppInfoContainerOrBuilder extends
        // @@protoc_insertion_point(interface_extends:finsky.protos.AppInfo.AppInfoContainer)
        com.google.protobuf.MessageLiteOrBuilder {
  
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       * @return Whether the image field is set.
       */
      boolean hasImage();
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       * @return The image.
       */
      finsky.protos.Common.Image getImage();
  
      /**
       * <code>optional string description = 2;</code>
       * @return Whether the description field is set.
       */
      boolean hasDescription();
      /**
       * <code>optional string description = 2;</code>
       * @return The description.
       */
      java.lang.String getDescription();
      /**
       * <code>optional string description = 2;</code>
       * @return The bytes for description.
       */
      com.google.protobuf.ByteString
          getDescriptionBytes();
    }
    /**
     * Protobuf type {@code finsky.protos.AppInfo.AppInfoContainer}
     */
    public  static final class AppInfoContainer extends
        com.google.protobuf.GeneratedMessageLite<
            AppInfoContainer, AppInfoContainer.Builder> implements
        // @@protoc_insertion_point(message_implements:finsky.protos.AppInfo.AppInfoContainer)
        AppInfoContainerOrBuilder {
      private AppInfoContainer() {
        description_ = "";
      }
      private int bitField0_;
      public static final int IMAGE_FIELD_NUMBER = 1;
      private finsky.protos.Common.Image image_;
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       */
      @java.lang.Override
      public boolean hasImage() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       */
      @java.lang.Override
      public finsky.protos.Common.Image getImage() {
        return image_ == null ? finsky.protos.Common.Image.getDefaultInstance() : image_;
      }
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       */
      private void setImage(finsky.protos.Common.Image value) {
        value.getClass();
    image_ = value;
        bitField0_ |= 0x00000001;
        }
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       */
      @java.lang.SuppressWarnings({"ReferenceEquality"})
      private void mergeImage(finsky.protos.Common.Image value) {
        value.getClass();
    if (image_ != null &&
            image_ != finsky.protos.Common.Image.getDefaultInstance()) {
          image_ =
            finsky.protos.Common.Image.newBuilder(image_).mergeFrom(value).buildPartial();
        } else {
          image_ = value;
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * <code>optional .finsky.protos.Common.Image image = 1;</code>
       */
      private void clearImage() {  image_ = null;
        bitField0_ = (bitField0_ & ~0x00000001);
      }
  
      public static final int DESCRIPTION_FIELD_NUMBER = 2;
      private java.lang.String description_;
      /**
       * <code>optional string description = 2;</code>
       * @return Whether the description field is set.
       */
      @java.lang.Override
      public boolean hasDescription() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional string description = 2;</code>
       * @return The description.
       */
      @java.lang.Override
      public java.lang.String getDescription() {
        return description_;
      }
      /**
       * <code>optional string description = 2;</code>
       * @return The bytes for description.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getDescriptionBytes() {
        return com.google.protobuf.ByteString.copyFromUtf8(description_);
      }
      /**
       * <code>optional string description = 2;</code>
       * @param value The description to set.
       */
      private void setDescription(
          java.lang.String value) {
        java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000002;
        description_ = value;
      }
      /**
       * <code>optional string description = 2;</code>
       */
      private void clearDescription() {
        bitField0_ = (bitField0_ & ~0x00000002);
        description_ = getDefaultInstance().getDescription();
      }
      /**
       * <code>optional string description = 2;</code>
       * @param value The bytes for description to set.
       */
      private void setDescriptionBytes(
          com.google.protobuf.ByteString value) {
        description_ = value.toStringUtf8();
        bitField0_ |= 0x00000002;
      }
  
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, data, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static finsky.protos.AppInfo.AppInfoContainer parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input);
      }
  
      public static finsky.protos.AppInfo.AppInfoContainer parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input);
      }
      public static finsky.protos.AppInfo.AppInfoContainer parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageLite.parseFrom(
            DEFAULT_INSTANCE, input, extensionRegistry);
      }
  
      public static Builder newBuilder() {
        return (Builder) DEFAULT_INSTANCE.createBuilder();
      }
      public static Builder newBuilder(finsky.protos.AppInfo.AppInfoContainer prototype) {
        return DEFAULT_INSTANCE.createBuilder(prototype);
      }
  
      /**
       * Protobuf type {@code finsky.protos.AppInfo.AppInfoContainer}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageLite.Builder<
            finsky.protos.AppInfo.AppInfoContainer, Builder> implements
          // @@protoc_insertion_point(builder_implements:finsky.protos.AppInfo.AppInfoContainer)
          finsky.protos.AppInfo.AppInfoContainerOrBuilder {
        // Construct using finsky.protos.AppInfo.AppInfoContainer.newBuilder()
        private Builder() {
          super(DEFAULT_INSTANCE);
        }
  
  
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        @java.lang.Override
        public boolean hasImage() {
          return instance.hasImage();
        }
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        @java.lang.Override
        public finsky.protos.Common.Image getImage() {
          return instance.getImage();
        }
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        public Builder setImage(finsky.protos.Common.Image value) {
          copyOnWrite();
          instance.setImage(value);
          return this;
          }
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        public Builder setImage(
            finsky.protos.Common.Image.Builder builderForValue) {
          copyOnWrite();
          instance.setImage(builderForValue.build());
          return this;
        }
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        public Builder mergeImage(finsky.protos.Common.Image value) {
          copyOnWrite();
          instance.mergeImage(value);
          return this;
        }
        /**
         * <code>optional .finsky.protos.Common.Image image = 1;</code>
         */
        public Builder clearImage() {  copyOnWrite();
          instance.clearImage();
          return this;
        }
  
        /**
         * <code>optional string description = 2;</code>
         * @return Whether the description field is set.
         */
        @java.lang.Override
        public boolean hasDescription() {
          return instance.hasDescription();
        }
        /**
         * <code>optional string description = 2;</code>
         * @return The description.
         */
        @java.lang.Override
        public java.lang.String getDescription() {
          return instance.getDescription();
        }
        /**
         * <code>optional string description = 2;</code>
         * @return The bytes for description.
         */
        @java.lang.Override
        public com.google.protobuf.ByteString
            getDescriptionBytes() {
          return instance.getDescriptionBytes();
        }
        /**
         * <code>optional string description = 2;</code>
         * @param value The description to set.
         * @return This builder for chaining.
         */
        public Builder setDescription(
            java.lang.String value) {
          copyOnWrite();
          instance.setDescription(value);
          return this;
        }
        /**
         * <code>optional string description = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearDescription() {
          copyOnWrite();
          instance.clearDescription();
          return this;
        }
        /**
         * <code>optional string description = 2;</code>
         * @param value The bytes for description to set.
         * @return This builder for chaining.
         */
        public Builder setDescriptionBytes(
            com.google.protobuf.ByteString value) {
          copyOnWrite();
          instance.setDescriptionBytes(value);
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:finsky.protos.AppInfo.AppInfoContainer)
      }
      @java.lang.Override
      @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
      protected final java.lang.Object dynamicMethod(
          com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
          java.lang.Object arg0, java.lang.Object arg1) {
        switch (method) {
          case NEW_MUTABLE_INSTANCE: {
            return new finsky.protos.AppInfo.AppInfoContainer();
          }
          case NEW_BUILDER: {
            return new Builder();
          }
          case BUILD_MESSAGE_INFO: {
              java.lang.Object[] objects = new java.lang.Object[] {
                "bitField0_",
                "image_",
                "description_",
              };
              java.lang.String info =
                  "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0000\u0000\u0001\u1009\u0000\u0002" +
                  "\u1008\u0001";
              return newMessageInfo(DEFAULT_INSTANCE, info, objects);
          }
          // fall through
          case GET_DEFAULT_INSTANCE: {
            return DEFAULT_INSTANCE;
          }
          case GET_PARSER: {
            com.google.protobuf.Parser<finsky.protos.AppInfo.AppInfoContainer> parser = PARSER;
            if (parser == null) {
              synchronized (finsky.protos.AppInfo.AppInfoContainer.class) {
                parser = PARSER;
                if (parser == null) {
                  parser =
                      new DefaultInstanceBasedParser<finsky.protos.AppInfo.AppInfoContainer>(
                          DEFAULT_INSTANCE);
                  PARSER = parser;
                }
              }
            }
            return parser;
        }
        case GET_MEMOIZED_IS_INITIALIZED: {
          return (byte) 1;
        }
        case SET_MEMOIZED_IS_INITIALIZED: {
          return null;
        }
        }
        throw new UnsupportedOperationException();
      }
  
  
      // @@protoc_insertion_point(class_scope:finsky.protos.AppInfo.AppInfoContainer)
      private static final finsky.protos.AppInfo.AppInfoContainer DEFAULT_INSTANCE;
      static {
        AppInfoContainer defaultInstance = new AppInfoContainer();
        // New instances are implicitly immutable so no need to make
        // immutable.
        DEFAULT_INSTANCE = defaultInstance;
        com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
          AppInfoContainer.class, defaultInstance);
      }
  
      public static finsky.protos.AppInfo.AppInfoContainer getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static volatile com.google.protobuf.Parser<AppInfoContainer> PARSER;
  
      public static com.google.protobuf.Parser<AppInfoContainer> parser() {
        return DEFAULT_INSTANCE.getParserForType();
      }
    }
  
    private int bitField0_;
    public static final int TITLE_FIELD_NUMBER = 1;
    private java.lang.String title_;
    /**
     * <code>optional string title = 1;</code>
     * @return Whether the title field is set.
     */
    @java.lang.Override
    public boolean hasTitle() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional string title = 1;</code>
     * @return The title.
     */
    @java.lang.Override
    public java.lang.String getTitle() {
      return title_;
    }
    /**
     * <code>optional string title = 1;</code>
     * @return The bytes for title.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTitleBytes() {
      return com.google.protobuf.ByteString.copyFromUtf8(title_);
    }
    /**
     * <code>optional string title = 1;</code>
     * @param value The title to set.
     */
    private void setTitle(
        java.lang.String value) {
      java.lang.Class<?> valueClass = value.getClass();
    bitField0_ |= 0x00000001;
      title_ = value;
    }
    /**
     * <code>optional string title = 1;</code>
     */
    private void clearTitle() {
      bitField0_ = (bitField0_ & ~0x00000001);
      title_ = getDefaultInstance().getTitle();
    }
    /**
     * <code>optional string title = 1;</code>
     * @param value The bytes for title to set.
     */
    private void setTitleBytes(
        com.google.protobuf.ByteString value) {
      title_ = value.toStringUtf8();
      bitField0_ |= 0x00000001;
    }
  
    public static final int SECTION_FIELD_NUMBER = 2;
    private com.google.protobuf.Internal.ProtobufList<finsky.protos.AppInfo.AppInfoSection> section_;
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    @java.lang.Override
    public java.util.List<finsky.protos.AppInfo.AppInfoSection> getSectionList() {
      return section_;
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    public java.util.List<? extends finsky.protos.AppInfo.AppInfoSectionOrBuilder> 
        getSectionOrBuilderList() {
      return section_;
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    @java.lang.Override
    public int getSectionCount() {
      return section_.size();
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    @java.lang.Override
    public finsky.protos.AppInfo.AppInfoSection getSection(int index) {
      return section_.get(index);
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    public finsky.protos.AppInfo.AppInfoSectionOrBuilder getSectionOrBuilder(
        int index) {
      return section_.get(index);
    }
    private void ensureSectionIsMutable() {
      com.google.protobuf.Internal.ProtobufList<finsky.protos.AppInfo.AppInfoSection> tmp = section_;
      if (!tmp.isModifiable()) {
        section_ =
            com.google.protobuf.GeneratedMessageLite.mutableCopy(tmp);
       }
    }
  
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void setSection(
        int index, finsky.protos.AppInfo.AppInfoSection value) {
      value.getClass();
    ensureSectionIsMutable();
      section_.set(index, value);
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void addSection(finsky.protos.AppInfo.AppInfoSection value) {
      value.getClass();
    ensureSectionIsMutable();
      section_.add(value);
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void addSection(
        int index, finsky.protos.AppInfo.AppInfoSection value) {
      value.getClass();
    ensureSectionIsMutable();
      section_.add(index, value);
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void addAllSection(
        java.lang.Iterable<? extends finsky.protos.AppInfo.AppInfoSection> values) {
      ensureSectionIsMutable();
      com.google.protobuf.AbstractMessageLite.addAll(
          values, section_);
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void clearSection() {
      section_ = emptyProtobufList();
    }
    /**
     * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
     */
    private void removeSection(int index) {
      ensureSectionIsMutable();
      section_.remove(index);
    }
  
    public static finsky.protos.AppInfo parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AppInfo parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AppInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AppInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AppInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data);
    }
    public static finsky.protos.AppInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, data, extensionRegistry);
    }
    public static finsky.protos.AppInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AppInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static finsky.protos.AppInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input);
    }
  
    public static finsky.protos.AppInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return parseDelimitedFrom(DEFAULT_INSTANCE, input, extensionRegistry);
    }
    public static finsky.protos.AppInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input);
    }
    public static finsky.protos.AppInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageLite.parseFrom(
          DEFAULT_INSTANCE, input, extensionRegistry);
    }
  
    public static Builder newBuilder() {
      return (Builder) DEFAULT_INSTANCE.createBuilder();
    }
    public static Builder newBuilder(finsky.protos.AppInfo prototype) {
      return DEFAULT_INSTANCE.createBuilder(prototype);
    }
  
    /**
     * Protobuf type {@code finsky.protos.AppInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageLite.Builder<
          finsky.protos.AppInfo, Builder> implements
        // @@protoc_insertion_point(builder_implements:finsky.protos.AppInfo)
        finsky.protos.AppInfoOrBuilder {
      // Construct using finsky.protos.AppInfo.newBuilder()
      private Builder() {
        super(DEFAULT_INSTANCE);
      }
  
  
      /**
       * <code>optional string title = 1;</code>
       * @return Whether the title field is set.
       */
      @java.lang.Override
      public boolean hasTitle() {
        return instance.hasTitle();
      }
      /**
       * <code>optional string title = 1;</code>
       * @return The title.
       */
      @java.lang.Override
      public java.lang.String getTitle() {
        return instance.getTitle();
      }
      /**
       * <code>optional string title = 1;</code>
       * @return The bytes for title.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getTitleBytes() {
        return instance.getTitleBytes();
      }
      /**
       * <code>optional string title = 1;</code>
       * @param value The title to set.
       * @return This builder for chaining.
       */
      public Builder setTitle(
          java.lang.String value) {
        copyOnWrite();
        instance.setTitle(value);
        return this;
      }
      /**
       * <code>optional string title = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearTitle() {
        copyOnWrite();
        instance.clearTitle();
        return this;
      }
      /**
       * <code>optional string title = 1;</code>
       * @param value The bytes for title to set.
       * @return This builder for chaining.
       */
      public Builder setTitleBytes(
          com.google.protobuf.ByteString value) {
        copyOnWrite();
        instance.setTitleBytes(value);
        return this;
      }
  
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      @java.lang.Override
      public java.util.List<finsky.protos.AppInfo.AppInfoSection> getSectionList() {
        return java.util.Collections.unmodifiableList(
            instance.getSectionList());
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      @java.lang.Override
      public int getSectionCount() {
        return instance.getSectionCount();
      }/**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      @java.lang.Override
      public finsky.protos.AppInfo.AppInfoSection getSection(int index) {
        return instance.getSection(index);
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder setSection(
          int index, finsky.protos.AppInfo.AppInfoSection value) {
        copyOnWrite();
        instance.setSection(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder setSection(
          int index, finsky.protos.AppInfo.AppInfoSection.Builder builderForValue) {
        copyOnWrite();
        instance.setSection(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder addSection(finsky.protos.AppInfo.AppInfoSection value) {
        copyOnWrite();
        instance.addSection(value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder addSection(
          int index, finsky.protos.AppInfo.AppInfoSection value) {
        copyOnWrite();
        instance.addSection(index, value);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder addSection(
          finsky.protos.AppInfo.AppInfoSection.Builder builderForValue) {
        copyOnWrite();
        instance.addSection(builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder addSection(
          int index, finsky.protos.AppInfo.AppInfoSection.Builder builderForValue) {
        copyOnWrite();
        instance.addSection(index,
            builderForValue.build());
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder addAllSection(
          java.lang.Iterable<? extends finsky.protos.AppInfo.AppInfoSection> values) {
        copyOnWrite();
        instance.addAllSection(values);
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder clearSection() {
        copyOnWrite();
        instance.clearSection();
        return this;
      }
      /**
       * <code>repeated .finsky.protos.AppInfo.AppInfoSection section = 2;</code>
       */
      public Builder removeSection(int index) {
        copyOnWrite();
        instance.removeSection(index);
        return this;
      }
  
      // @@protoc_insertion_point(builder_scope:finsky.protos.AppInfo)
    }
    @java.lang.Override
    @java.lang.SuppressWarnings({"unchecked", "fallthrough"})
    protected final java.lang.Object dynamicMethod(
        com.google.protobuf.GeneratedMessageLite.MethodToInvoke method,
        java.lang.Object arg0, java.lang.Object arg1) {
      switch (method) {
        case NEW_MUTABLE_INSTANCE: {
          return new finsky.protos.AppInfo();
        }
        case NEW_BUILDER: {
          return new Builder();
        }
        case BUILD_MESSAGE_INFO: {
            java.lang.Object[] objects = new java.lang.Object[] {
              "bitField0_",
              "title_",
              "section_",
              finsky.protos.AppInfo.AppInfoSection.class,
            };
            java.lang.String info =
                "\u0001\u0002\u0000\u0001\u0001\u0002\u0002\u0000\u0001\u0000\u0001\u1008\u0000\u0002" +
                "\u001b";
            return newMessageInfo(DEFAULT_INSTANCE, info, objects);
        }
        // fall through
        case GET_DEFAULT_INSTANCE: {
          return DEFAULT_INSTANCE;
        }
        case GET_PARSER: {
          com.google.protobuf.Parser<finsky.protos.AppInfo> parser = PARSER;
          if (parser == null) {
            synchronized (finsky.protos.AppInfo.class) {
              parser = PARSER;
              if (parser == null) {
                parser =
                    new DefaultInstanceBasedParser<finsky.protos.AppInfo>(
                        DEFAULT_INSTANCE);
                PARSER = parser;
              }
            }
          }
          return parser;
      }
      case GET_MEMOIZED_IS_INITIALIZED: {
        return (byte) 1;
      }
      case SET_MEMOIZED_IS_INITIALIZED: {
        return null;
      }
      }
      throw new UnsupportedOperationException();
    }
  
  
    // @@protoc_insertion_point(class_scope:finsky.protos.AppInfo)
    private static final finsky.protos.AppInfo DEFAULT_INSTANCE;
    static {
      AppInfo defaultInstance = new AppInfo();
      // New instances are implicitly immutable so no need to make
      // immutable.
      DEFAULT_INSTANCE = defaultInstance;
      com.google.protobuf.GeneratedMessageLite.registerDefaultInstance(
        AppInfo.class, defaultInstance);
    }
  
    public static finsky.protos.AppInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
  
    private static volatile com.google.protobuf.Parser<AppInfo> PARSER;
  
    public static com.google.protobuf.Parser<AppInfo> parser() {
      return DEFAULT_INSTANCE.getParserForType();
    }
  }
  
  