// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: ExchangeShop.proto

package pb.xiugou.x1.protobuf.exchangeshop;

public final class ExchangeShop {
  private ExchangeShop() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface ExchangeShopInfoResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ExchangeShopInfoResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> 
        getShopsList();
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getShops(int index);
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    int getShopsCount();
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder> 
        getShopsOrBuilderList();
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder getShopsOrBuilder(
        int index);

    /**
     * <pre>
     *开服天数
     * </pre>
     *
     * <code>int32 open_day = 2;</code>
     * @return The openDay.
     */
    int getOpenDay();
  }
  /**
   * Protobuf type {@code pb.ExchangeShopInfoResponse}
   */
  public  static final class ExchangeShopInfoResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ExchangeShopInfoResponse)
      ExchangeShopInfoResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExchangeShopInfoResponse.newBuilder() to construct.
    private ExchangeShopInfoResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExchangeShopInfoResponse() {
      shops_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExchangeShopInfoResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExchangeShopInfoResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                shops_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop>();
                mutable_bitField0_ |= 0x00000001;
              }
              shops_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.parser(), extensionRegistry));
              break;
            }
            case 16: {

              openDay_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          shops_ = java.util.Collections.unmodifiableList(shops_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopInfoResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopInfoResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ExchangeShopInfoResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 2400001;</code>
       */
      ID(2400001),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 2400001;</code>
       */
      public static final int ID_VALUE = 2400001;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2400001: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ExchangeShopInfoResponse.Proto)
    }

    public static final int SHOPS_FIELD_NUMBER = 1;
    private java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> shops_;
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> getShopsList() {
      return shops_;
    }
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder> 
        getShopsOrBuilderList() {
      return shops_;
    }
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    public int getShopsCount() {
      return shops_.size();
    }
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getShops(int index) {
      return shops_.get(index);
    }
    /**
     * <code>repeated .pb.PbShop shops = 1;</code>
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder getShopsOrBuilder(
        int index) {
      return shops_.get(index);
    }

    public static final int OPEN_DAY_FIELD_NUMBER = 2;
    private int openDay_;
    /**
     * <pre>
     *开服天数
     * </pre>
     *
     * <code>int32 open_day = 2;</code>
     * @return The openDay.
     */
    public int getOpenDay() {
      return openDay_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < shops_.size(); i++) {
        output.writeMessage(1, shops_.get(i));
      }
      if (openDay_ != 0) {
        output.writeInt32(2, openDay_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < shops_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, shops_.get(i));
      }
      if (openDay_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, openDay_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse other = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse) obj;

      if (!getShopsList()
          .equals(other.getShopsList())) return false;
      if (getOpenDay()
          != other.getOpenDay()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getShopsCount() > 0) {
        hash = (37 * hash) + SHOPS_FIELD_NUMBER;
        hash = (53 * hash) + getShopsList().hashCode();
      }
      hash = (37 * hash) + OPEN_DAY_FIELD_NUMBER;
      hash = (53 * hash) + getOpenDay();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.ExchangeShopInfoResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ExchangeShopInfoResponse)
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopInfoResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopInfoResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getShopsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (shopsBuilder_ == null) {
          shops_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          shopsBuilder_.clear();
        }
        openDay_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopInfoResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse build() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse buildPartial() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse result = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse(this);
        int from_bitField0_ = bitField0_;
        if (shopsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            shops_ = java.util.Collections.unmodifiableList(shops_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.shops_ = shops_;
        } else {
          result.shops_ = shopsBuilder_.build();
        }
        result.openDay_ = openDay_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse other) {
        if (other == pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse.getDefaultInstance()) return this;
        if (shopsBuilder_ == null) {
          if (!other.shops_.isEmpty()) {
            if (shops_.isEmpty()) {
              shops_ = other.shops_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureShopsIsMutable();
              shops_.addAll(other.shops_);
            }
            onChanged();
          }
        } else {
          if (!other.shops_.isEmpty()) {
            if (shopsBuilder_.isEmpty()) {
              shopsBuilder_.dispose();
              shopsBuilder_ = null;
              shops_ = other.shops_;
              bitField0_ = (bitField0_ & ~0x00000001);
              shopsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getShopsFieldBuilder() : null;
            } else {
              shopsBuilder_.addAllMessages(other.shops_);
            }
          }
        }
        if (other.getOpenDay() != 0) {
          setOpenDay(other.getOpenDay());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> shops_ =
        java.util.Collections.emptyList();
      private void ensureShopsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          shops_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop>(shops_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder> shopsBuilder_;

      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> getShopsList() {
        if (shopsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(shops_);
        } else {
          return shopsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public int getShopsCount() {
        if (shopsBuilder_ == null) {
          return shops_.size();
        } else {
          return shopsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getShops(int index) {
        if (shopsBuilder_ == null) {
          return shops_.get(index);
        } else {
          return shopsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder setShops(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop value) {
        if (shopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShopsIsMutable();
          shops_.set(index, value);
          onChanged();
        } else {
          shopsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder setShops(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder builderForValue) {
        if (shopsBuilder_ == null) {
          ensureShopsIsMutable();
          shops_.set(index, builderForValue.build());
          onChanged();
        } else {
          shopsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder addShops(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop value) {
        if (shopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShopsIsMutable();
          shops_.add(value);
          onChanged();
        } else {
          shopsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder addShops(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop value) {
        if (shopsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureShopsIsMutable();
          shops_.add(index, value);
          onChanged();
        } else {
          shopsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder addShops(
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder builderForValue) {
        if (shopsBuilder_ == null) {
          ensureShopsIsMutable();
          shops_.add(builderForValue.build());
          onChanged();
        } else {
          shopsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder addShops(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder builderForValue) {
        if (shopsBuilder_ == null) {
          ensureShopsIsMutable();
          shops_.add(index, builderForValue.build());
          onChanged();
        } else {
          shopsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder addAllShops(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop> values) {
        if (shopsBuilder_ == null) {
          ensureShopsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, shops_);
          onChanged();
        } else {
          shopsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder clearShops() {
        if (shopsBuilder_ == null) {
          shops_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          shopsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public Builder removeShops(int index) {
        if (shopsBuilder_ == null) {
          ensureShopsIsMutable();
          shops_.remove(index);
          onChanged();
        } else {
          shopsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder getShopsBuilder(
          int index) {
        return getShopsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder getShopsOrBuilder(
          int index) {
        if (shopsBuilder_ == null) {
          return shops_.get(index);  } else {
          return shopsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder> 
           getShopsOrBuilderList() {
        if (shopsBuilder_ != null) {
          return shopsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(shops_);
        }
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder addShopsBuilder() {
        return getShopsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder addShopsBuilder(
          int index) {
        return getShopsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbShop shops = 1;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder> 
           getShopsBuilderList() {
        return getShopsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder> 
          getShopsFieldBuilder() {
        if (shopsBuilder_ == null) {
          shopsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder>(
                  shops_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          shops_ = null;
        }
        return shopsBuilder_;
      }

      private int openDay_ ;
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 2;</code>
       * @return The openDay.
       */
      public int getOpenDay() {
        return openDay_;
      }
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 2;</code>
       * @param value The openDay to set.
       * @return This builder for chaining.
       */
      public Builder setOpenDay(int value) {
        
        openDay_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *开服天数
       * </pre>
       *
       * <code>int32 open_day = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpenDay() {
        
        openDay_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.ExchangeShopInfoResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.ExchangeShopInfoResponse)
    private static final pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse();
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ExchangeShopInfoResponse>
        PARSER = new com.google.protobuf.AbstractParser<ExchangeShopInfoResponse>() {
      @java.lang.Override
      public ExchangeShopInfoResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExchangeShopInfoResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ExchangeShopInfoResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ExchangeShopInfoResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopInfoResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExchangeShopExchangeRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ExchangeShopExchangeRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *兑换商店表 商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <pre>
     *商品ID
     * </pre>
     *
     * <code>int32 product_id = 2;</code>
     * @return The productId.
     */
    int getProductId();

    /**
     * <pre>
     *兑换数量
     * </pre>
     *
     * <code>int32 exchange_num = 3;</code>
     * @return The exchangeNum.
     */
    int getExchangeNum();
  }
  /**
   * Protobuf type {@code pb.ExchangeShopExchangeRequest}
   */
  public  static final class ExchangeShopExchangeRequest extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ExchangeShopExchangeRequest)
      ExchangeShopExchangeRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExchangeShopExchangeRequest.newBuilder() to construct.
    private ExchangeShopExchangeRequest(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExchangeShopExchangeRequest() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExchangeShopExchangeRequest();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExchangeShopExchangeRequest(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              shopId_ = input.readInt32();
              break;
            }
            case 16: {

              productId_ = input.readInt32();
              break;
            }
            case 24: {

              exchangeNum_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ExchangeShopExchangeRequest.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 2400002;</code>
       */
      ID(2400002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 2400002;</code>
       */
      public static final int ID_VALUE = 2400002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2400002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ExchangeShopExchangeRequest.Proto)
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *兑换商店表 商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCT_ID_FIELD_NUMBER = 2;
    private int productId_;
    /**
     * <pre>
     *商品ID
     * </pre>
     *
     * <code>int32 product_id = 2;</code>
     * @return The productId.
     */
    public int getProductId() {
      return productId_;
    }

    public static final int EXCHANGE_NUM_FIELD_NUMBER = 3;
    private int exchangeNum_;
    /**
     * <pre>
     *兑换数量
     * </pre>
     *
     * <code>int32 exchange_num = 3;</code>
     * @return The exchangeNum.
     */
    public int getExchangeNum() {
      return exchangeNum_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      if (productId_ != 0) {
        output.writeInt32(2, productId_);
      }
      if (exchangeNum_ != 0) {
        output.writeInt32(3, exchangeNum_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      if (productId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, productId_);
      }
      if (exchangeNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, exchangeNum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest other = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (getProductId()
          != other.getProductId()) return false;
      if (getExchangeNum()
          != other.getExchangeNum()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      hash = (37 * hash) + PRODUCT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getProductId();
      hash = (37 * hash) + EXCHANGE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getExchangeNum();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.ExchangeShopExchangeRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ExchangeShopExchangeRequest)
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shopId_ = 0;

        productId_ = 0;

        exchangeNum_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeRequest_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest build() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest buildPartial() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest result = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest(this);
        result.shopId_ = shopId_;
        result.productId_ = productId_;
        result.exchangeNum_ = exchangeNum_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest) {
          return mergeFrom((pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest other) {
        if (other == pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (other.getProductId() != 0) {
          setProductId(other.getProductId());
        }
        if (other.getExchangeNum() != 0) {
          setExchangeNum(other.getExchangeNum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int shopId_ ;
      /**
       * <pre>
       *兑换商店表 商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *兑换商店表 商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *兑换商店表 商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private int productId_ ;
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 2;</code>
       * @return The productId.
       */
      public int getProductId() {
        return productId_;
      }
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 2;</code>
       * @param value The productId to set.
       * @return This builder for chaining.
       */
      public Builder setProductId(int value) {
        
        productId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearProductId() {
        
        productId_ = 0;
        onChanged();
        return this;
      }

      private int exchangeNum_ ;
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 3;</code>
       * @return The exchangeNum.
       */
      public int getExchangeNum() {
        return exchangeNum_;
      }
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 3;</code>
       * @param value The exchangeNum to set.
       * @return This builder for chaining.
       */
      public Builder setExchangeNum(int value) {
        
        exchangeNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchangeNum() {
        
        exchangeNum_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.ExchangeShopExchangeRequest)
    }

    // @@protoc_insertion_point(class_scope:pb.ExchangeShopExchangeRequest)
    private static final pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest();
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ExchangeShopExchangeRequest>
        PARSER = new com.google.protobuf.AbstractParser<ExchangeShopExchangeRequest>() {
      @java.lang.Override
      public ExchangeShopExchangeRequest parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExchangeShopExchangeRequest(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ExchangeShopExchangeRequest> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ExchangeShopExchangeRequest> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExchangeShopExchangeResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.ExchangeShopExchangeResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <code>.pb.PbProduct product = 2;</code>
     * @return Whether the product field is set.
     */
    boolean hasProduct();
    /**
     * <code>.pb.PbProduct product = 2;</code>
     * @return The product.
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProduct();
    /**
     * <code>.pb.PbProduct product = 2;</code>
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductOrBuilder();

    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     * @return Whether the receipt field is set.
     */
    boolean hasReceipt();
    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     * @return The receipt.
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt getReceipt();
    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     */
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder getReceiptOrBuilder();

    /**
     * <pre>
     *兑换数量
     * </pre>
     *
     * <code>int32 exchange_num = 4;</code>
     * @return The exchangeNum.
     */
    int getExchangeNum();
  }
  /**
   * Protobuf type {@code pb.ExchangeShopExchangeResponse}
   */
  public  static final class ExchangeShopExchangeResponse extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.ExchangeShopExchangeResponse)
      ExchangeShopExchangeResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ExchangeShopExchangeResponse.newBuilder() to construct.
    private ExchangeShopExchangeResponse(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ExchangeShopExchangeResponse() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new ExchangeShopExchangeResponse();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ExchangeShopExchangeResponse(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              shopId_ = input.readInt32();
              break;
            }
            case 18: {
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder subBuilder = null;
              if (product_ != null) {
                subBuilder = product_.toBuilder();
              }
              product_ = input.readMessage(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(product_);
                product_ = subBuilder.buildPartial();
              }

              break;
            }
            case 26: {
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder subBuilder = null;
              if (receipt_ != null) {
                subBuilder = receipt_.toBuilder();
              }
              receipt_ = input.readMessage(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(receipt_);
                receipt_ = subBuilder.buildPartial();
              }

              break;
            }
            case 32: {

              exchangeNum_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code pb.ExchangeShopExchangeResponse.Proto}
     */
    public enum Proto
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>UNKNOWN = 0;</code>
       */
      UNKNOWN(0),
      /**
       * <code>ID = 2400002;</code>
       */
      ID(2400002),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>UNKNOWN = 0;</code>
       */
      public static final int UNKNOWN_VALUE = 0;
      /**
       * <code>ID = 2400002;</code>
       */
      public static final int ID_VALUE = 2400002;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Proto valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Proto forNumber(int value) {
        switch (value) {
          case 0: return UNKNOWN;
          case 2400002: return ID;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<Proto>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          Proto> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<Proto>() {
              public Proto findValueByNumber(int number) {
                return Proto.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.getDescriptor().getEnumTypes().get(0);
      }

      private static final Proto[] VALUES = values();

      public static Proto valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Proto(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:pb.ExchangeShopExchangeResponse.Proto)
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCT_FIELD_NUMBER = 2;
    private pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct product_;
    /**
     * <code>.pb.PbProduct product = 2;</code>
     * @return Whether the product field is set.
     */
    public boolean hasProduct() {
      return product_ != null;
    }
    /**
     * <code>.pb.PbProduct product = 2;</code>
     * @return The product.
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProduct() {
      return product_ == null ? pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance() : product_;
    }
    /**
     * <code>.pb.PbProduct product = 2;</code>
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductOrBuilder() {
      return getProduct();
    }

    public static final int RECEIPT_FIELD_NUMBER = 3;
    private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt receipt_;
    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     * @return Whether the receipt field is set.
     */
    public boolean hasReceipt() {
      return receipt_ != null;
    }
    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     * @return The receipt.
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt getReceipt() {
      return receipt_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.getDefaultInstance() : receipt_;
    }
    /**
     * <code>.pb.PbThingReceipt receipt = 3;</code>
     */
    public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder getReceiptOrBuilder() {
      return getReceipt();
    }

    public static final int EXCHANGE_NUM_FIELD_NUMBER = 4;
    private int exchangeNum_;
    /**
     * <pre>
     *兑换数量
     * </pre>
     *
     * <code>int32 exchange_num = 4;</code>
     * @return The exchangeNum.
     */
    public int getExchangeNum() {
      return exchangeNum_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      if (product_ != null) {
        output.writeMessage(2, getProduct());
      }
      if (receipt_ != null) {
        output.writeMessage(3, getReceipt());
      }
      if (exchangeNum_ != 0) {
        output.writeInt32(4, exchangeNum_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      if (product_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getProduct());
      }
      if (receipt_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getReceipt());
      }
      if (exchangeNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, exchangeNum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse other = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (hasProduct() != other.hasProduct()) return false;
      if (hasProduct()) {
        if (!getProduct()
            .equals(other.getProduct())) return false;
      }
      if (hasReceipt() != other.hasReceipt()) return false;
      if (hasReceipt()) {
        if (!getReceipt()
            .equals(other.getReceipt())) return false;
      }
      if (getExchangeNum()
          != other.getExchangeNum()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      if (hasProduct()) {
        hash = (37 * hash) + PRODUCT_FIELD_NUMBER;
        hash = (53 * hash) + getProduct().hashCode();
      }
      if (hasReceipt()) {
        hash = (37 * hash) + RECEIPT_FIELD_NUMBER;
        hash = (53 * hash) + getReceipt().hashCode();
      }
      hash = (37 * hash) + EXCHANGE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getExchangeNum();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.ExchangeShopExchangeResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.ExchangeShopExchangeResponse)
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shopId_ = 0;

        if (productBuilder_ == null) {
          product_ = null;
        } else {
          product_ = null;
          productBuilder_ = null;
        }
        if (receiptBuilder_ == null) {
          receipt_ = null;
        } else {
          receipt_ = null;
          receiptBuilder_ = null;
        }
        exchangeNum_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_ExchangeShopExchangeResponse_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse build() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse buildPartial() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse result = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse(this);
        result.shopId_ = shopId_;
        if (productBuilder_ == null) {
          result.product_ = product_;
        } else {
          result.product_ = productBuilder_.build();
        }
        if (receiptBuilder_ == null) {
          result.receipt_ = receipt_;
        } else {
          result.receipt_ = receiptBuilder_.build();
        }
        result.exchangeNum_ = exchangeNum_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse) {
          return mergeFrom((pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse other) {
        if (other == pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (other.hasProduct()) {
          mergeProduct(other.getProduct());
        }
        if (other.hasReceipt()) {
          mergeReceipt(other.getReceipt());
        }
        if (other.getExchangeNum() != 0) {
          setExchangeNum(other.getExchangeNum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct product_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> productBuilder_;
      /**
       * <code>.pb.PbProduct product = 2;</code>
       * @return Whether the product field is set.
       */
      public boolean hasProduct() {
        return productBuilder_ != null || product_ != null;
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       * @return The product.
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProduct() {
        if (productBuilder_ == null) {
          return product_ == null ? pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance() : product_;
        } else {
          return productBuilder_.getMessage();
        }
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public Builder setProduct(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct value) {
        if (productBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          product_ = value;
          onChanged();
        } else {
          productBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public Builder setProduct(
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder builderForValue) {
        if (productBuilder_ == null) {
          product_ = builderForValue.build();
          onChanged();
        } else {
          productBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public Builder mergeProduct(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct value) {
        if (productBuilder_ == null) {
          if (product_ != null) {
            product_ =
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.newBuilder(product_).mergeFrom(value).buildPartial();
          } else {
            product_ = value;
          }
          onChanged();
        } else {
          productBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public Builder clearProduct() {
        if (productBuilder_ == null) {
          product_ = null;
          onChanged();
        } else {
          product_ = null;
          productBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder getProductBuilder() {
        
        onChanged();
        return getProductFieldBuilder().getBuilder();
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductOrBuilder() {
        if (productBuilder_ != null) {
          return productBuilder_.getMessageOrBuilder();
        } else {
          return product_ == null ?
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance() : product_;
        }
      }
      /**
       * <code>.pb.PbProduct product = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> 
          getProductFieldBuilder() {
        if (productBuilder_ == null) {
          productBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder>(
                  getProduct(),
                  getParentForChildren(),
                  isClean());
          product_ = null;
        }
        return productBuilder_;
      }

      private pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt receipt_;
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder> receiptBuilder_;
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       * @return Whether the receipt field is set.
       */
      public boolean hasReceipt() {
        return receiptBuilder_ != null || receipt_ != null;
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       * @return The receipt.
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt getReceipt() {
        if (receiptBuilder_ == null) {
          return receipt_ == null ? pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.getDefaultInstance() : receipt_;
        } else {
          return receiptBuilder_.getMessage();
        }
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public Builder setReceipt(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt value) {
        if (receiptBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          receipt_ = value;
          onChanged();
        } else {
          receiptBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public Builder setReceipt(
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder builderForValue) {
        if (receiptBuilder_ == null) {
          receipt_ = builderForValue.build();
          onChanged();
        } else {
          receiptBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public Builder mergeReceipt(pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt value) {
        if (receiptBuilder_ == null) {
          if (receipt_ != null) {
            receipt_ =
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.newBuilder(receipt_).mergeFrom(value).buildPartial();
          } else {
            receipt_ = value;
          }
          onChanged();
        } else {
          receiptBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public Builder clearReceipt() {
        if (receiptBuilder_ == null) {
          receipt_ = null;
          onChanged();
        } else {
          receipt_ = null;
          receiptBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder getReceiptBuilder() {
        
        onChanged();
        return getReceiptFieldBuilder().getBuilder();
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      public pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder getReceiptOrBuilder() {
        if (receiptBuilder_ != null) {
          return receiptBuilder_.getMessageOrBuilder();
        } else {
          return receipt_ == null ?
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.getDefaultInstance() : receipt_;
        }
      }
      /**
       * <code>.pb.PbThingReceipt receipt = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder> 
          getReceiptFieldBuilder() {
        if (receiptBuilder_ == null) {
          receiptBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceipt.Builder, pb.xiugou.x1.protobuf.ministruct.MiniStruct.PbThingReceiptOrBuilder>(
                  getReceipt(),
                  getParentForChildren(),
                  isClean());
          receipt_ = null;
        }
        return receiptBuilder_;
      }

      private int exchangeNum_ ;
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 4;</code>
       * @return The exchangeNum.
       */
      public int getExchangeNum() {
        return exchangeNum_;
      }
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 4;</code>
       * @param value The exchangeNum to set.
       * @return This builder for chaining.
       */
      public Builder setExchangeNum(int value) {
        
        exchangeNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *兑换数量
       * </pre>
       *
       * <code>int32 exchange_num = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearExchangeNum() {
        
        exchangeNum_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.ExchangeShopExchangeResponse)
    }

    // @@protoc_insertion_point(class_scope:pb.ExchangeShopExchangeResponse)
    private static final pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse();
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<ExchangeShopExchangeResponse>
        PARSER = new com.google.protobuf.AbstractParser<ExchangeShopExchangeResponse>() {
      @java.lang.Override
      public ExchangeShopExchangeResponse parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new ExchangeShopExchangeResponse(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<ExchangeShopExchangeResponse> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ExchangeShopExchangeResponse> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.ExchangeShopExchangeResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbShopOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbShop)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    int getShopId();

    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> 
        getProductsList();
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProducts(int index);
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    int getProductsCount();
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> 
        getProductsOrBuilderList();
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductsOrBuilder(
        int index);

    /**
     * <pre>
     *重置时间
     * </pre>
     *
     * <code>int64 resetTime = 3;</code>
     * @return The resetTime.
     */
    long getResetTime();

    /**
     * <pre>
     *期数
     * </pre>
     *
     * <code>int32 round = 4;</code>
     * @return The round.
     */
    int getRound();
  }
  /**
   * Protobuf type {@code pb.PbShop}
   */
  public  static final class PbShop extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbShop)
      PbShopOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbShop.newBuilder() to construct.
    private PbShop(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbShop() {
      products_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbShop();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbShop(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              shopId_ = input.readInt32();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                products_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct>();
                mutable_bitField0_ |= 0x00000001;
              }
              products_.add(
                  input.readMessage(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.parser(), extensionRegistry));
              break;
            }
            case 24: {

              resetTime_ = input.readInt64();
              break;
            }
            case 32: {

              round_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          products_ = java.util.Collections.unmodifiableList(products_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbShop_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbShop_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder.class);
    }

    public static final int SHOP_ID_FIELD_NUMBER = 1;
    private int shopId_;
    /**
     * <pre>
     *商店ID
     * </pre>
     *
     * <code>int32 shop_id = 1;</code>
     * @return The shopId.
     */
    public int getShopId() {
      return shopId_;
    }

    public static final int PRODUCTS_FIELD_NUMBER = 2;
    private java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> products_;
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> getProductsList() {
      return products_;
    }
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    public java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> 
        getProductsOrBuilderList() {
      return products_;
    }
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    public int getProductsCount() {
      return products_.size();
    }
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProducts(int index) {
      return products_.get(index);
    }
    /**
     * <code>repeated .pb.PbProduct products = 2;</code>
     */
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductsOrBuilder(
        int index) {
      return products_.get(index);
    }

    public static final int RESETTIME_FIELD_NUMBER = 3;
    private long resetTime_;
    /**
     * <pre>
     *重置时间
     * </pre>
     *
     * <code>int64 resetTime = 3;</code>
     * @return The resetTime.
     */
    public long getResetTime() {
      return resetTime_;
    }

    public static final int ROUND_FIELD_NUMBER = 4;
    private int round_;
    /**
     * <pre>
     *期数
     * </pre>
     *
     * <code>int32 round = 4;</code>
     * @return The round.
     */
    public int getRound() {
      return round_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (shopId_ != 0) {
        output.writeInt32(1, shopId_);
      }
      for (int i = 0; i < products_.size(); i++) {
        output.writeMessage(2, products_.get(i));
      }
      if (resetTime_ != 0L) {
        output.writeInt64(3, resetTime_);
      }
      if (round_ != 0) {
        output.writeInt32(4, round_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (shopId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, shopId_);
      }
      for (int i = 0; i < products_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, products_.get(i));
      }
      if (resetTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(3, resetTime_);
      }
      if (round_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, round_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop other = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop) obj;

      if (getShopId()
          != other.getShopId()) return false;
      if (!getProductsList()
          .equals(other.getProductsList())) return false;
      if (getResetTime()
          != other.getResetTime()) return false;
      if (getRound()
          != other.getRound()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SHOP_ID_FIELD_NUMBER;
      hash = (53 * hash) + getShopId();
      if (getProductsCount() > 0) {
        hash = (37 * hash) + PRODUCTS_FIELD_NUMBER;
        hash = (53 * hash) + getProductsList().hashCode();
      }
      hash = (37 * hash) + RESETTIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getResetTime());
      hash = (37 * hash) + ROUND_FIELD_NUMBER;
      hash = (53 * hash) + getRound();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbShop}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbShop)
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShopOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbShop_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbShop_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getProductsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        shopId_ = 0;

        if (productsBuilder_ == null) {
          products_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          productsBuilder_.clear();
        }
        resetTime_ = 0L;

        round_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbShop_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop build() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop buildPartial() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop result = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop(this);
        int from_bitField0_ = bitField0_;
        result.shopId_ = shopId_;
        if (productsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            products_ = java.util.Collections.unmodifiableList(products_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.products_ = products_;
        } else {
          result.products_ = productsBuilder_.build();
        }
        result.resetTime_ = resetTime_;
        result.round_ = round_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop) {
          return mergeFrom((pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop other) {
        if (other == pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop.getDefaultInstance()) return this;
        if (other.getShopId() != 0) {
          setShopId(other.getShopId());
        }
        if (productsBuilder_ == null) {
          if (!other.products_.isEmpty()) {
            if (products_.isEmpty()) {
              products_ = other.products_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureProductsIsMutable();
              products_.addAll(other.products_);
            }
            onChanged();
          }
        } else {
          if (!other.products_.isEmpty()) {
            if (productsBuilder_.isEmpty()) {
              productsBuilder_.dispose();
              productsBuilder_ = null;
              products_ = other.products_;
              bitField0_ = (bitField0_ & ~0x00000001);
              productsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getProductsFieldBuilder() : null;
            } else {
              productsBuilder_.addAllMessages(other.products_);
            }
          }
        }
        if (other.getResetTime() != 0L) {
          setResetTime(other.getResetTime());
        }
        if (other.getRound() != 0) {
          setRound(other.getRound());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int shopId_ ;
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return The shopId.
       */
      public int getShopId() {
        return shopId_;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @param value The shopId to set.
       * @return This builder for chaining.
       */
      public Builder setShopId(int value) {
        
        shopId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商店ID
       * </pre>
       *
       * <code>int32 shop_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearShopId() {
        
        shopId_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> products_ =
        java.util.Collections.emptyList();
      private void ensureProductsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          products_ = new java.util.ArrayList<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct>(products_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> productsBuilder_;

      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> getProductsList() {
        if (productsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(products_);
        } else {
          return productsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public int getProductsCount() {
        if (productsBuilder_ == null) {
          return products_.size();
        } else {
          return productsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getProducts(int index) {
        if (productsBuilder_ == null) {
          return products_.get(index);
        } else {
          return productsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder setProducts(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct value) {
        if (productsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductsIsMutable();
          products_.set(index, value);
          onChanged();
        } else {
          productsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder setProducts(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder builderForValue) {
        if (productsBuilder_ == null) {
          ensureProductsIsMutable();
          products_.set(index, builderForValue.build());
          onChanged();
        } else {
          productsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder addProducts(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct value) {
        if (productsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductsIsMutable();
          products_.add(value);
          onChanged();
        } else {
          productsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder addProducts(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct value) {
        if (productsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProductsIsMutable();
          products_.add(index, value);
          onChanged();
        } else {
          productsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder addProducts(
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder builderForValue) {
        if (productsBuilder_ == null) {
          ensureProductsIsMutable();
          products_.add(builderForValue.build());
          onChanged();
        } else {
          productsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder addProducts(
          int index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder builderForValue) {
        if (productsBuilder_ == null) {
          ensureProductsIsMutable();
          products_.add(index, builderForValue.build());
          onChanged();
        } else {
          productsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder addAllProducts(
          java.lang.Iterable<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct> values) {
        if (productsBuilder_ == null) {
          ensureProductsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, products_);
          onChanged();
        } else {
          productsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder clearProducts() {
        if (productsBuilder_ == null) {
          products_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          productsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public Builder removeProducts(int index) {
        if (productsBuilder_ == null) {
          ensureProductsIsMutable();
          products_.remove(index);
          onChanged();
        } else {
          productsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder getProductsBuilder(
          int index) {
        return getProductsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder getProductsOrBuilder(
          int index) {
        if (productsBuilder_ == null) {
          return products_.get(index);  } else {
          return productsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public java.util.List<? extends pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> 
           getProductsOrBuilderList() {
        if (productsBuilder_ != null) {
          return productsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(products_);
        }
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder addProductsBuilder() {
        return getProductsFieldBuilder().addBuilder(
            pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder addProductsBuilder(
          int index) {
        return getProductsFieldBuilder().addBuilder(
            index, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance());
      }
      /**
       * <code>repeated .pb.PbProduct products = 2;</code>
       */
      public java.util.List<pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder> 
           getProductsBuilderList() {
        return getProductsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder> 
          getProductsFieldBuilder() {
        if (productsBuilder_ == null) {
          productsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder>(
                  products_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          products_ = null;
        }
        return productsBuilder_;
      }

      private long resetTime_ ;
      /**
       * <pre>
       *重置时间
       * </pre>
       *
       * <code>int64 resetTime = 3;</code>
       * @return The resetTime.
       */
      public long getResetTime() {
        return resetTime_;
      }
      /**
       * <pre>
       *重置时间
       * </pre>
       *
       * <code>int64 resetTime = 3;</code>
       * @param value The resetTime to set.
       * @return This builder for chaining.
       */
      public Builder setResetTime(long value) {
        
        resetTime_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *重置时间
       * </pre>
       *
       * <code>int64 resetTime = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearResetTime() {
        
        resetTime_ = 0L;
        onChanged();
        return this;
      }

      private int round_ ;
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 round = 4;</code>
       * @return The round.
       */
      public int getRound() {
        return round_;
      }
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 round = 4;</code>
       * @param value The round to set.
       * @return This builder for chaining.
       */
      public Builder setRound(int value) {
        
        round_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *期数
       * </pre>
       *
       * <code>int32 round = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearRound() {
        
        round_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbShop)
    }

    // @@protoc_insertion_point(class_scope:pb.PbShop)
    private static final pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop();
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbShop>
        PARSER = new com.google.protobuf.AbstractParser<PbShop>() {
      @java.lang.Override
      public PbShop parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbShop(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbShop> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbShop> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbShop getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface PbProductOrBuilder extends
      // @@protoc_insertion_point(interface_extends:pb.PbProduct)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *商品ID
     * </pre>
     *
     * <code>int32 product_id = 1;</code>
     * @return The productId.
     */
    int getProductId();

    /**
     * <pre>
     *本次重置玩家已经兑换数量
     * </pre>
     *
     * <code>int64 bought_num = 2;</code>
     * @return The boughtNum.
     */
    long getBoughtNum();

    /**
     * <pre>
     *已使用的免费次数
     * </pre>
     *
     * <code>int32 free_num = 3;</code>
     * @return The freeNum.
     */
    int getFreeNum();

    /**
     * <pre>
     *已使用的广告次数
     * </pre>
     *
     * <code>int32 adv_num = 4;</code>
     * @return The advNum.
     */
    int getAdvNum();
  }
  /**
   * Protobuf type {@code pb.PbProduct}
   */
  public  static final class PbProduct extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:pb.PbProduct)
      PbProductOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use PbProduct.newBuilder() to construct.
    private PbProduct(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private PbProduct() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new PbProduct();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private PbProduct(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              productId_ = input.readInt32();
              break;
            }
            case 16: {

              boughtNum_ = input.readInt64();
              break;
            }
            case 24: {

              freeNum_ = input.readInt32();
              break;
            }
            case 32: {

              advNum_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbProduct_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbProduct_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder.class);
    }

    public static final int PRODUCT_ID_FIELD_NUMBER = 1;
    private int productId_;
    /**
     * <pre>
     *商品ID
     * </pre>
     *
     * <code>int32 product_id = 1;</code>
     * @return The productId.
     */
    public int getProductId() {
      return productId_;
    }

    public static final int BOUGHT_NUM_FIELD_NUMBER = 2;
    private long boughtNum_;
    /**
     * <pre>
     *本次重置玩家已经兑换数量
     * </pre>
     *
     * <code>int64 bought_num = 2;</code>
     * @return The boughtNum.
     */
    public long getBoughtNum() {
      return boughtNum_;
    }

    public static final int FREE_NUM_FIELD_NUMBER = 3;
    private int freeNum_;
    /**
     * <pre>
     *已使用的免费次数
     * </pre>
     *
     * <code>int32 free_num = 3;</code>
     * @return The freeNum.
     */
    public int getFreeNum() {
      return freeNum_;
    }

    public static final int ADV_NUM_FIELD_NUMBER = 4;
    private int advNum_;
    /**
     * <pre>
     *已使用的广告次数
     * </pre>
     *
     * <code>int32 adv_num = 4;</code>
     * @return The advNum.
     */
    public int getAdvNum() {
      return advNum_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (productId_ != 0) {
        output.writeInt32(1, productId_);
      }
      if (boughtNum_ != 0L) {
        output.writeInt64(2, boughtNum_);
      }
      if (freeNum_ != 0) {
        output.writeInt32(3, freeNum_);
      }
      if (advNum_ != 0) {
        output.writeInt32(4, advNum_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (productId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, productId_);
      }
      if (boughtNum_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(2, boughtNum_);
      }
      if (freeNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, freeNum_);
      }
      if (advNum_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, advNum_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct)) {
        return super.equals(obj);
      }
      pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct other = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct) obj;

      if (getProductId()
          != other.getProductId()) return false;
      if (getBoughtNum()
          != other.getBoughtNum()) return false;
      if (getFreeNum()
          != other.getFreeNum()) return false;
      if (getAdvNum()
          != other.getAdvNum()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + PRODUCT_ID_FIELD_NUMBER;
      hash = (53 * hash) + getProductId();
      hash = (37 * hash) + BOUGHT_NUM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getBoughtNum());
      hash = (37 * hash) + FREE_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getFreeNum();
      hash = (37 * hash) + ADV_NUM_FIELD_NUMBER;
      hash = (53 * hash) + getAdvNum();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code pb.PbProduct}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:pb.PbProduct)
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProductOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbProduct_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbProduct_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.class, pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.Builder.class);
      }

      // Construct using pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        productId_ = 0;

        boughtNum_ = 0L;

        freeNum_ = 0;

        advNum_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.internal_static_pb_PbProduct_descriptor;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getDefaultInstanceForType() {
        return pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance();
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct build() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct buildPartial() {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct result = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct(this);
        result.productId_ = productId_;
        result.boughtNum_ = boughtNum_;
        result.freeNum_ = freeNum_;
        result.advNum_ = advNum_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct) {
          return mergeFrom((pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct other) {
        if (other == pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct.getDefaultInstance()) return this;
        if (other.getProductId() != 0) {
          setProductId(other.getProductId());
        }
        if (other.getBoughtNum() != 0L) {
          setBoughtNum(other.getBoughtNum());
        }
        if (other.getFreeNum() != 0) {
          setFreeNum(other.getFreeNum());
        }
        if (other.getAdvNum() != 0) {
          setAdvNum(other.getAdvNum());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int productId_ ;
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 1;</code>
       * @return The productId.
       */
      public int getProductId() {
        return productId_;
      }
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 1;</code>
       * @param value The productId to set.
       * @return This builder for chaining.
       */
      public Builder setProductId(int value) {
        
        productId_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *商品ID
       * </pre>
       *
       * <code>int32 product_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearProductId() {
        
        productId_ = 0;
        onChanged();
        return this;
      }

      private long boughtNum_ ;
      /**
       * <pre>
       *本次重置玩家已经兑换数量
       * </pre>
       *
       * <code>int64 bought_num = 2;</code>
       * @return The boughtNum.
       */
      public long getBoughtNum() {
        return boughtNum_;
      }
      /**
       * <pre>
       *本次重置玩家已经兑换数量
       * </pre>
       *
       * <code>int64 bought_num = 2;</code>
       * @param value The boughtNum to set.
       * @return This builder for chaining.
       */
      public Builder setBoughtNum(long value) {
        
        boughtNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *本次重置玩家已经兑换数量
       * </pre>
       *
       * <code>int64 bought_num = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBoughtNum() {
        
        boughtNum_ = 0L;
        onChanged();
        return this;
      }

      private int freeNum_ ;
      /**
       * <pre>
       *已使用的免费次数
       * </pre>
       *
       * <code>int32 free_num = 3;</code>
       * @return The freeNum.
       */
      public int getFreeNum() {
        return freeNum_;
      }
      /**
       * <pre>
       *已使用的免费次数
       * </pre>
       *
       * <code>int32 free_num = 3;</code>
       * @param value The freeNum to set.
       * @return This builder for chaining.
       */
      public Builder setFreeNum(int value) {
        
        freeNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已使用的免费次数
       * </pre>
       *
       * <code>int32 free_num = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearFreeNum() {
        
        freeNum_ = 0;
        onChanged();
        return this;
      }

      private int advNum_ ;
      /**
       * <pre>
       *已使用的广告次数
       * </pre>
       *
       * <code>int32 adv_num = 4;</code>
       * @return The advNum.
       */
      public int getAdvNum() {
        return advNum_;
      }
      /**
       * <pre>
       *已使用的广告次数
       * </pre>
       *
       * <code>int32 adv_num = 4;</code>
       * @param value The advNum to set.
       * @return This builder for chaining.
       */
      public Builder setAdvNum(int value) {
        
        advNum_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *已使用的广告次数
       * </pre>
       *
       * <code>int32 adv_num = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearAdvNum() {
        
        advNum_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:pb.PbProduct)
    }

    // @@protoc_insertion_point(class_scope:pb.PbProduct)
    private static final pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct();
    }

    public static pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<PbProduct>
        PARSER = new com.google.protobuf.AbstractParser<PbProduct>() {
      @java.lang.Override
      public PbProduct parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new PbProduct(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<PbProduct> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PbProduct> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public pb.xiugou.x1.protobuf.exchangeshop.ExchangeShop.PbProduct getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ExchangeShopInfoResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ExchangeShopInfoResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ExchangeShopExchangeRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ExchangeShopExchangeRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_ExchangeShopExchangeResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_ExchangeShopExchangeResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbShop_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbShop_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_pb_PbProduct_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_pb_PbProduct_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\022ExchangeShop.proto\022\002pb\032\020MiniStruct.pro" +
      "to\"h\n\030ExchangeShopInfoResponse\022\031\n\005shops\030" +
      "\001 \003(\0132\n.pb.PbShop\022\020\n\010open_day\030\002 \001(\005\"\037\n\005P" +
      "roto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\201\276\222\001\"y\n\033Exchange" +
      "ShopExchangeRequest\022\017\n\007shop_id\030\001 \001(\005\022\022\n\n" +
      "product_id\030\002 \001(\005\022\024\n\014exchange_num\030\003 \001(\005\"\037" +
      "\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID\020\202\276\222\001\"\253\001\n\034Exch" +
      "angeShopExchangeResponse\022\017\n\007shop_id\030\001 \001(" +
      "\005\022\036\n\007product\030\002 \001(\0132\r.pb.PbProduct\022#\n\007rec" +
      "eipt\030\003 \001(\0132\022.pb.PbThingReceipt\022\024\n\014exchan" +
      "ge_num\030\004 \001(\005\"\037\n\005Proto\022\013\n\007UNKNOWN\020\000\022\t\n\002ID" +
      "\020\202\276\222\001\"\\\n\006PbShop\022\017\n\007shop_id\030\001 \001(\005\022\037\n\010prod" +
      "ucts\030\002 \003(\0132\r.pb.PbProduct\022\021\n\tresetTime\030\003" +
      " \001(\003\022\r\n\005round\030\004 \001(\005\"V\n\tPbProduct\022\022\n\nprod" +
      "uct_id\030\001 \001(\005\022\022\n\nbought_num\030\002 \001(\003\022\020\n\010free" +
      "_num\030\003 \001(\005\022\017\n\007adv_num\030\004 \001(\005B<\n\"pb.xiugou" +
      ".x1.protobuf.exchangeshop\252\002\025pb.xiugou.x1" +
      ".protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor(),
        });
    internal_static_pb_ExchangeShopInfoResponse_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_pb_ExchangeShopInfoResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ExchangeShopInfoResponse_descriptor,
        new java.lang.String[] { "Shops", "OpenDay", });
    internal_static_pb_ExchangeShopExchangeRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_pb_ExchangeShopExchangeRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ExchangeShopExchangeRequest_descriptor,
        new java.lang.String[] { "ShopId", "ProductId", "ExchangeNum", });
    internal_static_pb_ExchangeShopExchangeResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_pb_ExchangeShopExchangeResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_ExchangeShopExchangeResponse_descriptor,
        new java.lang.String[] { "ShopId", "Product", "Receipt", "ExchangeNum", });
    internal_static_pb_PbShop_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_pb_PbShop_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbShop_descriptor,
        new java.lang.String[] { "ShopId", "Products", "ResetTime", "Round", });
    internal_static_pb_PbProduct_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_pb_PbProduct_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_pb_PbProduct_descriptor,
        new java.lang.String[] { "ProductId", "BoughtNum", "FreeNum", "AdvNum", });
    pb.xiugou.x1.protobuf.ministruct.MiniStruct.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
