/*
 * Copyright (C) 2020-2021 Lightbend Inc. <https://www.lightbend.com>
 */

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

package akka.cluster.ddata.protobuf.msg;

public final class ReplicatorMessages {
  private ReplicatorMessages() {}
  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      akka.protobufv3.internal.ExtensionRegistry registry) {
    registerAllExtensions(
        (akka.protobufv3.internal.ExtensionRegistryLite) registry);
  }
  public interface GetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Get)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>required sint32 consistency = 2;</code>
     * @return Whether the consistency field is set.
     */
    boolean hasConsistency();
    /**
     * <code>required sint32 consistency = 2;</code>
     * @return The consistency.
     */
    int getConsistency();

    /**
     * <code>required uint32 timeout = 3;</code>
     * @return Whether the timeout field is set.
     */
    boolean hasTimeout();
    /**
     * <code>required uint32 timeout = 3;</code>
     * @return The timeout.
     */
    int getTimeout();

    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return Whether the request field is set.
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return The request.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder();

    /**
     * <code>optional int32 consistencyMinCap = 5;</code>
     * @return Whether the consistencyMinCap field is set.
     */
    boolean hasConsistencyMinCap();
    /**
     * <code>optional int32 consistencyMinCap = 5;</code>
     * @return The consistencyMinCap.
     */
    int getConsistencyMinCap();

    /**
     * <code>optional int32 consistencyAdditional = 6;</code>
     * @return Whether the consistencyAdditional field is set.
     */
    boolean hasConsistencyAdditional();
    /**
     * <code>optional int32 consistencyAdditional = 6;</code>
     * @return The consistencyAdditional.
     */
    int getConsistencyAdditional();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Get}
   */
  public  static final class Get extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Get)
      GetOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Get.newBuilder() to construct.
    private Get(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Get() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Get();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Get(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              consistency_ = input.readSInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              timeout_ = input.readUInt32();
              break;
            }
            case 34: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) != 0)) {
                subBuilder = request_.toBuilder();
              }
              request_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(request_);
                request_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
            case 40: {
              bitField0_ |= 0x00000010;
              consistencyMinCap_ = input.readInt32();
              break;
            }
            case 48: {
              bitField0_ |= 0x00000020;
              consistencyAdditional_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int CONSISTENCY_FIELD_NUMBER = 2;
    private int consistency_;
    /**
     * <code>required sint32 consistency = 2;</code>
     * @return Whether the consistency field is set.
     */
    public boolean hasConsistency() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required sint32 consistency = 2;</code>
     * @return The consistency.
     */
    public int getConsistency() {
      return consistency_;
    }

    public static final int TIMEOUT_FIELD_NUMBER = 3;
    private int timeout_;
    /**
     * <code>required uint32 timeout = 3;</code>
     * @return Whether the timeout field is set.
     */
    public boolean hasTimeout() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>required uint32 timeout = 3;</code>
     * @return The timeout.
     */
    public int getTimeout() {
      return timeout_;
    }

    public static final int REQUEST_FIELD_NUMBER = 4;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return Whether the request field is set.
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return The request.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }

    public static final int CONSISTENCYMINCAP_FIELD_NUMBER = 5;
    private int consistencyMinCap_;
    /**
     * <code>optional int32 consistencyMinCap = 5;</code>
     * @return Whether the consistencyMinCap field is set.
     */
    public boolean hasConsistencyMinCap() {
      return ((bitField0_ & 0x00000010) != 0);
    }
    /**
     * <code>optional int32 consistencyMinCap = 5;</code>
     * @return The consistencyMinCap.
     */
    public int getConsistencyMinCap() {
      return consistencyMinCap_;
    }

    public static final int CONSISTENCYADDITIONAL_FIELD_NUMBER = 6;
    private int consistencyAdditional_;
    /**
     * <code>optional int32 consistencyAdditional = 6;</code>
     * @return Whether the consistencyAdditional field is set.
     */
    public boolean hasConsistencyAdditional() {
      return ((bitField0_ & 0x00000020) != 0);
    }
    /**
     * <code>optional int32 consistencyAdditional = 6;</code>
     * @return The consistencyAdditional.
     */
    public int getConsistencyAdditional() {
      return consistencyAdditional_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasConsistency()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTimeout()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasRequest()) {
        if (!getRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeSInt32(2, consistency_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeUInt32(3, timeout_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeMessage(4, getRequest());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        output.writeInt32(5, consistencyMinCap_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        output.writeInt32(6, consistencyAdditional_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSInt32Size(2, consistency_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeUInt32Size(3, timeout_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(4, getRequest());
      }
      if (((bitField0_ & 0x00000010) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt32Size(5, consistencyMinCap_);
      }
      if (((bitField0_ & 0x00000020) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt32Size(6, consistencyAdditional_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasConsistency() != other.hasConsistency()) return false;
      if (hasConsistency()) {
        if (getConsistency()
            != other.getConsistency()) return false;
      }
      if (hasTimeout() != other.hasTimeout()) return false;
      if (hasTimeout()) {
        if (getTimeout()
            != other.getTimeout()) return false;
      }
      if (hasRequest() != other.hasRequest()) return false;
      if (hasRequest()) {
        if (!getRequest()
            .equals(other.getRequest())) return false;
      }
      if (hasConsistencyMinCap() != other.hasConsistencyMinCap()) return false;
      if (hasConsistencyMinCap()) {
        if (getConsistencyMinCap()
            != other.getConsistencyMinCap()) return false;
      }
      if (hasConsistencyAdditional() != other.hasConsistencyAdditional()) return false;
      if (hasConsistencyAdditional()) {
        if (getConsistencyAdditional()
            != other.getConsistencyAdditional()) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasConsistency()) {
        hash = (37 * hash) + CONSISTENCY_FIELD_NUMBER;
        hash = (53 * hash) + getConsistency();
      }
      if (hasTimeout()) {
        hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + getTimeout();
      }
      if (hasRequest()) {
        hash = (37 * hash) + REQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getRequest().hashCode();
      }
      if (hasConsistencyMinCap()) {
        hash = (37 * hash) + CONSISTENCYMINCAP_FIELD_NUMBER;
        hash = (53 * hash) + getConsistencyMinCap();
      }
      if (hasConsistencyAdditional()) {
        hash = (37 * hash) + CONSISTENCYADDITIONAL_FIELD_NUMBER;
        hash = (53 * hash) + getConsistencyAdditional();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Get}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Get)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        consistency_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        timeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (requestBuilder_ == null) {
          request_ = null;
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        consistencyMinCap_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        consistencyAdditional_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.consistency_ = consistency_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.timeout_ = timeout_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          if (requestBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = requestBuilder_.build();
          }
          to_bitField0_ |= 0x00000008;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.consistencyMinCap_ = consistencyMinCap_;
          to_bitField0_ |= 0x00000010;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.consistencyAdditional_ = consistencyAdditional_;
          to_bitField0_ |= 0x00000020;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasConsistency()) {
          setConsistency(other.getConsistency());
        }
        if (other.hasTimeout()) {
          setTimeout(other.getTimeout());
        }
        if (other.hasRequest()) {
          mergeRequest(other.getRequest());
        }
        if (other.hasConsistencyMinCap()) {
          setConsistencyMinCap(other.getConsistencyMinCap());
        }
        if (other.hasConsistencyAdditional()) {
          setConsistencyAdditional(other.getConsistencyAdditional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasConsistency()) {
          return false;
        }
        if (!hasTimeout()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        if (hasRequest()) {
          if (!getRequest().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private int consistency_ ;
      /**
       * <code>required sint32 consistency = 2;</code>
       * @return Whether the consistency field is set.
       */
      public boolean hasConsistency() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       * @return The consistency.
       */
      public int getConsistency() {
        return consistency_;
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       * @param value The consistency to set.
       * @return This builder for chaining.
       */
      public Builder setConsistency(int value) {
        bitField0_ |= 0x00000002;
        consistency_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearConsistency() {
        bitField0_ = (bitField0_ & ~0x00000002);
        consistency_ = 0;
        onChanged();
        return this;
      }

      private int timeout_ ;
      /**
       * <code>required uint32 timeout = 3;</code>
       * @return Whether the timeout field is set.
       */
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       * @return The timeout.
       */
      public int getTimeout() {
        return timeout_;
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       * @param value The timeout to set.
       * @return This builder for chaining.
       */
      public Builder setTimeout(int value) {
        bitField0_ |= 0x00000004;
        timeout_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timeout_ = 0;
        onChanged();
        return this;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> requestBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       * @return Whether the request field is set.
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       * @return The request.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        } else {
          return requestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder setRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          requestBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder setRequest(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (requestBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          requestBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder mergeRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
              request_ != null &&
              request_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            request_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(request_).mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          requestBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder clearRequest() {
        if (requestBuilder_ == null) {
          request_ = null;
          onChanged();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getRequestBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getRequestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
        if (requestBuilder_ != null) {
          return requestBuilder_.getMessageOrBuilder();
        } else {
          return request_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getRequestFieldBuilder() {
        if (requestBuilder_ == null) {
          requestBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getRequest(),
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

      private int consistencyMinCap_ ;
      /**
       * <code>optional int32 consistencyMinCap = 5;</code>
       * @return Whether the consistencyMinCap field is set.
       */
      public boolean hasConsistencyMinCap() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional int32 consistencyMinCap = 5;</code>
       * @return The consistencyMinCap.
       */
      public int getConsistencyMinCap() {
        return consistencyMinCap_;
      }
      /**
       * <code>optional int32 consistencyMinCap = 5;</code>
       * @param value The consistencyMinCap to set.
       * @return This builder for chaining.
       */
      public Builder setConsistencyMinCap(int value) {
        bitField0_ |= 0x00000010;
        consistencyMinCap_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 consistencyMinCap = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearConsistencyMinCap() {
        bitField0_ = (bitField0_ & ~0x00000010);
        consistencyMinCap_ = 0;
        onChanged();
        return this;
      }

      private int consistencyAdditional_ ;
      /**
       * <code>optional int32 consistencyAdditional = 6;</code>
       * @return Whether the consistencyAdditional field is set.
       */
      public boolean hasConsistencyAdditional() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional int32 consistencyAdditional = 6;</code>
       * @return The consistencyAdditional.
       */
      public int getConsistencyAdditional() {
        return consistencyAdditional_;
      }
      /**
       * <code>optional int32 consistencyAdditional = 6;</code>
       * @param value The consistencyAdditional to set.
       * @return This builder for chaining.
       */
      public Builder setConsistencyAdditional(int value) {
        bitField0_ |= 0x00000020;
        consistencyAdditional_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional int32 consistencyAdditional = 6;</code>
       * @return This builder for chaining.
       */
      public Builder clearConsistencyAdditional() {
        bitField0_ = (bitField0_ & ~0x00000020);
        consistencyAdditional_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Get)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Get)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Get>
        PARSER = new akka.protobufv3.internal.AbstractParser<Get>() {
      @java.lang.Override
      public Get parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Get(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Get> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Get> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetSuccessOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.GetSuccess)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return The data.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder();

    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return Whether the request field is set.
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return The request.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.GetSuccess}
   */
  public  static final class GetSuccess extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.GetSuccess)
      GetSuccessOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetSuccess.newBuilder() to construct.
    private GetSuccess(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetSuccess() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new GetSuccess();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetSuccess(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = data_.toBuilder();
              }
              data_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(data_);
                data_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 34: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = request_.toBuilder();
              }
              request_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(request_);
                request_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return The data.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }

    public static final int REQUEST_FIELD_NUMBER = 4;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return Whether the request field is set.
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     * @return The request.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getData().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasRequest()) {
        if (!getRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getData());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(4, getRequest());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getData());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(4, getRequest());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (hasRequest() != other.hasRequest()) return false;
      if (hasRequest()) {
        if (!getRequest()
            .equals(other.getRequest())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (hasRequest()) {
        hash = (37 * hash) + REQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getRequest().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.GetSuccess}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.GetSuccess)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccessOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getDataFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (requestBuilder_ == null) {
          request_ = null;
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (requestBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = requestBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasData()) {
          mergeData(other.getData());
        }
        if (other.hasRequest()) {
          mergeRequest(other.getRequest());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasData()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        if (!getData().isInitialized()) {
          return false;
        }
        if (hasRequest()) {
          if (!getRequest().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> dataBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       * @return The data.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        } else {
          return dataBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder setData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder setData(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (dataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder mergeData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              data_ != null &&
              data_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            data_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(data_).mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          dataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getDataBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          return data_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getData(),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> requestBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       * @return Whether the request field is set.
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       * @return The request.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        } else {
          return requestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder setRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          requestBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder setRequest(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (requestBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          requestBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder mergeRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              request_ != null &&
              request_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            request_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(request_).mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          requestBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public Builder clearRequest() {
        if (requestBuilder_ == null) {
          request_ = null;
          onChanged();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getRequestBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getRequestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
        if (requestBuilder_ != null) {
          return requestBuilder_.getMessageOrBuilder();
        } else {
          return request_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getRequestFieldBuilder() {
        if (requestBuilder_ == null) {
          requestBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getRequest(),
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.GetSuccess)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.GetSuccess)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<GetSuccess>
        PARSER = new akka.protobufv3.internal.AbstractParser<GetSuccess>() {
      @java.lang.Override
      public GetSuccess parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new GetSuccess(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<GetSuccess> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<GetSuccess> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NotFoundOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.NotFound)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return Whether the request field is set.
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return The request.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.NotFound}
   */
  public  static final class NotFound extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.NotFound)
      NotFoundOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use NotFound.newBuilder() to construct.
    private NotFound(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NotFound() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new NotFound();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private NotFound(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = request_.toBuilder();
              }
              request_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(request_);
                request_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int REQUEST_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return Whether the request field is set.
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return The request.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasRequest()) {
        if (!getRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getRequest());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getRequest());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasRequest() != other.hasRequest()) return false;
      if (hasRequest()) {
        if (!getRequest()
            .equals(other.getRequest())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasRequest()) {
        hash = (37 * hash) + REQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getRequest().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.NotFound}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.NotFound)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFoundOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (requestBuilder_ == null) {
          request_ = null;
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (requestBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = requestBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasRequest()) {
          mergeRequest(other.getRequest());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        if (hasRequest()) {
          if (!getRequest().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> requestBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       * @return Whether the request field is set.
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       * @return The request.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        } else {
          return requestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder setRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          requestBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder setRequest(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (requestBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          requestBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder mergeRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              request_ != null &&
              request_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            request_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(request_).mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          requestBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder clearRequest() {
        if (requestBuilder_ == null) {
          request_ = null;
          onChanged();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getRequestBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getRequestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
        if (requestBuilder_ != null) {
          return requestBuilder_.getMessageOrBuilder();
        } else {
          return request_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getRequestFieldBuilder() {
        if (requestBuilder_ == null) {
          requestBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getRequest(),
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.NotFound)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.NotFound)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<NotFound>
        PARSER = new akka.protobufv3.internal.AbstractParser<NotFound>() {
      @java.lang.Override
      public NotFound parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new NotFound(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<NotFound> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<NotFound> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetFailureOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.GetFailure)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return Whether the request field is set.
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return The request.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.GetFailure}
   */
  public  static final class GetFailure extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.GetFailure)
      GetFailureOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GetFailure.newBuilder() to construct.
    private GetFailure(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GetFailure() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new GetFailure();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private GetFailure(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = request_.toBuilder();
              }
              request_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(request_);
                request_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int REQUEST_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return Whether the request field is set.
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     * @return The request.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasRequest()) {
        if (!getRequest().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getRequest());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getRequest());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasRequest() != other.hasRequest()) return false;
      if (hasRequest()) {
        if (!getRequest()
            .equals(other.getRequest())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasRequest()) {
        hash = (37 * hash) + REQUEST_FIELD_NUMBER;
        hash = (53 * hash) + getRequest().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.GetFailure}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.GetFailure)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailureOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (requestBuilder_ == null) {
          request_ = null;
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (requestBuilder_ == null) {
            result.request_ = request_;
          } else {
            result.request_ = requestBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasRequest()) {
          mergeRequest(other.getRequest());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        if (hasRequest()) {
          if (!getRequest().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> requestBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       * @return Whether the request field is set.
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       * @return The request.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return request_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        } else {
          return requestBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder setRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          request_ = value;
          onChanged();
        } else {
          requestBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder setRequest(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (requestBuilder_ == null) {
          request_ = builderForValue.build();
          onChanged();
        } else {
          requestBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder mergeRequest(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (requestBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              request_ != null &&
              request_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            request_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(request_).mergeFrom(value).buildPartial();
          } else {
            request_ = value;
          }
          onChanged();
        } else {
          requestBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public Builder clearRequest() {
        if (requestBuilder_ == null) {
          request_ = null;
          onChanged();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getRequestBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getRequestFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
        if (requestBuilder_ != null) {
          return requestBuilder_.getMessageOrBuilder();
        } else {
          return request_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : request_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getRequestFieldBuilder() {
        if (requestBuilder_ == null) {
          requestBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getRequest(),
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.GetFailure)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.GetFailure)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<GetFailure>
        PARSER = new akka.protobufv3.internal.AbstractParser<GetFailure>() {
      @java.lang.Override
      public GetFailure parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new GetFailure(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<GetFailure> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<GetFailure> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SubscribeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Subscribe)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>required string ref = 2;</code>
     * @return Whether the ref field is set.
     */
    boolean hasRef();
    /**
     * <code>required string ref = 2;</code>
     * @return The ref.
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 2;</code>
     * @return The bytes for ref.
     */
    akka.protobufv3.internal.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Subscribe}
   */
  public  static final class Subscribe extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Subscribe)
      SubscribeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Subscribe.newBuilder() to construct.
    private Subscribe(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Subscribe() {
      ref_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Subscribe();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Subscribe(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              ref_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int REF_FIELD_NUMBER = 2;
    private volatile java.lang.Object ref_;
    /**
     * <code>required string ref = 2;</code>
     * @return Whether the ref field is set.
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string ref = 2;</code>
     * @return The ref.
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 2;</code>
     * @return The bytes for ref.
     */
    public akka.protobufv3.internal.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRef()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, ref_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, ref_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasRef() != other.hasRef()) return false;
      if (hasRef()) {
        if (!getRef()
            .equals(other.getRef())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasRef()) {
        hash = (37 * hash) + REF_FIELD_NUMBER;
        hash = (53 * hash) + getRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Subscribe}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Subscribe)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.SubscribeOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.ref_ = ref_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasRef()) {
          bitField0_ |= 0x00000002;
          ref_ = other.ref_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasRef()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 2;</code>
       * @return Whether the ref field is set.
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string ref = 2;</code>
       * @return The ref.
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ref_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       * @return The bytes for ref.
       */
      public akka.protobufv3.internal.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       * @param value The ref to set.
       * @return This builder for chaining.
       */
      public Builder setRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       * @param value The bytes for ref to set.
       * @return This builder for chaining.
       */
      public Builder setRefBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Subscribe)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Subscribe)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Subscribe>
        PARSER = new akka.protobufv3.internal.AbstractParser<Subscribe>() {
      @java.lang.Override
      public Subscribe parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Subscribe(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Subscribe> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Subscribe> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnsubscribeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Unsubscribe)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>required string ref = 2;</code>
     * @return Whether the ref field is set.
     */
    boolean hasRef();
    /**
     * <code>required string ref = 2;</code>
     * @return The ref.
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 2;</code>
     * @return The bytes for ref.
     */
    akka.protobufv3.internal.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Unsubscribe}
   */
  public  static final class Unsubscribe extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Unsubscribe)
      UnsubscribeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Unsubscribe.newBuilder() to construct.
    private Unsubscribe(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Unsubscribe() {
      ref_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Unsubscribe();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Unsubscribe(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000002;
              ref_ = bs;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int REF_FIELD_NUMBER = 2;
    private volatile java.lang.Object ref_;
    /**
     * <code>required string ref = 2;</code>
     * @return Whether the ref field is set.
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required string ref = 2;</code>
     * @return The ref.
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 2;</code>
     * @return The bytes for ref.
     */
    public akka.protobufv3.internal.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasRef()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 2, ref_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(2, ref_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasRef() != other.hasRef()) return false;
      if (hasRef()) {
        if (!getRef()
            .equals(other.getRef())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasRef()) {
        hash = (37 * hash) + REF_FIELD_NUMBER;
        hash = (53 * hash) + getRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Unsubscribe}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Unsubscribe)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UnsubscribeOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          to_bitField0_ |= 0x00000002;
        }
        result.ref_ = ref_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasRef()) {
          bitField0_ |= 0x00000002;
          ref_ = other.ref_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasRef()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 2;</code>
       * @return Whether the ref field is set.
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string ref = 2;</code>
       * @return The ref.
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ref_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       * @return The bytes for ref.
       */
      public akka.protobufv3.internal.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       * @param value The ref to set.
       * @return This builder for chaining.
       */
      public Builder setRef(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       * @param value The bytes for ref to set.
       * @return This builder for chaining.
       */
      public Builder setRefBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Unsubscribe)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Unsubscribe)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Unsubscribe>
        PARSER = new akka.protobufv3.internal.AbstractParser<Unsubscribe>() {
      @java.lang.Override
      public Unsubscribe parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Unsubscribe(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Unsubscribe> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Unsubscribe> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ChangedOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Changed)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder();

    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return The data.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Changed}
   */
  public  static final class Changed extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Changed)
      ChangedOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Changed.newBuilder() to construct.
    private Changed(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Changed() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Changed();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Changed(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = key_.toBuilder();
              }
              key_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(key_);
                key_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = data_.toBuilder();
              }
              data_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(data_);
                data_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     * @return The key.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     * @return The data.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getKey().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getData().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getData());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getKey());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getData());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Changed}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Changed)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ChangedOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getDataFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = null;
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (keyBuilder_ == null) {
            result.key_ = key_;
          } else {
            result.key_ = keyBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed.getDefaultInstance()) return this;
        if (other.hasKey()) {
          mergeKey(other.getKey());
        }
        if (other.hasData()) {
          mergeData(other.getData());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasData()) {
          return false;
        }
        if (!getKey().isInitialized()) {
          return false;
        }
        if (!getData().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> keyBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       * @return The key.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return key_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        } else {
          return keyBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          key_ = value;
          onChanged();
        } else {
          keyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder setKey(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (keyBuilder_ == null) {
          key_ = builderForValue.build();
          onChanged();
        } else {
          keyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder mergeKey(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (keyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              key_ != null &&
              key_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            key_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(key_).mergeFrom(value).buildPartial();
          } else {
            key_ = value;
          }
          onChanged();
        } else {
          keyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public Builder clearKey() {
        if (keyBuilder_ == null) {
          key_ = null;
          onChanged();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getKeyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKeyFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
        if (keyBuilder_ != null) {
          return keyBuilder_.getMessageOrBuilder();
        } else {
          return key_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : key_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getKeyFieldBuilder() {
        if (keyBuilder_ == null) {
          keyBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getKey(),
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> dataBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       * @return The data.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        } else {
          return dataBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder setData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder setData(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (dataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder mergeData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              data_ != null &&
              data_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            data_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(data_).mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          dataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getDataBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          return data_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getData(),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Changed)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Changed)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Changed>
        PARSER = new akka.protobufv3.internal.AbstractParser<Changed>() {
      @java.lang.Override
      public Changed parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Changed(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Changed> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Changed> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WriteOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Write)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required string key = 1;</code>
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * <code>required string key = 1;</code>
     * @return The bytes for key.
     */
    akka.protobufv3.internal.ByteString
        getKeyBytes();

    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     * @return Whether the envelope field is set.
     */
    boolean hasEnvelope();
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     * @return The envelope.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope();
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder();

    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     * @return Whether the fromNode field is set.
     */
    boolean hasFromNode();
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     * @return The fromNode.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode();
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Write}
   */
  public  static final class Write extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Write)
      WriteOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Write.newBuilder() to construct.
    private Write(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Write() {
      key_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Write();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Write(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = envelope_.toBuilder();
              }
              envelope_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(envelope_);
                envelope_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            case 26: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000004) != 0)) {
                subBuilder = fromNode_.toBuilder();
              }
              fromNode_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fromNode_);
                fromNode_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000004;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * <code>required string key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string key = 1;</code>
     * @return The key.
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string key = 1;</code>
     * @return The bytes for key.
     */
    public akka.protobufv3.internal.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int ENVELOPE_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     * @return Whether the envelope field is set.
     */
    public boolean hasEnvelope() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     * @return The envelope.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
      return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
    }
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
      return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
    }

    public static final int FROMNODE_FIELD_NUMBER = 3;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     * @return Whether the fromNode field is set.
     */
    public boolean hasFromNode() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     * @return The fromNode.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasEnvelope()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getEnvelope().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasFromNode()) {
        if (!getFromNode().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getEnvelope());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeMessage(3, getFromNode());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getEnvelope());
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(3, getFromNode());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasEnvelope() != other.hasEnvelope()) return false;
      if (hasEnvelope()) {
        if (!getEnvelope()
            .equals(other.getEnvelope())) return false;
      }
      if (hasFromNode() != other.hasFromNode()) return false;
      if (hasFromNode()) {
        if (!getFromNode()
            .equals(other.getFromNode())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasEnvelope()) {
        hash = (37 * hash) + ENVELOPE_FIELD_NUMBER;
        hash = (53 * hash) + getEnvelope().hashCode();
      }
      if (hasFromNode()) {
        hash = (37 * hash) + FROMNODE_FIELD_NUMBER;
        hash = (53 * hash) + getFromNode().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Write}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Write)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.WriteOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEnvelopeFieldBuilder();
          getFromNodeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (envelopeBuilder_ == null) {
          envelope_ = null;
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (envelopeBuilder_ == null) {
            result.envelope_ = envelope_;
          } else {
            result.envelope_ = envelopeBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (fromNodeBuilder_ == null) {
            result.fromNode_ = fromNode_;
          } else {
            result.fromNode_ = fromNodeBuilder_.build();
          }
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasEnvelope()) {
          mergeEnvelope(other.getEnvelope());
        }
        if (other.hasFromNode()) {
          mergeFromNode(other.getFromNode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (!hasEnvelope()) {
          return false;
        }
        if (!getEnvelope().isInitialized()) {
          return false;
        }
        if (hasFromNode()) {
          if (!getFromNode().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      public Builder setKeyBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> envelopeBuilder_;
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return Whether the envelope field is set.
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return The envelope.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        if (envelopeBuilder_ == null) {
          return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
        } else {
          return envelopeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public Builder setEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          envelope_ = value;
          onChanged();
        } else {
          envelopeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public Builder setEnvelope(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder builderForValue) {
        if (envelopeBuilder_ == null) {
          envelope_ = builderForValue.build();
          onChanged();
        } else {
          envelopeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public Builder mergeEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              envelope_ != null &&
              envelope_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance()) {
            envelope_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
          } else {
            envelope_ = value;
          }
          onChanged();
        } else {
          envelopeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public Builder clearEnvelope() {
        if (envelopeBuilder_ == null) {
          envelope_ = null;
          onChanged();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder getEnvelopeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEnvelopeFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        if (envelopeBuilder_ != null) {
          return envelopeBuilder_.getMessageOrBuilder();
        } else {
          return envelope_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> 
          getEnvelopeFieldBuilder() {
        if (envelopeBuilder_ == null) {
          envelopeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                  getEnvelope(),
                  getParentForChildren(),
                  isClean());
          envelope_ = null;
        }
        return envelopeBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> fromNodeBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       * @return Whether the fromNode field is set.
       */
      public boolean hasFromNode() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       * @return The fromNode.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
        if (fromNodeBuilder_ == null) {
          return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        } else {
          return fromNodeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public Builder setFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fromNode_ = value;
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public Builder setFromNode(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
        if (fromNodeBuilder_ == null) {
          fromNode_ = builderForValue.build();
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public Builder mergeFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              fromNode_ != null &&
              fromNode_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
            fromNode_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(fromNode_).mergeFrom(value).buildPartial();
          } else {
            fromNode_ = value;
          }
          onChanged();
        } else {
          fromNodeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public Builder clearFromNode() {
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
          onChanged();
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getFromNodeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getFromNodeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
        if (fromNodeBuilder_ != null) {
          return fromNodeBuilder_.getMessageOrBuilder();
        } else {
          return fromNode_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 3;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
          getFromNodeFieldBuilder() {
        if (fromNodeBuilder_ == null) {
          fromNodeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                  getFromNode(),
                  getParentForChildren(),
                  isClean());
          fromNode_ = null;
        }
        return fromNodeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Write)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Write)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Write>
        PARSER = new akka.protobufv3.internal.AbstractParser<Write>() {
      @java.lang.Override
      public Write parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Write(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Write> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Write> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface EmptyOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Empty)
      akka.protobufv3.internal.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Empty}
   */
  public  static final class Empty extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Empty)
      EmptyOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Empty.newBuilder() to construct.
    private Empty(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Empty() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Empty();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Empty(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.Builder.class);
    }

    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(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      unknownFields.writeTo(output);
    }

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

      size = 0;
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty) obj;

      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 = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Empty}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Empty)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.EmptyOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Empty)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Empty)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Empty>
        PARSER = new akka.protobufv3.internal.AbstractParser<Empty>() {
      @java.lang.Override
      public Empty parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Empty(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Empty> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Empty> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReadOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Read)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string key = 1;</code>
     * @return Whether the key field is set.
     */
    boolean hasKey();
    /**
     * <code>required string key = 1;</code>
     * @return The key.
     */
    java.lang.String getKey();
    /**
     * <code>required string key = 1;</code>
     * @return The bytes for key.
     */
    akka.protobufv3.internal.ByteString
        getKeyBytes();

    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     * @return Whether the fromNode field is set.
     */
    boolean hasFromNode();
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     * @return The fromNode.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode();
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Read}
   */
  public  static final class Read extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Read)
      ReadOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Read.newBuilder() to construct.
    private Read(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Read() {
      key_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Read();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Read(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              key_ = bs;
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = fromNode_.toBuilder();
              }
              fromNode_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fromNode_);
                fromNode_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     * <code>required string key = 1;</code>
     * @return Whether the key field is set.
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string key = 1;</code>
     * @return The key.
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string key = 1;</code>
     * @return The bytes for key.
     */
    public akka.protobufv3.internal.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int FROMNODE_FIELD_NUMBER = 2;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     * @return Whether the fromNode field is set.
     */
    public boolean hasFromNode() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     * @return The fromNode.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }
    /**
     * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }

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

      if (!hasKey()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (hasFromNode()) {
        if (!getFromNode().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(2, getFromNode());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, getFromNode());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read) obj;

      if (hasKey() != other.hasKey()) return false;
      if (hasKey()) {
        if (!getKey()
            .equals(other.getKey())) return false;
      }
      if (hasFromNode() != other.hasFromNode()) return false;
      if (hasFromNode()) {
        if (!getFromNode()
            .equals(other.getFromNode())) 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 (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasFromNode()) {
        hash = (37 * hash) + FROMNODE_FIELD_NUMBER;
        hash = (53 * hash) + getFromNode().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Read}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Read)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getFromNodeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          if (fromNodeBuilder_ == null) {
            result.fromNode_ = fromNode_;
          } else {
            result.fromNode_ = fromNodeBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasFromNode()) {
          mergeFromNode(other.getFromNode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasKey()) {
          return false;
        }
        if (hasFromNode()) {
          if (!getFromNode().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @param value The key to set.
       * @return This builder for chaining.
       */
      public Builder setKey(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       * @param value The bytes for key to set.
       * @return This builder for chaining.
       */
      public Builder setKeyBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> fromNodeBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       * @return Whether the fromNode field is set.
       */
      public boolean hasFromNode() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       * @return The fromNode.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
        if (fromNodeBuilder_ == null) {
          return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        } else {
          return fromNodeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public Builder setFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fromNode_ = value;
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public Builder setFromNode(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
        if (fromNodeBuilder_ == null) {
          fromNode_ = builderForValue.build();
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public Builder mergeFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
              fromNode_ != null &&
              fromNode_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
            fromNode_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(fromNode_).mergeFrom(value).buildPartial();
          } else {
            fromNode_ = value;
          }
          onChanged();
        } else {
          fromNodeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public Builder clearFromNode() {
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
          onChanged();
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getFromNodeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getFromNodeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
        if (fromNodeBuilder_ != null) {
          return fromNodeBuilder_.getMessageOrBuilder();
        } else {
          return fromNode_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.UniqueAddress fromNode = 2;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
          getFromNodeFieldBuilder() {
        if (fromNodeBuilder_ == null) {
          fromNodeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                  getFromNode(),
                  getParentForChildren(),
                  isClean());
          fromNode_ = null;
        }
        return fromNodeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Read)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Read)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Read>
        PARSER = new akka.protobufv3.internal.AbstractParser<Read>() {
      @java.lang.Override
      public Read parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Read(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Read> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Read> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ReadResultOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.ReadResult)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     * @return Whether the envelope field is set.
     */
    boolean hasEnvelope();
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     * @return The envelope.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope();
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.ReadResult}
   */
  public  static final class ReadResult extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.ReadResult)
      ReadResultOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use ReadResult.newBuilder() to construct.
    private ReadResult(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private ReadResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new ReadResult();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private ReadResult(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = envelope_.toBuilder();
              }
              envelope_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(envelope_);
                envelope_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.Builder.class);
    }

    private int bitField0_;
    public static final int ENVELOPE_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     * @return Whether the envelope field is set.
     */
    public boolean hasEnvelope() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     * @return The envelope.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
      return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
    }
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
      return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
    }

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

      if (hasEnvelope()) {
        if (!getEnvelope().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getEnvelope());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getEnvelope());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult) obj;

      if (hasEnvelope() != other.hasEnvelope()) return false;
      if (hasEnvelope()) {
        if (!getEnvelope()
            .equals(other.getEnvelope())) 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 (hasEnvelope()) {
        hash = (37 * hash) + ENVELOPE_FIELD_NUMBER;
        hash = (53 * hash) + getEnvelope().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.ReadResult}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.ReadResult)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResultOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEnvelopeFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (envelopeBuilder_ == null) {
          envelope_ = null;
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (envelopeBuilder_ == null) {
            result.envelope_ = envelope_;
          } else {
            result.envelope_ = envelopeBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult.getDefaultInstance()) return this;
        if (other.hasEnvelope()) {
          mergeEnvelope(other.getEnvelope());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (hasEnvelope()) {
          if (!getEnvelope().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> envelopeBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       * @return Whether the envelope field is set.
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       * @return The envelope.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        if (envelopeBuilder_ == null) {
          return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
        } else {
          return envelopeBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public Builder setEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          envelope_ = value;
          onChanged();
        } else {
          envelopeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public Builder setEnvelope(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder builderForValue) {
        if (envelopeBuilder_ == null) {
          envelope_ = builderForValue.build();
          onChanged();
        } else {
          envelopeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public Builder mergeEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
        if (envelopeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              envelope_ != null &&
              envelope_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance()) {
            envelope_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
          } else {
            envelope_ = value;
          }
          onChanged();
        } else {
          envelopeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public Builder clearEnvelope() {
        if (envelopeBuilder_ == null) {
          envelope_ = null;
          onChanged();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder getEnvelopeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getEnvelopeFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        if (envelopeBuilder_ != null) {
          return envelopeBuilder_.getMessageOrBuilder();
        } else {
          return envelope_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> 
          getEnvelopeFieldBuilder() {
        if (envelopeBuilder_ == null) {
          envelopeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                  getEnvelope(),
                  getParentForChildren(),
                  isClean());
          envelope_ = null;
        }
        return envelopeBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.ReadResult)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.ReadResult)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<ReadResult>
        PARSER = new akka.protobufv3.internal.AbstractParser<ReadResult>() {
      @java.lang.Override
      public ReadResult parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new ReadResult(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<ReadResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<ReadResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DataEnvelopeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.DataEnvelope)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return The data.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder();

    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> 
        getPruningList();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index);
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    int getPruningCount();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
        getPruningOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
        int index);

    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     * @return Whether the deltaVersions field is set.
     */
    boolean hasDeltaVersions();
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     * @return The deltaVersions.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDeltaVersions();
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder getDeltaVersionsOrBuilder();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.DataEnvelope}
   */
  public  static final class DataEnvelope extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.DataEnvelope)
      DataEnvelopeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DataEnvelope.newBuilder() to construct.
    private DataEnvelope(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DataEnvelope() {
      pruning_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new DataEnvelope();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DataEnvelope(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = data_.toBuilder();
              }
              data_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(data_);
                data_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                pruning_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry>();
                mutable_bitField0_ |= 0x00000002;
              }
              pruning_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.PARSER, extensionRegistry));
              break;
            }
            case 26: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) != 0)) {
                subBuilder = deltaVersions_.toBuilder();
              }
              deltaVersions_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(deltaVersions_);
                deltaVersions_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          pruning_ = java.util.Collections.unmodifiableList(pruning_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder.class);
    }

    public interface PruningEntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.DataEnvelope.PruningEntry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       * @return Whether the removedAddress field is set.
       */
      boolean hasRemovedAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       * @return The removedAddress.
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getRemovedAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getRemovedAddressOrBuilder();

      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       * @return Whether the ownerAddress field is set.
       */
      boolean hasOwnerAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       * @return The ownerAddress.
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getOwnerAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getOwnerAddressOrBuilder();

      /**
       * <code>required bool performed = 3;</code>
       * @return Whether the performed field is set.
       */
      boolean hasPerformed();
      /**
       * <code>required bool performed = 3;</code>
       * @return The performed.
       */
      boolean getPerformed();

      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> 
          getSeenList();
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getSeen(int index);
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      int getSeenCount();
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> 
          getSeenOrBuilderList();
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getSeenOrBuilder(
          int index);

      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       * @return Whether the obsoleteTime field is set.
       */
      boolean hasObsoleteTime();
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       * @return The obsoleteTime.
       */
      long getObsoleteTime();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DataEnvelope.PruningEntry}
     */
    public  static final class PruningEntry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:akka.cluster.ddata.DataEnvelope.PruningEntry)
        PruningEntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use PruningEntry.newBuilder() to construct.
      private PruningEntry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private PruningEntry() {
        seen_ = java.util.Collections.emptyList();
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new PruningEntry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private PruningEntry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) != 0)) {
                  subBuilder = removedAddress_.toBuilder();
                }
                removedAddress_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(removedAddress_);
                  removedAddress_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 18: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) != 0)) {
                  subBuilder = ownerAddress_.toBuilder();
                }
                ownerAddress_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(ownerAddress_);
                  ownerAddress_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                performed_ = input.readBool();
                break;
              }
              case 34: {
                if (!((mutable_bitField0_ & 0x00000008) != 0)) {
                  seen_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address>();
                  mutable_bitField0_ |= 0x00000008;
                }
                seen_.add(
                    input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.PARSER, extensionRegistry));
                break;
              }
              case 40: {
                bitField0_ |= 0x00000008;
                obsoleteTime_ = input.readSInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000008) != 0)) {
            seen_ = java.util.Collections.unmodifiableList(seen_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder.class);
      }

      private int bitField0_;
      public static final int REMOVEDADDRESS_FIELD_NUMBER = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress removedAddress_;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       * @return Whether the removedAddress field is set.
       */
      public boolean hasRemovedAddress() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       * @return The removedAddress.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getRemovedAddress() {
        return removedAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : removedAddress_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getRemovedAddressOrBuilder() {
        return removedAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : removedAddress_;
      }

      public static final int OWNERADDRESS_FIELD_NUMBER = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress ownerAddress_;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       * @return Whether the ownerAddress field is set.
       */
      public boolean hasOwnerAddress() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       * @return The ownerAddress.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getOwnerAddress() {
        return ownerAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : ownerAddress_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getOwnerAddressOrBuilder() {
        return ownerAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : ownerAddress_;
      }

      public static final int PERFORMED_FIELD_NUMBER = 3;
      private boolean performed_;
      /**
       * <code>required bool performed = 3;</code>
       * @return Whether the performed field is set.
       */
      public boolean hasPerformed() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bool performed = 3;</code>
       * @return The performed.
       */
      public boolean getPerformed() {
        return performed_;
      }

      public static final int SEEN_FIELD_NUMBER = 4;
      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> seen_;
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> getSeenList() {
        return seen_;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> 
          getSeenOrBuilderList() {
        return seen_;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      public int getSeenCount() {
        return seen_.size();
      }
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getSeen(int index) {
        return seen_.get(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getSeenOrBuilder(
          int index) {
        return seen_.get(index);
      }

      public static final int OBSOLETETIME_FIELD_NUMBER = 5;
      private long obsoleteTime_;
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       * @return Whether the obsoleteTime field is set.
       */
      public boolean hasObsoleteTime() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       * @return The obsoleteTime.
       */
      public long getObsoleteTime() {
        return obsoleteTime_;
      }

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

        if (!hasRemovedAddress()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasOwnerAddress()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasPerformed()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getRemovedAddress().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getOwnerAddress().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getSeenCount(); i++) {
          if (!getSeen(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeMessage(1, getRemovedAddress());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeMessage(2, getOwnerAddress());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeBool(3, performed_);
        }
        for (int i = 0; i < seen_.size(); i++) {
          output.writeMessage(4, seen_.get(i));
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeSInt64(5, obsoleteTime_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, getRemovedAddress());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(2, getOwnerAddress());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeBoolSize(3, performed_);
        }
        for (int i = 0; i < seen_.size(); i++) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(4, seen_.get(i));
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeSInt64Size(5, obsoleteTime_);
        }
        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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry)) {
          return super.equals(obj);
        }
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry) obj;

        if (hasRemovedAddress() != other.hasRemovedAddress()) return false;
        if (hasRemovedAddress()) {
          if (!getRemovedAddress()
              .equals(other.getRemovedAddress())) return false;
        }
        if (hasOwnerAddress() != other.hasOwnerAddress()) return false;
        if (hasOwnerAddress()) {
          if (!getOwnerAddress()
              .equals(other.getOwnerAddress())) return false;
        }
        if (hasPerformed() != other.hasPerformed()) return false;
        if (hasPerformed()) {
          if (getPerformed()
              != other.getPerformed()) return false;
        }
        if (!getSeenList()
            .equals(other.getSeenList())) return false;
        if (hasObsoleteTime() != other.hasObsoleteTime()) return false;
        if (hasObsoleteTime()) {
          if (getObsoleteTime()
              != other.getObsoleteTime()) 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 (hasRemovedAddress()) {
          hash = (37 * hash) + REMOVEDADDRESS_FIELD_NUMBER;
          hash = (53 * hash) + getRemovedAddress().hashCode();
        }
        if (hasOwnerAddress()) {
          hash = (37 * hash) + OWNERADDRESS_FIELD_NUMBER;
          hash = (53 * hash) + getOwnerAddress().hashCode();
        }
        if (hasPerformed()) {
          hash = (37 * hash) + PERFORMED_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
              getPerformed());
        }
        if (getSeenCount() > 0) {
          hash = (37 * hash) + SEEN_FIELD_NUMBER;
          hash = (53 * hash) + getSeenList().hashCode();
        }
        if (hasObsoleteTime()) {
          hash = (37 * hash) + OBSOLETETIME_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getObsoleteTime());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry 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(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.DataEnvelope.PruningEntry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.DataEnvelope.PruningEntry)
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder.class);
        }

        // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getRemovedAddressFieldBuilder();
            getOwnerAddressFieldBuilder();
            getSeenFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (removedAddressBuilder_ == null) {
            removedAddress_ = null;
          } else {
            removedAddressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (ownerAddressBuilder_ == null) {
            ownerAddress_ = null;
          } else {
            ownerAddressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          performed_ = false;
          bitField0_ = (bitField0_ & ~0x00000004);
          if (seenBuilder_ == null) {
            seen_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            seenBuilder_.clear();
          }
          obsoleteTime_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000010);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry build() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry buildPartial() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            if (removedAddressBuilder_ == null) {
              result.removedAddress_ = removedAddress_;
            } else {
              result.removedAddress_ = removedAddressBuilder_.build();
            }
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            if (ownerAddressBuilder_ == null) {
              result.ownerAddress_ = ownerAddress_;
            } else {
              result.ownerAddress_ = ownerAddressBuilder_.build();
            }
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.performed_ = performed_;
            to_bitField0_ |= 0x00000004;
          }
          if (seenBuilder_ == null) {
            if (((bitField0_ & 0x00000008) != 0)) {
              seen_ = java.util.Collections.unmodifiableList(seen_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.seen_ = seen_;
          } else {
            result.seen_ = seenBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.obsoleteTime_ = obsoleteTime_;
            to_bitField0_ |= 0x00000008;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry) {
            return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry other) {
          if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance()) return this;
          if (other.hasRemovedAddress()) {
            mergeRemovedAddress(other.getRemovedAddress());
          }
          if (other.hasOwnerAddress()) {
            mergeOwnerAddress(other.getOwnerAddress());
          }
          if (other.hasPerformed()) {
            setPerformed(other.getPerformed());
          }
          if (seenBuilder_ == null) {
            if (!other.seen_.isEmpty()) {
              if (seen_.isEmpty()) {
                seen_ = other.seen_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensureSeenIsMutable();
                seen_.addAll(other.seen_);
              }
              onChanged();
            }
          } else {
            if (!other.seen_.isEmpty()) {
              if (seenBuilder_.isEmpty()) {
                seenBuilder_.dispose();
                seenBuilder_ = null;
                seen_ = other.seen_;
                bitField0_ = (bitField0_ & ~0x00000008);
                seenBuilder_ = 
                  akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                     getSeenFieldBuilder() : null;
              } else {
                seenBuilder_.addAllMessages(other.seen_);
              }
            }
          }
          if (other.hasObsoleteTime()) {
            setObsoleteTime(other.getObsoleteTime());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasRemovedAddress()) {
            return false;
          }
          if (!hasOwnerAddress()) {
            return false;
          }
          if (!hasPerformed()) {
            return false;
          }
          if (!getRemovedAddress().isInitialized()) {
            return false;
          }
          if (!getOwnerAddress().isInitialized()) {
            return false;
          }
          for (int i = 0; i < getSeenCount(); i++) {
            if (!getSeen(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress removedAddress_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> removedAddressBuilder_;
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         * @return Whether the removedAddress field is set.
         */
        public boolean hasRemovedAddress() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         * @return The removedAddress.
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getRemovedAddress() {
          if (removedAddressBuilder_ == null) {
            return removedAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : removedAddress_;
          } else {
            return removedAddressBuilder_.getMessage();
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public Builder setRemovedAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (removedAddressBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            removedAddress_ = value;
            onChanged();
          } else {
            removedAddressBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public Builder setRemovedAddress(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
          if (removedAddressBuilder_ == null) {
            removedAddress_ = builderForValue.build();
            onChanged();
          } else {
            removedAddressBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public Builder mergeRemovedAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (removedAddressBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
                removedAddress_ != null &&
                removedAddress_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
              removedAddress_ =
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(removedAddress_).mergeFrom(value).buildPartial();
            } else {
              removedAddress_ = value;
            }
            onChanged();
          } else {
            removedAddressBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public Builder clearRemovedAddress() {
          if (removedAddressBuilder_ == null) {
            removedAddress_ = null;
            onChanged();
          } else {
            removedAddressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getRemovedAddressBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getRemovedAddressFieldBuilder().getBuilder();
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getRemovedAddressOrBuilder() {
          if (removedAddressBuilder_ != null) {
            return removedAddressBuilder_.getMessageOrBuilder();
          } else {
            return removedAddress_ == null ?
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : removedAddress_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
            getRemovedAddressFieldBuilder() {
          if (removedAddressBuilder_ == null) {
            removedAddressBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    getRemovedAddress(),
                    getParentForChildren(),
                    isClean());
            removedAddress_ = null;
          }
          return removedAddressBuilder_;
        }

        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress ownerAddress_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> ownerAddressBuilder_;
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         * @return Whether the ownerAddress field is set.
         */
        public boolean hasOwnerAddress() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         * @return The ownerAddress.
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getOwnerAddress() {
          if (ownerAddressBuilder_ == null) {
            return ownerAddress_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : ownerAddress_;
          } else {
            return ownerAddressBuilder_.getMessage();
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public Builder setOwnerAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (ownerAddressBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ownerAddress_ = value;
            onChanged();
          } else {
            ownerAddressBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public Builder setOwnerAddress(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
          if (ownerAddressBuilder_ == null) {
            ownerAddress_ = builderForValue.build();
            onChanged();
          } else {
            ownerAddressBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public Builder mergeOwnerAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (ownerAddressBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
                ownerAddress_ != null &&
                ownerAddress_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
              ownerAddress_ =
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(ownerAddress_).mergeFrom(value).buildPartial();
            } else {
              ownerAddress_ = value;
            }
            onChanged();
          } else {
            ownerAddressBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public Builder clearOwnerAddress() {
          if (ownerAddressBuilder_ == null) {
            ownerAddress_ = null;
            onChanged();
          } else {
            ownerAddressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getOwnerAddressBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getOwnerAddressFieldBuilder().getBuilder();
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getOwnerAddressOrBuilder() {
          if (ownerAddressBuilder_ != null) {
            return ownerAddressBuilder_.getMessageOrBuilder();
          } else {
            return ownerAddress_ == null ?
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : ownerAddress_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
            getOwnerAddressFieldBuilder() {
          if (ownerAddressBuilder_ == null) {
            ownerAddressBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    getOwnerAddress(),
                    getParentForChildren(),
                    isClean());
            ownerAddress_ = null;
          }
          return ownerAddressBuilder_;
        }

        private boolean performed_ ;
        /**
         * <code>required bool performed = 3;</code>
         * @return Whether the performed field is set.
         */
        public boolean hasPerformed() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required bool performed = 3;</code>
         * @return The performed.
         */
        public boolean getPerformed() {
          return performed_;
        }
        /**
         * <code>required bool performed = 3;</code>
         * @param value The performed to set.
         * @return This builder for chaining.
         */
        public Builder setPerformed(boolean value) {
          bitField0_ |= 0x00000004;
          performed_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required bool performed = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearPerformed() {
          bitField0_ = (bitField0_ & ~0x00000004);
          performed_ = false;
          onChanged();
          return this;
        }

        private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> seen_ =
          java.util.Collections.emptyList();
        private void ensureSeenIsMutable() {
          if (!((bitField0_ & 0x00000008) != 0)) {
            seen_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address>(seen_);
            bitField0_ |= 0x00000008;
           }
        }

        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> seenBuilder_;

        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> getSeenList() {
          if (seenBuilder_ == null) {
            return java.util.Collections.unmodifiableList(seen_);
          } else {
            return seenBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public int getSeenCount() {
          if (seenBuilder_ == null) {
            return seen_.size();
          } else {
            return seenBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getSeen(int index) {
          if (seenBuilder_ == null) {
            return seen_.get(index);
          } else {
            return seenBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder setSeen(
            int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address value) {
          if (seenBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSeenIsMutable();
            seen_.set(index, value);
            onChanged();
          } else {
            seenBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder setSeen(
            int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder builderForValue) {
          if (seenBuilder_ == null) {
            ensureSeenIsMutable();
            seen_.set(index, builderForValue.build());
            onChanged();
          } else {
            seenBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder addSeen(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address value) {
          if (seenBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSeenIsMutable();
            seen_.add(value);
            onChanged();
          } else {
            seenBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder addSeen(
            int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address value) {
          if (seenBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSeenIsMutable();
            seen_.add(index, value);
            onChanged();
          } else {
            seenBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder addSeen(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder builderForValue) {
          if (seenBuilder_ == null) {
            ensureSeenIsMutable();
            seen_.add(builderForValue.build());
            onChanged();
          } else {
            seenBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder addSeen(
            int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder builderForValue) {
          if (seenBuilder_ == null) {
            ensureSeenIsMutable();
            seen_.add(index, builderForValue.build());
            onChanged();
          } else {
            seenBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder addAllSeen(
            java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address> values) {
          if (seenBuilder_ == null) {
            ensureSeenIsMutable();
            akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
                values, seen_);
            onChanged();
          } else {
            seenBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder clearSeen() {
          if (seenBuilder_ == null) {
            seen_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
          } else {
            seenBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public Builder removeSeen(int index) {
          if (seenBuilder_ == null) {
            ensureSeenIsMutable();
            seen_.remove(index);
            onChanged();
          } else {
            seenBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder getSeenBuilder(
            int index) {
          return getSeenFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getSeenOrBuilder(
            int index) {
          if (seenBuilder_ == null) {
            return seen_.get(index);  } else {
            return seenBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> 
             getSeenOrBuilderList() {
          if (seenBuilder_ != null) {
            return seenBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(seen_);
          }
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder addSeenBuilder() {
          return getSeenFieldBuilder().addBuilder(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance());
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder addSeenBuilder(
            int index) {
          return getSeenFieldBuilder().addBuilder(
              index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance());
        }
        /**
         * <code>repeated .akka.cluster.ddata.Address seen = 4;</code>
         */
        public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder> 
             getSeenBuilderList() {
          return getSeenFieldBuilder().getBuilderList();
        }
        private akka.protobufv3.internal.RepeatedFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> 
            getSeenFieldBuilder() {
          if (seenBuilder_ == null) {
            seenBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder>(
                    seen_,
                    ((bitField0_ & 0x00000008) != 0),
                    getParentForChildren(),
                    isClean());
            seen_ = null;
          }
          return seenBuilder_;
        }

        private long obsoleteTime_ ;
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         * @return Whether the obsoleteTime field is set.
         */
        public boolean hasObsoleteTime() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         * @return The obsoleteTime.
         */
        public long getObsoleteTime() {
          return obsoleteTime_;
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         * @param value The obsoleteTime to set.
         * @return This builder for chaining.
         */
        public Builder setObsoleteTime(long value) {
          bitField0_ |= 0x00000010;
          obsoleteTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearObsoleteTime() {
          bitField0_ = (bitField0_ & ~0x00000010);
          obsoleteTime_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.DataEnvelope.PruningEntry)
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DataEnvelope.PruningEntry)
      private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<PruningEntry>
          PARSER = new akka.protobufv3.internal.AbstractParser<PruningEntry>() {
        @java.lang.Override
        public PruningEntry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new PruningEntry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<PruningEntry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<PruningEntry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return The data.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }

    public static final int PRUNING_FIELD_NUMBER = 2;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> pruning_;
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> getPruningList() {
      return pruning_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
        getPruningOrBuilderList() {
      return pruning_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public int getPruningCount() {
      return pruning_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index) {
      return pruning_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
        int index) {
      return pruning_.get(index);
    }

    public static final int DELTAVERSIONS_FIELD_NUMBER = 3;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector deltaVersions_;
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     * @return Whether the deltaVersions field is set.
     */
    public boolean hasDeltaVersions() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     * @return The deltaVersions.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDeltaVersions() {
      return deltaVersions_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance() : deltaVersions_;
    }
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder getDeltaVersionsOrBuilder() {
      return deltaVersions_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance() : deltaVersions_;
    }

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

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getData().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPruningCount(); i++) {
        if (!getPruning(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      if (hasDeltaVersions()) {
        if (!getDeltaVersions().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getData());
      }
      for (int i = 0; i < pruning_.size(); i++) {
        output.writeMessage(2, pruning_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getDeltaVersions());
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getData());
      }
      for (int i = 0; i < pruning_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, pruning_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(3, getDeltaVersions());
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope) obj;

      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (!getPruningList()
          .equals(other.getPruningList())) return false;
      if (hasDeltaVersions() != other.hasDeltaVersions()) return false;
      if (hasDeltaVersions()) {
        if (!getDeltaVersions()
            .equals(other.getDeltaVersions())) 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 (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (getPruningCount() > 0) {
        hash = (37 * hash) + PRUNING_FIELD_NUMBER;
        hash = (53 * hash) + getPruningList().hashCode();
      }
      if (hasDeltaVersions()) {
        hash = (37 * hash) + DELTAVERSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getDeltaVersions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DataEnvelope}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.DataEnvelope)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDataFieldBuilder();
          getPruningFieldBuilder();
          getDeltaVersionsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          pruningBuilder_.clear();
        }
        if (deltaVersionsBuilder_ == null) {
          deltaVersions_ = null;
        } else {
          deltaVersionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (pruningBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            pruning_ = java.util.Collections.unmodifiableList(pruning_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.pruning_ = pruning_;
        } else {
          result.pruning_ = pruningBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          if (deltaVersionsBuilder_ == null) {
            result.deltaVersions_ = deltaVersions_;
          } else {
            result.deltaVersions_ = deltaVersionsBuilder_.build();
          }
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance()) return this;
        if (other.hasData()) {
          mergeData(other.getData());
        }
        if (pruningBuilder_ == null) {
          if (!other.pruning_.isEmpty()) {
            if (pruning_.isEmpty()) {
              pruning_ = other.pruning_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePruningIsMutable();
              pruning_.addAll(other.pruning_);
            }
            onChanged();
          }
        } else {
          if (!other.pruning_.isEmpty()) {
            if (pruningBuilder_.isEmpty()) {
              pruningBuilder_.dispose();
              pruningBuilder_ = null;
              pruning_ = other.pruning_;
              bitField0_ = (bitField0_ & ~0x00000002);
              pruningBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPruningFieldBuilder() : null;
            } else {
              pruningBuilder_.addAllMessages(other.pruning_);
            }
          }
        }
        if (other.hasDeltaVersions()) {
          mergeDeltaVersions(other.getDeltaVersions());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasData()) {
          return false;
        }
        if (!getData().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getPruningCount(); i++) {
          if (!getPruning(i).isInitialized()) {
            return false;
          }
        }
        if (hasDeltaVersions()) {
          if (!getDeltaVersions().isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> dataBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       * @return The data.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        } else {
          return dataBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder setData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder setData(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (dataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder mergeData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              data_ != null &&
              data_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            data_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(data_).mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          dataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getDataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          return data_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getData(),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> pruning_ =
        java.util.Collections.emptyList();
      private void ensurePruningIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          pruning_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry>(pruning_);
          bitField0_ |= 0x00000002;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> pruningBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> getPruningList() {
        if (pruningBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pruning_);
        } else {
          return pruningBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public int getPruningCount() {
        if (pruningBuilder_ == null) {
          return pruning_.size();
        } else {
          return pruningBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index) {
        if (pruningBuilder_ == null) {
          return pruning_.get(index);
        } else {
          return pruningBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder setPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.set(index, value);
          onChanged();
        } else {
          pruningBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder setPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.set(index, builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.add(value);
          onChanged();
        } else {
          pruningBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.add(index, value);
          onChanged();
        } else {
          pruningBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.add(builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.add(index, builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addAllPruning(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> values) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, pruning_);
          onChanged();
        } else {
          pruningBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder clearPruning() {
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          pruningBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder removePruning(int index) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.remove(index);
          onChanged();
        } else {
          pruningBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder getPruningBuilder(
          int index) {
        return getPruningFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
          int index) {
        if (pruningBuilder_ == null) {
          return pruning_.get(index);  } else {
          return pruningBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
           getPruningOrBuilderList() {
        if (pruningBuilder_ != null) {
          return pruningBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pruning_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder addPruningBuilder() {
        return getPruningFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder addPruningBuilder(
          int index) {
        return getPruningFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder> 
           getPruningBuilderList() {
        return getPruningFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
          getPruningFieldBuilder() {
        if (pruningBuilder_ == null) {
          pruningBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder>(
                  pruning_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          pruning_ = null;
        }
        return pruningBuilder_;
      }

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector deltaVersions_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder> deltaVersionsBuilder_;
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       * @return Whether the deltaVersions field is set.
       */
      public boolean hasDeltaVersions() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       * @return The deltaVersions.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDeltaVersions() {
        if (deltaVersionsBuilder_ == null) {
          return deltaVersions_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance() : deltaVersions_;
        } else {
          return deltaVersionsBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public Builder setDeltaVersions(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector value) {
        if (deltaVersionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          deltaVersions_ = value;
          onChanged();
        } else {
          deltaVersionsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public Builder setDeltaVersions(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder builderForValue) {
        if (deltaVersionsBuilder_ == null) {
          deltaVersions_ = builderForValue.build();
          onChanged();
        } else {
          deltaVersionsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public Builder mergeDeltaVersions(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector value) {
        if (deltaVersionsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
              deltaVersions_ != null &&
              deltaVersions_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance()) {
            deltaVersions_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.newBuilder(deltaVersions_).mergeFrom(value).buildPartial();
          } else {
            deltaVersions_ = value;
          }
          onChanged();
        } else {
          deltaVersionsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public Builder clearDeltaVersions() {
        if (deltaVersionsBuilder_ == null) {
          deltaVersions_ = null;
          onChanged();
        } else {
          deltaVersionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder getDeltaVersionsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getDeltaVersionsFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder getDeltaVersionsOrBuilder() {
        if (deltaVersionsBuilder_ != null) {
          return deltaVersionsBuilder_.getMessageOrBuilder();
        } else {
          return deltaVersions_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance() : deltaVersions_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder> 
          getDeltaVersionsFieldBuilder() {
        if (deltaVersionsBuilder_ == null) {
          deltaVersionsBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder>(
                  getDeltaVersions(),
                  getParentForChildren(),
                  isClean());
          deltaVersions_ = null;
        }
        return deltaVersionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.DataEnvelope)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DataEnvelope)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<DataEnvelope>
        PARSER = new akka.protobufv3.internal.AbstractParser<DataEnvelope>() {
      @java.lang.Override
      public DataEnvelope parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new DataEnvelope(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<DataEnvelope> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<DataEnvelope> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StatusOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Status)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required uint32 chunk = 1;</code>
     * @return Whether the chunk field is set.
     */
    boolean hasChunk();
    /**
     * <code>required uint32 chunk = 1;</code>
     * @return The chunk.
     */
    int getChunk();

    /**
     * <code>required uint32 totChunks = 2;</code>
     * @return Whether the totChunks field is set.
     */
    boolean hasTotChunks();
    /**
     * <code>required uint32 totChunks = 2;</code>
     * @return The totChunks.
     */
    int getTotChunks();

    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> 
        getEntriesList();
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getEntries(int index);
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder getEntriesOrBuilder(
        int index);

    /**
     * <code>optional sfixed64 toSystemUid = 4;</code>
     * @return Whether the toSystemUid field is set.
     */
    boolean hasToSystemUid();
    /**
     * <code>optional sfixed64 toSystemUid = 4;</code>
     * @return The toSystemUid.
     */
    long getToSystemUid();

    /**
     * <code>optional sfixed64 fromSystemUid = 5;</code>
     * @return Whether the fromSystemUid field is set.
     */
    boolean hasFromSystemUid();
    /**
     * <code>optional sfixed64 fromSystemUid = 5;</code>
     * @return The fromSystemUid.
     */
    long getFromSystemUid();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Status}
   */
  public  static final class Status extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Status)
      StatusOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Status.newBuilder() to construct.
    private Status(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Status() {
      entries_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Status();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Status(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              chunk_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              totChunks_ = input.readUInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) != 0)) {
                entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry>();
                mutable_bitField0_ |= 0x00000004;
              }
              entries_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.PARSER, extensionRegistry));
              break;
            }
            case 33: {
              bitField0_ |= 0x00000004;
              toSystemUid_ = input.readSFixed64();
              break;
            }
            case 41: {
              bitField0_ |= 0x00000008;
              fromSystemUid_ = input.readSFixed64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) != 0)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Builder.class);
    }

    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Status.Entry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      akka.protobufv3.internal.ByteString
          getKeyBytes();

      /**
       * <code>required bytes digest = 2;</code>
       * @return Whether the digest field is set.
       */
      boolean hasDigest();
      /**
       * <code>required bytes digest = 2;</code>
       * @return The digest.
       */
      akka.protobufv3.internal.ByteString getDigest();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Status.Entry}
     */
    public  static final class Entry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Status.Entry)
        EntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Entry() {
        key_ = "";
        digest_ = akka.protobufv3.internal.ByteString.EMPTY;
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new Entry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.protobufv3.internal.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                digest_ = input.readBytes();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder.class);
      }

      private int bitField0_;
      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }

      public static final int DIGEST_FIELD_NUMBER = 2;
      private akka.protobufv3.internal.ByteString digest_;
      /**
       * <code>required bytes digest = 2;</code>
       * @return Whether the digest field is set.
       */
      public boolean hasDigest() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required bytes digest = 2;</code>
       * @return The digest.
       */
      public akka.protobufv3.internal.ByteString getDigest() {
        return digest_;
      }

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

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasDigest()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeBytes(2, digest_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeBytesSize(2, digest_);
        }
        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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry)) {
          return super.equals(obj);
        }
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry) obj;

        if (hasKey() != other.hasKey()) return false;
        if (hasKey()) {
          if (!getKey()
              .equals(other.getKey())) return false;
        }
        if (hasDigest() != other.hasDigest()) return false;
        if (hasDigest()) {
          if (!getDigest()
              .equals(other.getDigest())) 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 (hasKey()) {
          hash = (37 * hash) + KEY_FIELD_NUMBER;
          hash = (53 * hash) + getKey().hashCode();
        }
        if (hasDigest()) {
          hash = (37 * hash) + DIGEST_FIELD_NUMBER;
          hash = (53 * hash) + getDigest().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry 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(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.Status.Entry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Status.Entry)
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder.class);
        }

        // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          digest_ = akka.protobufv3.internal.ByteString.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry build() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry buildPartial() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            to_bitField0_ |= 0x00000002;
          }
          result.digest_ = digest_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry) {
            return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry other) {
          if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.getDefaultInstance()) return this;
          if (other.hasKey()) {
            bitField0_ |= 0x00000001;
            key_ = other.key_;
            onChanged();
          }
          if (other.hasDigest()) {
            setDigest(other.getDigest());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasKey()) {
            return false;
          }
          if (!hasDigest()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         * @return Whether the key field is set.
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string key = 1;</code>
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              key_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @return The bytes for key.
         */
        public akka.protobufv3.internal.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        private akka.protobufv3.internal.ByteString digest_ = akka.protobufv3.internal.ByteString.EMPTY;
        /**
         * <code>required bytes digest = 2;</code>
         * @return Whether the digest field is set.
         */
        public boolean hasDigest() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required bytes digest = 2;</code>
         * @return The digest.
         */
        public akka.protobufv3.internal.ByteString getDigest() {
          return digest_;
        }
        /**
         * <code>required bytes digest = 2;</code>
         * @param value The digest to set.
         * @return This builder for chaining.
         */
        public Builder setDigest(akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          digest_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required bytes digest = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearDigest() {
          bitField0_ = (bitField0_ & ~0x00000002);
          digest_ = getDefaultInstance().getDigest();
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Status.Entry)
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Status.Entry)
      private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Entry>
          PARSER = new akka.protobufv3.internal.AbstractParser<Entry>() {
        @java.lang.Override
        public Entry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<Entry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<Entry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int CHUNK_FIELD_NUMBER = 1;
    private int chunk_;
    /**
     * <code>required uint32 chunk = 1;</code>
     * @return Whether the chunk field is set.
     */
    public boolean hasChunk() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required uint32 chunk = 1;</code>
     * @return The chunk.
     */
    public int getChunk() {
      return chunk_;
    }

    public static final int TOTCHUNKS_FIELD_NUMBER = 2;
    private int totChunks_;
    /**
     * <code>required uint32 totChunks = 2;</code>
     * @return Whether the totChunks field is set.
     */
    public boolean hasTotChunks() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 totChunks = 2;</code>
     * @return The totChunks.
     */
    public int getTotChunks() {
      return totChunks_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 3;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> entries_;
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    public static final int TOSYSTEMUID_FIELD_NUMBER = 4;
    private long toSystemUid_;
    /**
     * <code>optional sfixed64 toSystemUid = 4;</code>
     * @return Whether the toSystemUid field is set.
     */
    public boolean hasToSystemUid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional sfixed64 toSystemUid = 4;</code>
     * @return The toSystemUid.
     */
    public long getToSystemUid() {
      return toSystemUid_;
    }

    public static final int FROMSYSTEMUID_FIELD_NUMBER = 5;
    private long fromSystemUid_;
    /**
     * <code>optional sfixed64 fromSystemUid = 5;</code>
     * @return Whether the fromSystemUid field is set.
     */
    public boolean hasFromSystemUid() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * <code>optional sfixed64 fromSystemUid = 5;</code>
     * @return The fromSystemUid.
     */
    public long getFromSystemUid() {
      return fromSystemUid_;
    }

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

      if (!hasChunk()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasTotChunks()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getEntriesCount(); i++) {
        if (!getEntries(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt32(1, chunk_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, totChunks_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(3, entries_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeSFixed64(4, toSystemUid_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeSFixed64(5, fromSystemUid_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeUInt32Size(1, chunk_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeUInt32Size(2, totChunks_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(3, entries_.get(i));
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed64Size(4, toSystemUid_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed64Size(5, fromSystemUid_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status) obj;

      if (hasChunk() != other.hasChunk()) return false;
      if (hasChunk()) {
        if (getChunk()
            != other.getChunk()) return false;
      }
      if (hasTotChunks() != other.hasTotChunks()) return false;
      if (hasTotChunks()) {
        if (getTotChunks()
            != other.getTotChunks()) return false;
      }
      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (hasToSystemUid() != other.hasToSystemUid()) return false;
      if (hasToSystemUid()) {
        if (getToSystemUid()
            != other.getToSystemUid()) return false;
      }
      if (hasFromSystemUid() != other.hasFromSystemUid()) return false;
      if (hasFromSystemUid()) {
        if (getFromSystemUid()
            != other.getFromSystemUid()) 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 (hasChunk()) {
        hash = (37 * hash) + CHUNK_FIELD_NUMBER;
        hash = (53 * hash) + getChunk();
      }
      if (hasTotChunks()) {
        hash = (37 * hash) + TOTCHUNKS_FIELD_NUMBER;
        hash = (53 * hash) + getTotChunks();
      }
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      if (hasToSystemUid()) {
        hash = (37 * hash) + TOSYSTEMUID_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getToSystemUid());
      }
      if (hasFromSystemUid()) {
        hash = (37 * hash) + FROMSYSTEMUID_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getFromSystemUid());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Status}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Status)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StatusOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        chunk_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        totChunks_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          entriesBuilder_.clear();
        }
        toSystemUid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        fromSystemUid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.chunk_ = chunk_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.totChunks_ = totChunks_;
          to_bitField0_ |= 0x00000002;
        }
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.toSystemUid_ = toSystemUid_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.fromSystemUid_ = fromSystemUid_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.getDefaultInstance()) return this;
        if (other.hasChunk()) {
          setChunk(other.getChunk());
        }
        if (other.hasTotChunks()) {
          setTotChunks(other.getTotChunks());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000004);
              entriesBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        if (other.hasToSystemUid()) {
          setToSystemUid(other.getToSystemUid());
        }
        if (other.hasFromSystemUid()) {
          setFromSystemUid(other.getFromSystemUid());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasChunk()) {
          return false;
        }
        if (!hasTotChunks()) {
          return false;
        }
        for (int i = 0; i < getEntriesCount(); i++) {
          if (!getEntries(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int chunk_ ;
      /**
       * <code>required uint32 chunk = 1;</code>
       * @return Whether the chunk field is set.
       */
      public boolean hasChunk() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       * @return The chunk.
       */
      public int getChunk() {
        return chunk_;
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       * @param value The chunk to set.
       * @return This builder for chaining.
       */
      public Builder setChunk(int value) {
        bitField0_ |= 0x00000001;
        chunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearChunk() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chunk_ = 0;
        onChanged();
        return this;
      }

      private int totChunks_ ;
      /**
       * <code>required uint32 totChunks = 2;</code>
       * @return Whether the totChunks field is set.
       */
      public boolean hasTotChunks() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       * @return The totChunks.
       */
      public int getTotChunks() {
        return totChunks_;
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       * @param value The totChunks to set.
       * @return This builder for chaining.
       */
      public Builder setTotChunks(int value) {
        bitField0_ |= 0x00000002;
        totChunks_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearTotChunks() {
        bitField0_ = (bitField0_ & ~0x00000002);
        totChunks_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry>(entries_);
          bitField0_ |= 0x00000004;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder addEntries(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder addEntries(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder getEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder addEntriesBuilder() {
        return getEntriesFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder addEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.Status.Entry entries = 3;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder> 
           getEntriesBuilderList() {
        return getEntriesFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder> 
          getEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      private long toSystemUid_ ;
      /**
       * <code>optional sfixed64 toSystemUid = 4;</code>
       * @return Whether the toSystemUid field is set.
       */
      public boolean hasToSystemUid() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional sfixed64 toSystemUid = 4;</code>
       * @return The toSystemUid.
       */
      public long getToSystemUid() {
        return toSystemUid_;
      }
      /**
       * <code>optional sfixed64 toSystemUid = 4;</code>
       * @param value The toSystemUid to set.
       * @return This builder for chaining.
       */
      public Builder setToSystemUid(long value) {
        bitField0_ |= 0x00000008;
        toSystemUid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 toSystemUid = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearToSystemUid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        toSystemUid_ = 0L;
        onChanged();
        return this;
      }

      private long fromSystemUid_ ;
      /**
       * <code>optional sfixed64 fromSystemUid = 5;</code>
       * @return Whether the fromSystemUid field is set.
       */
      public boolean hasFromSystemUid() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 5;</code>
       * @return The fromSystemUid.
       */
      public long getFromSystemUid() {
        return fromSystemUid_;
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 5;</code>
       * @param value The fromSystemUid to set.
       * @return This builder for chaining.
       */
      public Builder setFromSystemUid(long value) {
        bitField0_ |= 0x00000010;
        fromSystemUid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromSystemUid() {
        bitField0_ = (bitField0_ & ~0x00000010);
        fromSystemUid_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Status)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Status)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Status>
        PARSER = new akka.protobufv3.internal.AbstractParser<Status>() {
      @java.lang.Override
      public Status parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Status(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Status> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Status> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GossipOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Gossip)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required bool sendBack = 1;</code>
     * @return Whether the sendBack field is set.
     */
    boolean hasSendBack();
    /**
     * <code>required bool sendBack = 1;</code>
     * @return The sendBack.
     */
    boolean getSendBack();

    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> 
        getEntriesList();
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getEntries(int index);
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder getEntriesOrBuilder(
        int index);

    /**
     * <code>optional sfixed64 toSystemUid = 3;</code>
     * @return Whether the toSystemUid field is set.
     */
    boolean hasToSystemUid();
    /**
     * <code>optional sfixed64 toSystemUid = 3;</code>
     * @return The toSystemUid.
     */
    long getToSystemUid();

    /**
     * <code>optional sfixed64 fromSystemUid = 4;</code>
     * @return Whether the fromSystemUid field is set.
     */
    boolean hasFromSystemUid();
    /**
     * <code>optional sfixed64 fromSystemUid = 4;</code>
     * @return The fromSystemUid.
     */
    long getFromSystemUid();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Gossip}
   */
  public  static final class Gossip extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Gossip)
      GossipOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Gossip.newBuilder() to construct.
    private Gossip(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Gossip() {
      entries_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Gossip();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Gossip(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              bitField0_ |= 0x00000001;
              sendBack_ = input.readBool();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry>();
                mutable_bitField0_ |= 0x00000002;
              }
              entries_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.PARSER, extensionRegistry));
              break;
            }
            case 25: {
              bitField0_ |= 0x00000002;
              toSystemUid_ = input.readSFixed64();
              break;
            }
            case 33: {
              bitField0_ |= 0x00000004;
              fromSystemUid_ = input.readSFixed64();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Builder.class);
    }

    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Gossip.Entry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      akka.protobufv3.internal.ByteString
          getKeyBytes();

      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return Whether the envelope field is set.
       */
      boolean hasEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return The envelope.
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Gossip.Entry}
     */
    public  static final class Entry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Gossip.Entry)
        EntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Entry() {
        key_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new Entry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.protobufv3.internal.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
              case 18: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) != 0)) {
                  subBuilder = envelope_.toBuilder();
                }
                envelope_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(envelope_);
                  envelope_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder.class);
      }

      private int bitField0_;
      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }

      public static final int ENVELOPE_FIELD_NUMBER = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return Whether the envelope field is set.
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return The envelope.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
      }

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

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasEnvelope()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getEnvelope().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeMessage(2, getEnvelope());
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(2, getEnvelope());
        }
        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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry)) {
          return super.equals(obj);
        }
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry) obj;

        if (hasKey() != other.hasKey()) return false;
        if (hasKey()) {
          if (!getKey()
              .equals(other.getKey())) return false;
        }
        if (hasEnvelope() != other.hasEnvelope()) return false;
        if (hasEnvelope()) {
          if (!getEnvelope()
              .equals(other.getEnvelope())) 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 (hasKey()) {
          hash = (37 * hash) + KEY_FIELD_NUMBER;
          hash = (53 * hash) + getKey().hashCode();
        }
        if (hasEnvelope()) {
          hash = (37 * hash) + ENVELOPE_FIELD_NUMBER;
          hash = (53 * hash) + getEnvelope().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry 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(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.Gossip.Entry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Gossip.Entry)
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder.class);
        }

        // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getEnvelopeFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          if (envelopeBuilder_ == null) {
            envelope_ = null;
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry build() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry buildPartial() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            if (envelopeBuilder_ == null) {
              result.envelope_ = envelope_;
            } else {
              result.envelope_ = envelopeBuilder_.build();
            }
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry) {
            return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry other) {
          if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.getDefaultInstance()) return this;
          if (other.hasKey()) {
            bitField0_ |= 0x00000001;
            key_ = other.key_;
            onChanged();
          }
          if (other.hasEnvelope()) {
            mergeEnvelope(other.getEnvelope());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasKey()) {
            return false;
          }
          if (!hasEnvelope()) {
            return false;
          }
          if (!getEnvelope().isInitialized()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         * @return Whether the key field is set.
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string key = 1;</code>
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              key_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @return The bytes for key.
         */
        public akka.protobufv3.internal.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> envelopeBuilder_;
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         * @return Whether the envelope field is set.
         */
        public boolean hasEnvelope() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         * @return The envelope.
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
          if (envelopeBuilder_ == null) {
            return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
          } else {
            return envelopeBuilder_.getMessage();
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder setEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
          if (envelopeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            envelope_ = value;
            onChanged();
          } else {
            envelopeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder setEnvelope(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder builderForValue) {
          if (envelopeBuilder_ == null) {
            envelope_ = builderForValue.build();
            onChanged();
          } else {
            envelopeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder mergeEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
          if (envelopeBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
                envelope_ != null &&
                envelope_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance()) {
              envelope_ =
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
            } else {
              envelope_ = value;
            }
            onChanged();
          } else {
            envelopeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder clearEnvelope() {
          if (envelopeBuilder_ == null) {
            envelope_ = null;
            onChanged();
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder getEnvelopeBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getEnvelopeFieldBuilder().getBuilder();
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
          if (envelopeBuilder_ != null) {
            return envelopeBuilder_.getMessageOrBuilder();
          } else {
            return envelope_ == null ?
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> 
            getEnvelopeFieldBuilder() {
          if (envelopeBuilder_ == null) {
            envelopeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                    getEnvelope(),
                    getParentForChildren(),
                    isClean());
            envelope_ = null;
          }
          return envelopeBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Gossip.Entry)
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Gossip.Entry)
      private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Entry>
          PARSER = new akka.protobufv3.internal.AbstractParser<Entry>() {
        @java.lang.Override
        public Entry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<Entry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<Entry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int SENDBACK_FIELD_NUMBER = 1;
    private boolean sendBack_;
    /**
     * <code>required bool sendBack = 1;</code>
     * @return Whether the sendBack field is set.
     */
    public boolean hasSendBack() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bool sendBack = 1;</code>
     * @return The sendBack.
     */
    public boolean getSendBack() {
      return sendBack_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> entries_;
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    public static final int TOSYSTEMUID_FIELD_NUMBER = 3;
    private long toSystemUid_;
    /**
     * <code>optional sfixed64 toSystemUid = 3;</code>
     * @return Whether the toSystemUid field is set.
     */
    public boolean hasToSystemUid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>optional sfixed64 toSystemUid = 3;</code>
     * @return The toSystemUid.
     */
    public long getToSystemUid() {
      return toSystemUid_;
    }

    public static final int FROMSYSTEMUID_FIELD_NUMBER = 4;
    private long fromSystemUid_;
    /**
     * <code>optional sfixed64 fromSystemUid = 4;</code>
     * @return Whether the fromSystemUid field is set.
     */
    public boolean hasFromSystemUid() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional sfixed64 fromSystemUid = 4;</code>
     * @return The fromSystemUid.
     */
    public long getFromSystemUid() {
      return fromSystemUid_;
    }

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

      if (!hasSendBack()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getEntriesCount(); i++) {
        if (!getEntries(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBool(1, sendBack_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeSFixed64(3, toSystemUid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeSFixed64(4, fromSystemUid_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(1, sendBack_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed64Size(3, toSystemUid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed64Size(4, fromSystemUid_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip) obj;

      if (hasSendBack() != other.hasSendBack()) return false;
      if (hasSendBack()) {
        if (getSendBack()
            != other.getSendBack()) return false;
      }
      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (hasToSystemUid() != other.hasToSystemUid()) return false;
      if (hasToSystemUid()) {
        if (getToSystemUid()
            != other.getToSystemUid()) return false;
      }
      if (hasFromSystemUid() != other.hasFromSystemUid()) return false;
      if (hasFromSystemUid()) {
        if (getFromSystemUid()
            != other.getFromSystemUid()) 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 (hasSendBack()) {
        hash = (37 * hash) + SENDBACK_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getSendBack());
      }
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      if (hasToSystemUid()) {
        hash = (37 * hash) + TOSYSTEMUID_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getToSystemUid());
      }
      if (hasFromSystemUid()) {
        hash = (37 * hash) + FROMSYSTEMUID_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
            getFromSystemUid());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Gossip}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Gossip)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GossipOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        sendBack_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          entriesBuilder_.clear();
        }
        toSystemUid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        fromSystemUid_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.sendBack_ = sendBack_;
          to_bitField0_ |= 0x00000001;
        }
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.toSystemUid_ = toSystemUid_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.fromSystemUid_ = fromSystemUid_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.getDefaultInstance()) return this;
        if (other.hasSendBack()) {
          setSendBack(other.getSendBack());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        if (other.hasToSystemUid()) {
          setToSystemUid(other.getToSystemUid());
        }
        if (other.hasFromSystemUid()) {
          setFromSystemUid(other.getFromSystemUid());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasSendBack()) {
          return false;
        }
        for (int i = 0; i < getEntriesCount(); i++) {
          if (!getEntries(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private boolean sendBack_ ;
      /**
       * <code>required bool sendBack = 1;</code>
       * @return Whether the sendBack field is set.
       */
      public boolean hasSendBack() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bool sendBack = 1;</code>
       * @return The sendBack.
       */
      public boolean getSendBack() {
        return sendBack_;
      }
      /**
       * <code>required bool sendBack = 1;</code>
       * @param value The sendBack to set.
       * @return This builder for chaining.
       */
      public Builder setSendBack(boolean value) {
        bitField0_ |= 0x00000001;
        sendBack_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool sendBack = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSendBack() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sendBack_ = false;
        onChanged();
        return this;
      }

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder addEntries(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder addEntries(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder getEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder addEntriesBuilder() {
        return getEntriesFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder addEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.Gossip.Entry entries = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder> 
           getEntriesBuilderList() {
        return getEntriesFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder> 
          getEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      private long toSystemUid_ ;
      /**
       * <code>optional sfixed64 toSystemUid = 3;</code>
       * @return Whether the toSystemUid field is set.
       */
      public boolean hasToSystemUid() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional sfixed64 toSystemUid = 3;</code>
       * @return The toSystemUid.
       */
      public long getToSystemUid() {
        return toSystemUid_;
      }
      /**
       * <code>optional sfixed64 toSystemUid = 3;</code>
       * @param value The toSystemUid to set.
       * @return This builder for chaining.
       */
      public Builder setToSystemUid(long value) {
        bitField0_ |= 0x00000004;
        toSystemUid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 toSystemUid = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearToSystemUid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        toSystemUid_ = 0L;
        onChanged();
        return this;
      }

      private long fromSystemUid_ ;
      /**
       * <code>optional sfixed64 fromSystemUid = 4;</code>
       * @return Whether the fromSystemUid field is set.
       */
      public boolean hasFromSystemUid() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 4;</code>
       * @return The fromSystemUid.
       */
      public long getFromSystemUid() {
        return fromSystemUid_;
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 4;</code>
       * @param value The fromSystemUid to set.
       * @return This builder for chaining.
       */
      public Builder setFromSystemUid(long value) {
        bitField0_ |= 0x00000008;
        fromSystemUid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed64 fromSystemUid = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearFromSystemUid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        fromSystemUid_ = 0L;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Gossip)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Gossip)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Gossip>
        PARSER = new akka.protobufv3.internal.AbstractParser<Gossip>() {
      @java.lang.Override
      public Gossip parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Gossip(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Gossip> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Gossip> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DeltaPropagationOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.DeltaPropagation)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     * @return Whether the fromNode field is set.
     */
    boolean hasFromNode();
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     * @return The fromNode.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode();
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder();

    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> 
        getEntriesList();
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getEntries(int index);
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder getEntriesOrBuilder(
        int index);

    /**
     * <pre>
     * no reply if not set
     * </pre>
     *
     * <code>optional bool reply = 3;</code>
     * @return Whether the reply field is set.
     */
    boolean hasReply();
    /**
     * <pre>
     * no reply if not set
     * </pre>
     *
     * <code>optional bool reply = 3;</code>
     * @return The reply.
     */
    boolean getReply();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.DeltaPropagation}
   */
  public  static final class DeltaPropagation extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.DeltaPropagation)
      DeltaPropagationOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DeltaPropagation.newBuilder() to construct.
    private DeltaPropagation(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DeltaPropagation() {
      entries_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new DeltaPropagation();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DeltaPropagation(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = fromNode_.toBuilder();
              }
              fromNode_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(fromNode_);
                fromNode_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry>();
                mutable_bitField0_ |= 0x00000002;
              }
              entries_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.PARSER, extensionRegistry));
              break;
            }
            case 24: {
              bitField0_ |= 0x00000002;
              reply_ = input.readBool();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Builder.class);
    }

    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.DeltaPropagation.Entry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      akka.protobufv3.internal.ByteString
          getKeyBytes();

      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return Whether the envelope field is set.
       */
      boolean hasEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return The envelope.
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder();

      /**
       * <code>required int64 fromSeqNr = 3;</code>
       * @return Whether the fromSeqNr field is set.
       */
      boolean hasFromSeqNr();
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       * @return The fromSeqNr.
       */
      long getFromSeqNr();

      /**
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       *
       * <code>optional int64 toSeqNr = 4;</code>
       * @return Whether the toSeqNr field is set.
       */
      boolean hasToSeqNr();
      /**
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       *
       * <code>optional int64 toSeqNr = 4;</code>
       * @return The toSeqNr.
       */
      long getToSeqNr();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DeltaPropagation.Entry}
     */
    public  static final class Entry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:akka.cluster.ddata.DeltaPropagation.Entry)
        EntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Entry() {
        key_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new Entry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.protobufv3.internal.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
              case 18: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) != 0)) {
                  subBuilder = envelope_.toBuilder();
                }
                envelope_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(envelope_);
                  envelope_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                fromSeqNr_ = input.readInt64();
                break;
              }
              case 32: {
                bitField0_ |= 0x00000008;
                toSeqNr_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder.class);
      }

      private int bitField0_;
      public static final int KEY_FIELD_NUMBER = 1;
      private volatile java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       * @return Whether the key field is set.
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string key = 1;</code>
       * @return The key.
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobufv3.internal.ByteString bs = 
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       * @return The bytes for key.
       */
      public akka.protobufv3.internal.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }

      public static final int ENVELOPE_FIELD_NUMBER = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return Whether the envelope field is set.
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       * @return The envelope.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
      }

      public static final int FROMSEQNR_FIELD_NUMBER = 3;
      private long fromSeqNr_;
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       * @return Whether the fromSeqNr field is set.
       */
      public boolean hasFromSeqNr() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       * @return The fromSeqNr.
       */
      public long getFromSeqNr() {
        return fromSeqNr_;
      }

      public static final int TOSEQNR_FIELD_NUMBER = 4;
      private long toSeqNr_;
      /**
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       *
       * <code>optional int64 toSeqNr = 4;</code>
       * @return Whether the toSeqNr field is set.
       */
      public boolean hasToSeqNr() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       *
       * <code>optional int64 toSeqNr = 4;</code>
       * @return The toSeqNr.
       */
      public long getToSeqNr() {
        return toSeqNr_;
      }

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

        if (!hasKey()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasEnvelope()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasFromSeqNr()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getEnvelope().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeMessage(2, getEnvelope());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeInt64(3, fromSeqNr_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeInt64(4, toSeqNr_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, key_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(2, getEnvelope());
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(3, fromSeqNr_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(4, toSeqNr_);
        }
        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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry)) {
          return super.equals(obj);
        }
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry) obj;

        if (hasKey() != other.hasKey()) return false;
        if (hasKey()) {
          if (!getKey()
              .equals(other.getKey())) return false;
        }
        if (hasEnvelope() != other.hasEnvelope()) return false;
        if (hasEnvelope()) {
          if (!getEnvelope()
              .equals(other.getEnvelope())) return false;
        }
        if (hasFromSeqNr() != other.hasFromSeqNr()) return false;
        if (hasFromSeqNr()) {
          if (getFromSeqNr()
              != other.getFromSeqNr()) return false;
        }
        if (hasToSeqNr() != other.hasToSeqNr()) return false;
        if (hasToSeqNr()) {
          if (getToSeqNr()
              != other.getToSeqNr()) 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 (hasKey()) {
          hash = (37 * hash) + KEY_FIELD_NUMBER;
          hash = (53 * hash) + getKey().hashCode();
        }
        if (hasEnvelope()) {
          hash = (37 * hash) + ENVELOPE_FIELD_NUMBER;
          hash = (53 * hash) + getEnvelope().hashCode();
        }
        if (hasFromSeqNr()) {
          hash = (37 * hash) + FROMSEQNR_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getFromSeqNr());
        }
        if (hasToSeqNr()) {
          hash = (37 * hash) + TOSEQNR_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getToSeqNr());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry 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(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.DeltaPropagation.Entry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.DeltaPropagation.Entry)
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder.class);
        }

        // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getEnvelopeFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          if (envelopeBuilder_ == null) {
            envelope_ = null;
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          fromSeqNr_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          toSeqNr_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry build() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry buildPartial() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) != 0)) {
            if (envelopeBuilder_ == null) {
              result.envelope_ = envelope_;
            } else {
              result.envelope_ = envelopeBuilder_.build();
            }
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.fromSeqNr_ = fromSeqNr_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.toSeqNr_ = toSeqNr_;
            to_bitField0_ |= 0x00000008;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry) {
            return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry other) {
          if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.getDefaultInstance()) return this;
          if (other.hasKey()) {
            bitField0_ |= 0x00000001;
            key_ = other.key_;
            onChanged();
          }
          if (other.hasEnvelope()) {
            mergeEnvelope(other.getEnvelope());
          }
          if (other.hasFromSeqNr()) {
            setFromSeqNr(other.getFromSeqNr());
          }
          if (other.hasToSeqNr()) {
            setToSeqNr(other.getToSeqNr());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasKey()) {
            return false;
          }
          if (!hasEnvelope()) {
            return false;
          }
          if (!hasFromSeqNr()) {
            return false;
          }
          if (!getEnvelope().isInitialized()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         * @return Whether the key field is set.
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string key = 1;</code>
         * @return The key.
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            akka.protobufv3.internal.ByteString bs =
                (akka.protobufv3.internal.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              key_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @return The bytes for key.
         */
        public akka.protobufv3.internal.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobufv3.internal.ByteString b = 
                akka.protobufv3.internal.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobufv3.internal.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The key to set.
         * @return This builder for chaining.
         */
        public Builder setKey(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         * @param value The bytes for key to set.
         * @return This builder for chaining.
         */
        public Builder setKeyBytes(
            akka.protobufv3.internal.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> envelopeBuilder_;
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         * @return Whether the envelope field is set.
         */
        public boolean hasEnvelope() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         * @return The envelope.
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
          if (envelopeBuilder_ == null) {
            return envelope_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
          } else {
            return envelopeBuilder_.getMessage();
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder setEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
          if (envelopeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            envelope_ = value;
            onChanged();
          } else {
            envelopeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder setEnvelope(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder builderForValue) {
          if (envelopeBuilder_ == null) {
            envelope_ = builderForValue.build();
            onChanged();
          } else {
            envelopeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder mergeEnvelope(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope value) {
          if (envelopeBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0) &&
                envelope_ != null &&
                envelope_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance()) {
              envelope_ =
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
            } else {
              envelope_ = value;
            }
            onChanged();
          } else {
            envelopeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000002;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public Builder clearEnvelope() {
          if (envelopeBuilder_ == null) {
            envelope_ = null;
            onChanged();
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder getEnvelopeBuilder() {
          bitField0_ |= 0x00000002;
          onChanged();
          return getEnvelopeFieldBuilder().getBuilder();
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
          if (envelopeBuilder_ != null) {
            return envelopeBuilder_.getMessageOrBuilder();
          } else {
            return envelope_ == null ?
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance() : envelope_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder> 
            getEnvelopeFieldBuilder() {
          if (envelopeBuilder_ == null) {
            envelopeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                    getEnvelope(),
                    getParentForChildren(),
                    isClean());
            envelope_ = null;
          }
          return envelopeBuilder_;
        }

        private long fromSeqNr_ ;
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         * @return Whether the fromSeqNr field is set.
         */
        public boolean hasFromSeqNr() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         * @return The fromSeqNr.
         */
        public long getFromSeqNr() {
          return fromSeqNr_;
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         * @param value The fromSeqNr to set.
         * @return This builder for chaining.
         */
        public Builder setFromSeqNr(long value) {
          bitField0_ |= 0x00000004;
          fromSeqNr_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearFromSeqNr() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fromSeqNr_ = 0L;
          onChanged();
          return this;
        }

        private long toSeqNr_ ;
        /**
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         *
         * <code>optional int64 toSeqNr = 4;</code>
         * @return Whether the toSeqNr field is set.
         */
        public boolean hasToSeqNr() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         *
         * <code>optional int64 toSeqNr = 4;</code>
         * @return The toSeqNr.
         */
        public long getToSeqNr() {
          return toSeqNr_;
        }
        /**
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         *
         * <code>optional int64 toSeqNr = 4;</code>
         * @param value The toSeqNr to set.
         * @return This builder for chaining.
         */
        public Builder setToSeqNr(long value) {
          bitField0_ |= 0x00000008;
          toSeqNr_ = value;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         *
         * <code>optional int64 toSeqNr = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearToSeqNr() {
          bitField0_ = (bitField0_ & ~0x00000008);
          toSeqNr_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.DeltaPropagation.Entry)
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DeltaPropagation.Entry)
      private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Entry>
          PARSER = new akka.protobufv3.internal.AbstractParser<Entry>() {
        @java.lang.Override
        public Entry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<Entry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<Entry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int FROMNODE_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     * @return Whether the fromNode field is set.
     */
    public boolean hasFromNode() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     * @return The fromNode.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
      return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
    }

    public static final int ENTRIES_FIELD_NUMBER = 2;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> entries_;
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

    public static final int REPLY_FIELD_NUMBER = 3;
    private boolean reply_;
    /**
     * <pre>
     * no reply if not set
     * </pre>
     *
     * <code>optional bool reply = 3;</code>
     * @return Whether the reply field is set.
     */
    public boolean hasReply() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <pre>
     * no reply if not set
     * </pre>
     *
     * <code>optional bool reply = 3;</code>
     * @return The reply.
     */
    public boolean getReply() {
      return reply_;
    }

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

      if (!hasFromNode()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getFromNode().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getEntriesCount(); i++) {
        if (!getEntries(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getFromNode());
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeBool(3, reply_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getFromNode());
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBoolSize(3, reply_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation) obj;

      if (hasFromNode() != other.hasFromNode()) return false;
      if (hasFromNode()) {
        if (!getFromNode()
            .equals(other.getFromNode())) return false;
      }
      if (!getEntriesList()
          .equals(other.getEntriesList())) return false;
      if (hasReply() != other.hasReply()) return false;
      if (hasReply()) {
        if (getReply()
            != other.getReply()) 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 (hasFromNode()) {
        hash = (37 * hash) + FROMNODE_FIELD_NUMBER;
        hash = (53 * hash) + getFromNode().hashCode();
      }
      if (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      if (hasReply()) {
        hash = (37 * hash) + REPLY_FIELD_NUMBER;
        hash = (53 * hash) + akka.protobufv3.internal.Internal.hashBoolean(
            getReply());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DeltaPropagation}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.DeltaPropagation)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagationOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getFromNodeFieldBuilder();
          getEntriesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          entriesBuilder_.clear();
        }
        reply_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (fromNodeBuilder_ == null) {
            result.fromNode_ = fromNode_;
          } else {
            result.fromNode_ = fromNodeBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.reply_ = reply_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.getDefaultInstance()) return this;
        if (other.hasFromNode()) {
          mergeFromNode(other.getFromNode());
        }
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000002);
              entriesBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        if (other.hasReply()) {
          setReply(other.getReply());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasFromNode()) {
          return false;
        }
        if (!getFromNode().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getEntriesCount(); i++) {
          if (!getEntries(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> fromNodeBuilder_;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       * @return Whether the fromNode field is set.
       */
      public boolean hasFromNode() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       * @return The fromNode.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
        if (fromNodeBuilder_ == null) {
          return fromNode_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        } else {
          return fromNodeBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public Builder setFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fromNode_ = value;
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public Builder setFromNode(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
        if (fromNodeBuilder_ == null) {
          fromNode_ = builderForValue.build();
          onChanged();
        } else {
          fromNodeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public Builder mergeFromNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
        if (fromNodeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              fromNode_ != null &&
              fromNode_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
            fromNode_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(fromNode_).mergeFrom(value).buildPartial();
          } else {
            fromNode_ = value;
          }
          onChanged();
        } else {
          fromNodeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public Builder clearFromNode() {
        if (fromNodeBuilder_ == null) {
          fromNode_ = null;
          onChanged();
        } else {
          fromNodeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getFromNodeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFromNodeFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
        if (fromNodeBuilder_ != null) {
          return fromNodeBuilder_.getMessageOrBuilder();
        } else {
          return fromNode_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : fromNode_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
          getFromNodeFieldBuilder() {
        if (fromNodeBuilder_ == null) {
          fromNodeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                  getFromNode(),
                  getParentForChildren(),
                  isClean());
          fromNode_ = null;
        }
        return fromNodeBuilder_;
      }

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry>(entries_);
          bitField0_ |= 0x00000002;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder addEntries(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder addEntries(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder getEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder addEntriesBuilder() {
        return getEntriesFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder addEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder> 
           getEntriesBuilderList() {
        return getEntriesFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder> 
          getEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      private boolean reply_ ;
      /**
       * <pre>
       * no reply if not set
       * </pre>
       *
       * <code>optional bool reply = 3;</code>
       * @return Whether the reply field is set.
       */
      public boolean hasReply() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * no reply if not set
       * </pre>
       *
       * <code>optional bool reply = 3;</code>
       * @return The reply.
       */
      public boolean getReply() {
        return reply_;
      }
      /**
       * <pre>
       * no reply if not set
       * </pre>
       *
       * <code>optional bool reply = 3;</code>
       * @param value The reply to set.
       * @return This builder for chaining.
       */
      public Builder setReply(boolean value) {
        bitField0_ |= 0x00000004;
        reply_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * no reply if not set
       * </pre>
       *
       * <code>optional bool reply = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearReply() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reply_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.DeltaPropagation)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DeltaPropagation)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<DeltaPropagation>
        PARSER = new akka.protobufv3.internal.AbstractParser<DeltaPropagation>() {
      @java.lang.Override
      public DeltaPropagation parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new DeltaPropagation(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<DeltaPropagation> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<DeltaPropagation> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UniqueAddressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.UniqueAddress)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     * @return Whether the address field is set.
     */
    boolean hasAddress();
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     * @return The address.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getAddress();
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getAddressOrBuilder();

    /**
     * <code>required sfixed32 uid = 2;</code>
     * @return Whether the uid field is set.
     */
    boolean hasUid();
    /**
     * <code>required sfixed32 uid = 2;</code>
     * @return The uid.
     */
    int getUid();

    /**
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     *
     * <code>optional sfixed32 uid2 = 3;</code>
     * @return Whether the uid2 field is set.
     */
    boolean hasUid2();
    /**
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     *
     * <code>optional sfixed32 uid2 = 3;</code>
     * @return The uid2.
     */
    int getUid2();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.UniqueAddress}
   */
  public  static final class UniqueAddress extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.UniqueAddress)
      UniqueAddressOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use UniqueAddress.newBuilder() to construct.
    private UniqueAddress(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private UniqueAddress() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new UniqueAddress();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private UniqueAddress(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = address_.toBuilder();
              }
              address_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(address_);
                address_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 21: {
              bitField0_ |= 0x00000002;
              uid_ = input.readSFixed32();
              break;
            }
            case 29: {
              bitField0_ |= 0x00000004;
              uid2_ = input.readSFixed32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder.class);
    }

    private int bitField0_;
    public static final int ADDRESS_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address address_;
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     * @return Whether the address field is set.
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     * @return The address.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getAddress() {
      return address_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance() : address_;
    }
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getAddressOrBuilder() {
      return address_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance() : address_;
    }

    public static final int UID_FIELD_NUMBER = 2;
    private int uid_;
    /**
     * <code>required sfixed32 uid = 2;</code>
     * @return Whether the uid field is set.
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required sfixed32 uid = 2;</code>
     * @return The uid.
     */
    public int getUid() {
      return uid_;
    }

    public static final int UID2_FIELD_NUMBER = 3;
    private int uid2_;
    /**
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     *
     * <code>optional sfixed32 uid2 = 3;</code>
     * @return Whether the uid2 field is set.
     */
    public boolean hasUid2() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     *
     * <code>optional sfixed32 uid2 = 3;</code>
     * @return The uid2.
     */
    public int getUid2() {
      return uid2_;
    }

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

      if (!hasAddress()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasUid()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getAddress().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getAddress());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeSFixed32(2, uid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeSFixed32(3, uid2_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getAddress());
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed32Size(2, uid_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeSFixed32Size(3, uid2_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress) obj;

      if (hasAddress() != other.hasAddress()) return false;
      if (hasAddress()) {
        if (!getAddress()
            .equals(other.getAddress())) return false;
      }
      if (hasUid() != other.hasUid()) return false;
      if (hasUid()) {
        if (getUid()
            != other.getUid()) return false;
      }
      if (hasUid2() != other.hasUid2()) return false;
      if (hasUid2()) {
        if (getUid2()
            != other.getUid2()) 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 (hasAddress()) {
        hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
        hash = (53 * hash) + getAddress().hashCode();
      }
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid();
      }
      if (hasUid2()) {
        hash = (37 * hash) + UID2_FIELD_NUMBER;
        hash = (53 * hash) + getUid2();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.UniqueAddress}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.UniqueAddress)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getAddressFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (addressBuilder_ == null) {
          address_ = null;
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        uid2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (addressBuilder_ == null) {
            result.address_ = address_;
          } else {
            result.address_ = addressBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.uid_ = uid_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.uid2_ = uid2_;
          to_bitField0_ |= 0x00000004;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) return this;
        if (other.hasAddress()) {
          mergeAddress(other.getAddress());
        }
        if (other.hasUid()) {
          setUid(other.getUid());
        }
        if (other.hasUid2()) {
          setUid2(other.getUid2());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasAddress()) {
          return false;
        }
        if (!hasUid()) {
          return false;
        }
        if (!getAddress().isInitialized()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address address_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> addressBuilder_;
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       * @return Whether the address field is set.
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       * @return The address.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getAddress() {
        if (addressBuilder_ == null) {
          return address_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance() : address_;
        } else {
          return addressBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public Builder setAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address value) {
        if (addressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          address_ = value;
          onChanged();
        } else {
          addressBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public Builder setAddress(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder builderForValue) {
        if (addressBuilder_ == null) {
          address_ = builderForValue.build();
          onChanged();
        } else {
          addressBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public Builder mergeAddress(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address value) {
        if (addressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              address_ != null &&
              address_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance()) {
            address_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.newBuilder(address_).mergeFrom(value).buildPartial();
          } else {
            address_ = value;
          }
          onChanged();
        } else {
          addressBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public Builder clearAddress() {
        if (addressBuilder_ == null) {
          address_ = null;
          onChanged();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder getAddressBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAddressFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getAddressOrBuilder() {
        if (addressBuilder_ != null) {
          return addressBuilder_.getMessageOrBuilder();
        } else {
          return address_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance() : address_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder> 
          getAddressFieldBuilder() {
        if (addressBuilder_ == null) {
          addressBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder>(
                  getAddress(),
                  getParentForChildren(),
                  isClean());
          address_ = null;
        }
        return addressBuilder_;
      }

      private int uid_ ;
      /**
       * <code>required sfixed32 uid = 2;</code>
       * @return Whether the uid field is set.
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       * @return The uid.
       */
      public int getUid() {
        return uid_;
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       * @param value The uid to set.
       * @return This builder for chaining.
       */
      public Builder setUid(int value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0;
        onChanged();
        return this;
      }

      private int uid2_ ;
      /**
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       *
       * <code>optional sfixed32 uid2 = 3;</code>
       * @return Whether the uid2 field is set.
       */
      public boolean hasUid2() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       *
       * <code>optional sfixed32 uid2 = 3;</code>
       * @return The uid2.
       */
      public int getUid2() {
        return uid2_;
      }
      /**
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       *
       * <code>optional sfixed32 uid2 = 3;</code>
       * @param value The uid2 to set.
       * @return This builder for chaining.
       */
      public Builder setUid2(int value) {
        bitField0_ |= 0x00000004;
        uid2_ = value;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       *
       * <code>optional sfixed32 uid2 = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearUid2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        uid2_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.UniqueAddress)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.UniqueAddress)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<UniqueAddress>
        PARSER = new akka.protobufv3.internal.AbstractParser<UniqueAddress>() {
      @java.lang.Override
      public UniqueAddress parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new UniqueAddress(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<UniqueAddress> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<UniqueAddress> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AddressOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.Address)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required string hostname = 1;</code>
     * @return Whether the hostname field is set.
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 1;</code>
     * @return The hostname.
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 1;</code>
     * @return The bytes for hostname.
     */
    akka.protobufv3.internal.ByteString
        getHostnameBytes();

    /**
     * <code>required uint32 port = 2;</code>
     * @return Whether the port field is set.
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 2;</code>
     * @return The port.
     */
    int getPort();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Address}
   */
  public  static final class Address extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.Address)
      AddressOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Address.newBuilder() to construct.
    private Address(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Address() {
      hostname_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new Address();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Address(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              hostname_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              port_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder.class);
    }

    private int bitField0_;
    public static final int HOSTNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object hostname_;
    /**
     * <code>required string hostname = 1;</code>
     * @return Whether the hostname field is set.
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required string hostname = 1;</code>
     * @return The hostname.
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobufv3.internal.ByteString bs = 
            (akka.protobufv3.internal.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 1;</code>
     * @return The bytes for hostname.
     */
    public akka.protobufv3.internal.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobufv3.internal.ByteString b = 
            akka.protobufv3.internal.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobufv3.internal.ByteString) ref;
      }
    }

    public static final int PORT_FIELD_NUMBER = 2;
    private int port_;
    /**
     * <code>required uint32 port = 2;</code>
     * @return Whether the port field is set.
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required uint32 port = 2;</code>
     * @return The port.
     */
    public int getPort() {
      return port_;
    }

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

      if (!hasHostname()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasPort()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, hostname_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, port_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.GeneratedMessageV3.computeStringSize(1, hostname_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeUInt32Size(2, port_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address) obj;

      if (hasHostname() != other.hasHostname()) return false;
      if (hasHostname()) {
        if (!getHostname()
            .equals(other.getHostname())) return false;
      }
      if (hasPort() != other.hasPort()) return false;
      if (hasPort()) {
        if (getPort()
            != other.getPort()) 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 (hasHostname()) {
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
      }
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Address}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.Address)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.port_ = port_;
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance()) return this;
        if (other.hasHostname()) {
          bitField0_ |= 0x00000001;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasHostname()) {
          return false;
        }
        if (!hasPort()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 1;</code>
       * @return Whether the hostname field is set.
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string hostname = 1;</code>
       * @return The hostname.
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          akka.protobufv3.internal.ByteString bs =
              (akka.protobufv3.internal.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostname_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 1;</code>
       * @return The bytes for hostname.
       */
      public akka.protobufv3.internal.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobufv3.internal.ByteString b = 
              akka.protobufv3.internal.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobufv3.internal.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 1;</code>
       * @param value The hostname to set.
       * @return This builder for chaining.
       */
      public Builder setHostname(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 1;</code>
       * @param value The bytes for hostname to set.
       * @return This builder for chaining.
       */
      public Builder setHostnameBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hostname_ = value;
        onChanged();
        return this;
      }

      private int port_ ;
      /**
       * <code>required uint32 port = 2;</code>
       * @return Whether the port field is set.
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required uint32 port = 2;</code>
       * @return The port.
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 2;</code>
       * @param value The port to set.
       * @return This builder for chaining.
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000002;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.Address)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Address)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Address>
        PARSER = new akka.protobufv3.internal.AbstractParser<Address>() {
      @java.lang.Override
      public Address parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new Address(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<Address> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<Address> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface VersionVectorOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.VersionVector)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> 
        getEntriesList();
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getEntries(int index);
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    int getEntriesCount();
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder> 
        getEntriesOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder getEntriesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.VersionVector}
   */
  public  static final class VersionVector extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.VersionVector)
      VersionVectorOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use VersionVector.newBuilder() to construct.
    private VersionVector(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private VersionVector() {
      entries_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new VersionVector();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private VersionVector(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.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)) {
                entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry>();
                mutable_bitField0_ |= 0x00000001;
              }
              entries_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder.class);
    }

    public interface EntryOrBuilder extends
        // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.VersionVector.Entry)
        akka.protobufv3.internal.MessageOrBuilder {

      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       * @return Whether the node field is set.
       */
      boolean hasNode();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       * @return The node.
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getNode();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getNodeOrBuilder();

      /**
       * <code>required int64 version = 2;</code>
       * @return Whether the version field is set.
       */
      boolean hasVersion();
      /**
       * <code>required int64 version = 2;</code>
       * @return The version.
       */
      long getVersion();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.VersionVector.Entry}
     */
    public  static final class Entry extends
        akka.protobufv3.internal.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:akka.cluster.ddata.VersionVector.Entry)
        EntryOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Entry() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
        return new Entry();
      }

      @java.lang.Override
      public final akka.protobufv3.internal.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        int mutable_bitField0_ = 0;
        akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
            akka.protobufv3.internal.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) != 0)) {
                  subBuilder = node_.toBuilder();
                }
                node_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(node_);
                  node_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                version_ = input.readInt64();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobufv3.internal.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder.class);
      }

      private int bitField0_;
      public static final int NODE_FIELD_NUMBER = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress node_;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       * @return Whether the node field is set.
       */
      public boolean hasNode() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       * @return The node.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getNode() {
        return node_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : node_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getNodeOrBuilder() {
        return node_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : node_;
      }

      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_;
      /**
       * <code>required int64 version = 2;</code>
       * @return Whether the version field is set.
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int64 version = 2;</code>
       * @return The version.
       */
      public long getVersion() {
        return version_;
      }

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

        if (!hasNode()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getNode().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeMessage(1, getNode());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt64(2, version_);
        }
        unknownFields.writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeMessageSize(1, getNode());
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += akka.protobufv3.internal.CodedOutputStream
            .computeInt64Size(2, version_);
        }
        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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry)) {
          return super.equals(obj);
        }
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry) obj;

        if (hasNode() != other.hasNode()) return false;
        if (hasNode()) {
          if (!getNode()
              .equals(other.getNode())) return false;
        }
        if (hasVersion() != other.hasVersion()) return false;
        if (hasVersion()) {
          if (getVersion()
              != other.getVersion()) 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 (hasNode()) {
          hash = (37 * hash) + NODE_FIELD_NUMBER;
          hash = (53 * hash) + getNode().hashCode();
        }
        if (hasVersion()) {
          hash = (37 * hash) + VERSION_FIELD_NUMBER;
          hash = (53 * hash) + akka.protobufv3.internal.Internal.hashLong(
              getVersion());
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          java.nio.ByteBuffer data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          java.nio.ByteBuffer data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobufv3.internal.ByteString data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobufv3.internal.ByteString data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(byte[] data)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          byte[] data,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input)
          throws java.io.IOException {
        return akka.protobufv3.internal.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry 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(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.VersionVector.Entry}
       */
      public static final class Builder extends
          akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.VersionVector.Entry)
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder {
        public static final akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
        }

        @java.lang.Override
        protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder.class);
        }

        // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobufv3.internal.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
            getNodeFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (nodeBuilder_ == null) {
            node_ = null;
          } else {
            nodeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        @java.lang.Override
        public akka.protobufv3.internal.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.getDefaultInstance();
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry build() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry buildPartial() {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            if (nodeBuilder_ == null) {
              result.node_ = node_;
            } else {
              result.node_ = nodeBuilder_.build();
            }
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.version_ = version_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            akka.protobufv3.internal.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(akka.protobufv3.internal.Message other) {
          if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry) {
            return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry other) {
          if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.getDefaultInstance()) return this;
          if (other.hasNode()) {
            mergeNode(other.getNode());
          }
          if (other.hasVersion()) {
            setVersion(other.getVersion());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasNode()) {
            return false;
          }
          if (!hasVersion()) {
            return false;
          }
          if (!getNode().isInitialized()) {
            return false;
          }
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
            parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress node_;
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> nodeBuilder_;
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         * @return Whether the node field is set.
         */
        public boolean hasNode() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         * @return The node.
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getNode() {
          if (nodeBuilder_ == null) {
            return node_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : node_;
          } else {
            return nodeBuilder_.getMessage();
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public Builder setNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (nodeBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            node_ = value;
            onChanged();
          } else {
            nodeBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public Builder setNode(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder builderForValue) {
          if (nodeBuilder_ == null) {
            node_ = builderForValue.build();
            onChanged();
          } else {
            nodeBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public Builder mergeNode(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress value) {
          if (nodeBuilder_ == null) {
            if (((bitField0_ & 0x00000001) != 0) &&
                node_ != null &&
                node_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance()) {
              node_ =
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.newBuilder(node_).mergeFrom(value).buildPartial();
            } else {
              node_ = value;
            }
            onChanged();
          } else {
            nodeBuilder_.mergeFrom(value);
          }
          bitField0_ |= 0x00000001;
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public Builder clearNode() {
          if (nodeBuilder_ == null) {
            node_ = null;
            onChanged();
          } else {
            nodeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          return this;
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder getNodeBuilder() {
          bitField0_ |= 0x00000001;
          onChanged();
          return getNodeFieldBuilder().getBuilder();
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getNodeOrBuilder() {
          if (nodeBuilder_ != null) {
            return nodeBuilder_.getMessageOrBuilder();
          } else {
            return node_ == null ?
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance() : node_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        private akka.protobufv3.internal.SingleFieldBuilderV3<
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder> 
            getNodeFieldBuilder() {
          if (nodeBuilder_ == null) {
            nodeBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    getNode(),
                    getParentForChildren(),
                    isClean());
            node_ = null;
          }
          return nodeBuilder_;
        }

        private long version_ ;
        /**
         * <code>required int64 version = 2;</code>
         * @return Whether the version field is set.
         */
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required int64 version = 2;</code>
         * @return The version.
         */
        public long getVersion() {
          return version_;
        }
        /**
         * <code>required int64 version = 2;</code>
         * @param value The version to set.
         * @return This builder for chaining.
         */
        public Builder setVersion(long value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 version = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.VersionVector.Entry)
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.VersionVector.Entry)
      private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<Entry>
          PARSER = new akka.protobufv3.internal.AbstractParser<Entry>() {
        @java.lang.Override
        public Entry parsePartialFrom(
            akka.protobufv3.internal.CodedInputStream input,
            akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
            throws akka.protobufv3.internal.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

      public static akka.protobufv3.internal.Parser<Entry> parser() {
        return PARSER;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Parser<Entry> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int ENTRIES_FIELD_NUMBER = 1;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> entries_;
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> getEntriesList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder> 
        getEntriesOrBuilderList() {
      return entries_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    public int getEntriesCount() {
      return entries_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getEntries(int index) {
      return entries_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder getEntriesOrBuilder(
        int index) {
      return entries_.get(index);
    }

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

      for (int i = 0; i < getEntriesCount(); i++) {
        if (!getEntries(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(1, entries_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, entries_.get(i));
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector) obj;

      if (!getEntriesList()
          .equals(other.getEntriesList())) 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 (getEntriesCount() > 0) {
        hash = (37 * hash) + ENTRIES_FIELD_NUMBER;
        hash = (53 * hash) + getEntriesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.VersionVector}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.VersionVector)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector(this);
        int from_bitField0_ = bitField0_;
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance()) return this;
        if (entriesBuilder_ == null) {
          if (!other.entries_.isEmpty()) {
            if (entries_.isEmpty()) {
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureEntriesIsMutable();
              entries_.addAll(other.entries_);
            }
            onChanged();
          }
        } else {
          if (!other.entries_.isEmpty()) {
            if (entriesBuilder_.isEmpty()) {
              entriesBuilder_.dispose();
              entriesBuilder_ = null;
              entries_ = other.entries_;
              bitField0_ = (bitField0_ & ~0x00000001);
              entriesBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getEntriesCount(); i++) {
          if (!getEntries(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> entries_ =
        java.util.Collections.emptyList();
      private void ensureEntriesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          entries_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry>(entries_);
          bitField0_ |= 0x00000001;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder> entriesBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> getEntriesList() {
        if (entriesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(entries_);
        } else {
          return entriesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public int getEntriesCount() {
        if (entriesBuilder_ == null) {
          return entries_.size();
        } else {
          return entriesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getEntries(int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);
        } else {
          return entriesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.set(index, value);
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder setEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.set(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder addEntries(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry value) {
        if (entriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEntriesIsMutable();
          entries_.add(index, value);
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder addEntries(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder addEntries(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder builderForValue) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.add(index, builderForValue.build());
          onChanged();
        } else {
          entriesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder addAllEntries(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry> values) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, entries_);
          onChanged();
        } else {
          entriesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder clearEntries() {
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public Builder removeEntries(int index) {
        if (entriesBuilder_ == null) {
          ensureEntriesIsMutable();
          entries_.remove(index);
          onChanged();
        } else {
          entriesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder getEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder getEntriesOrBuilder(
          int index) {
        if (entriesBuilder_ == null) {
          return entries_.get(index);  } else {
          return entriesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder> 
           getEntriesOrBuilderList() {
        if (entriesBuilder_ != null) {
          return entriesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(entries_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder addEntriesBuilder() {
        return getEntriesFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder addEntriesBuilder(
          int index) {
        return getEntriesFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder> 
           getEntriesBuilderList() {
        return getEntriesFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder> 
          getEntriesFieldBuilder() {
        if (entriesBuilder_ == null) {
          entriesBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder>(
                  entries_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.VersionVector)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.VersionVector)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<VersionVector>
        PARSER = new akka.protobufv3.internal.AbstractParser<VersionVector>() {
      @java.lang.Override
      public VersionVector parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new VersionVector(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<VersionVector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<VersionVector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OtherMessageOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.OtherMessage)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required bytes enclosedMessage = 1;</code>
     * @return Whether the enclosedMessage field is set.
     */
    boolean hasEnclosedMessage();
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     * @return The enclosedMessage.
     */
    akka.protobufv3.internal.ByteString getEnclosedMessage();

    /**
     * <code>required int32 serializerId = 2;</code>
     * @return Whether the serializerId field is set.
     */
    boolean hasSerializerId();
    /**
     * <code>required int32 serializerId = 2;</code>
     * @return The serializerId.
     */
    int getSerializerId();

    /**
     * <code>optional bytes messageManifest = 4;</code>
     * @return Whether the messageManifest field is set.
     */
    boolean hasMessageManifest();
    /**
     * <code>optional bytes messageManifest = 4;</code>
     * @return The messageManifest.
     */
    akka.protobufv3.internal.ByteString getMessageManifest();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.OtherMessage}
   */
  public  static final class OtherMessage extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.OtherMessage)
      OtherMessageOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OtherMessage.newBuilder() to construct.
    private OtherMessage(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OtherMessage() {
      enclosedMessage_ = akka.protobufv3.internal.ByteString.EMPTY;
      messageManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new OtherMessage();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OtherMessage(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              bitField0_ |= 0x00000001;
              enclosedMessage_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              serializerId_ = input.readInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000004;
              messageManifest_ = input.readBytes();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder.class);
    }

    private int bitField0_;
    public static final int ENCLOSEDMESSAGE_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.ByteString enclosedMessage_;
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     * @return Whether the enclosedMessage field is set.
     */
    public boolean hasEnclosedMessage() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     * @return The enclosedMessage.
     */
    public akka.protobufv3.internal.ByteString getEnclosedMessage() {
      return enclosedMessage_;
    }

    public static final int SERIALIZERID_FIELD_NUMBER = 2;
    private int serializerId_;
    /**
     * <code>required int32 serializerId = 2;</code>
     * @return Whether the serializerId field is set.
     */
    public boolean hasSerializerId() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * <code>required int32 serializerId = 2;</code>
     * @return The serializerId.
     */
    public int getSerializerId() {
      return serializerId_;
    }

    public static final int MESSAGEMANIFEST_FIELD_NUMBER = 4;
    private akka.protobufv3.internal.ByteString messageManifest_;
    /**
     * <code>optional bytes messageManifest = 4;</code>
     * @return Whether the messageManifest field is set.
     */
    public boolean hasMessageManifest() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * <code>optional bytes messageManifest = 4;</code>
     * @return The messageManifest.
     */
    public akka.protobufv3.internal.ByteString getMessageManifest() {
      return messageManifest_;
    }

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

      if (!hasEnclosedMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSerializerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeBytes(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(4, messageManifest_);
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBytesSize(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeInt32Size(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeBytesSize(4, messageManifest_);
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage) obj;

      if (hasEnclosedMessage() != other.hasEnclosedMessage()) return false;
      if (hasEnclosedMessage()) {
        if (!getEnclosedMessage()
            .equals(other.getEnclosedMessage())) return false;
      }
      if (hasSerializerId() != other.hasSerializerId()) return false;
      if (hasSerializerId()) {
        if (getSerializerId()
            != other.getSerializerId()) return false;
      }
      if (hasMessageManifest() != other.hasMessageManifest()) return false;
      if (hasMessageManifest()) {
        if (!getMessageManifest()
            .equals(other.getMessageManifest())) 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 (hasEnclosedMessage()) {
        hash = (37 * hash) + ENCLOSEDMESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getEnclosedMessage().hashCode();
      }
      if (hasSerializerId()) {
        hash = (37 * hash) + SERIALIZERID_FIELD_NUMBER;
        hash = (53 * hash) + getSerializerId();
      }
      if (hasMessageManifest()) {
        hash = (37 * hash) + MESSAGEMANIFEST_FIELD_NUMBER;
        hash = (53 * hash) + getMessageManifest().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.OtherMessage}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.OtherMessage)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        enclosedMessage_ = akka.protobufv3.internal.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        serializerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          to_bitField0_ |= 0x00000001;
        }
        result.enclosedMessage_ = enclosedMessage_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.serializerId_ = serializerId_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageManifest_ = messageManifest_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) return this;
        if (other.hasEnclosedMessage()) {
          setEnclosedMessage(other.getEnclosedMessage());
        }
        if (other.hasSerializerId()) {
          setSerializerId(other.getSerializerId());
        }
        if (other.hasMessageManifest()) {
          setMessageManifest(other.getMessageManifest());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasEnclosedMessage()) {
          return false;
        }
        if (!hasSerializerId()) {
          return false;
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.ByteString enclosedMessage_ = akka.protobufv3.internal.ByteString.EMPTY;
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       * @return Whether the enclosedMessage field is set.
       */
      public boolean hasEnclosedMessage() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       * @return The enclosedMessage.
       */
      public akka.protobufv3.internal.ByteString getEnclosedMessage() {
        return enclosedMessage_;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       * @param value The enclosedMessage to set.
       * @return This builder for chaining.
       */
      public Builder setEnclosedMessage(akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        enclosedMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearEnclosedMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        enclosedMessage_ = getDefaultInstance().getEnclosedMessage();
        onChanged();
        return this;
      }

      private int serializerId_ ;
      /**
       * <code>required int32 serializerId = 2;</code>
       * @return Whether the serializerId field is set.
       */
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       * @return The serializerId.
       */
      public int getSerializerId() {
        return serializerId_;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       * @param value The serializerId to set.
       * @return This builder for chaining.
       */
      public Builder setSerializerId(int value) {
        bitField0_ |= 0x00000002;
        serializerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearSerializerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serializerId_ = 0;
        onChanged();
        return this;
      }

      private akka.protobufv3.internal.ByteString messageManifest_ = akka.protobufv3.internal.ByteString.EMPTY;
      /**
       * <code>optional bytes messageManifest = 4;</code>
       * @return Whether the messageManifest field is set.
       */
      public boolean hasMessageManifest() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       * @return The messageManifest.
       */
      public akka.protobufv3.internal.ByteString getMessageManifest() {
        return messageManifest_;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       * @param value The messageManifest to set.
       * @return This builder for chaining.
       */
      public Builder setMessageManifest(akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageManifest_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearMessageManifest() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageManifest_ = getDefaultInstance().getMessageManifest();
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.OtherMessage)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.OtherMessage)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<OtherMessage>
        PARSER = new akka.protobufv3.internal.AbstractParser<OtherMessage>() {
      @java.lang.Override
      public OtherMessage parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new OtherMessage(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<OtherMessage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<OtherMessage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface StringGSetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.StringGSet)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>repeated string elements = 1;</code>
     * @return A list containing the elements.
     */
    java.util.List<java.lang.String>
        getElementsList();
    /**
     * <code>repeated string elements = 1;</code>
     * @return The count of elements.
     */
    int getElementsCount();
    /**
     * <code>repeated string elements = 1;</code>
     * @param index The index of the element to return.
     * @return The elements at the given index.
     */
    java.lang.String getElements(int index);
    /**
     * <code>repeated string elements = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the elements at the given index.
     */
    akka.protobufv3.internal.ByteString
        getElementsBytes(int index);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.StringGSet}
   */
  public  static final class StringGSet extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.StringGSet)
      StringGSetOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use StringGSet.newBuilder() to construct.
    private StringGSet(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private StringGSet() {
      elements_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new StringGSet();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private StringGSet(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.protobufv3.internal.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                elements_ = new akka.protobufv3.internal.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              elements_.add(bs);
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          elements_ = elements_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.Builder.class);
    }

    public static final int ELEMENTS_FIELD_NUMBER = 1;
    private akka.protobufv3.internal.LazyStringList elements_;
    /**
     * <code>repeated string elements = 1;</code>
     * @return A list containing the elements.
     */
    public akka.protobufv3.internal.ProtocolStringList
        getElementsList() {
      return elements_;
    }
    /**
     * <code>repeated string elements = 1;</code>
     * @return The count of elements.
     */
    public int getElementsCount() {
      return elements_.size();
    }
    /**
     * <code>repeated string elements = 1;</code>
     * @param index The index of the element to return.
     * @return The elements at the given index.
     */
    public java.lang.String getElements(int index) {
      return elements_.get(index);
    }
    /**
     * <code>repeated string elements = 1;</code>
     * @param index The index of the value to return.
     * @return The bytes of the elements at the given index.
     */
    public akka.protobufv3.internal.ByteString
        getElementsBytes(int index) {
      return elements_.getByteString(index);
    }

    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(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < elements_.size(); i++) {
        akka.protobufv3.internal.GeneratedMessageV3.writeString(output, 1, elements_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < elements_.size(); i++) {
          dataSize += computeStringSizeNoTag(elements_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getElementsList().size();
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet) obj;

      if (!getElementsList()
          .equals(other.getElementsList())) 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 (getElementsCount() > 0) {
        hash = (37 * hash) + ELEMENTS_FIELD_NUMBER;
        hash = (53 * hash) + getElementsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.StringGSet}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.StringGSet)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSetOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        elements_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) != 0)) {
          elements_ = elements_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.elements_ = elements_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.getDefaultInstance()) return this;
        if (!other.elements_.isEmpty()) {
          if (elements_.isEmpty()) {
            elements_ = other.elements_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureElementsIsMutable();
            elements_.addAll(other.elements_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.protobufv3.internal.LazyStringList elements_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
      private void ensureElementsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          elements_ = new akka.protobufv3.internal.LazyStringArrayList(elements_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @return A list containing the elements.
       */
      public akka.protobufv3.internal.ProtocolStringList
          getElementsList() {
        return elements_.getUnmodifiableView();
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @return The count of elements.
       */
      public int getElementsCount() {
        return elements_.size();
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param index The index of the element to return.
       * @return The elements at the given index.
       */
      public java.lang.String getElements(int index) {
        return elements_.get(index);
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param index The index of the value to return.
       * @return The bytes of the elements at the given index.
       */
      public akka.protobufv3.internal.ByteString
          getElementsBytes(int index) {
        return elements_.getByteString(index);
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param index The index to set the value at.
       * @param value The elements to set.
       * @return This builder for chaining.
       */
      public Builder setElements(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureElementsIsMutable();
        elements_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param value The elements to add.
       * @return This builder for chaining.
       */
      public Builder addElements(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureElementsIsMutable();
        elements_.add(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param values The elements to add.
       * @return This builder for chaining.
       */
      public Builder addAllElements(
          java.lang.Iterable<java.lang.String> values) {
        ensureElementsIsMutable();
        akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
            values, elements_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearElements() {
        elements_ = akka.protobufv3.internal.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       * @param value The bytes of the elements to add.
       * @return This builder for chaining.
       */
      public Builder addElementsBytes(
          akka.protobufv3.internal.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureElementsIsMutable();
        elements_.add(value);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.StringGSet)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.StringGSet)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<StringGSet>
        PARSER = new akka.protobufv3.internal.AbstractParser<StringGSet>() {
      @java.lang.Override
      public StringGSet parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new StringGSet(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<StringGSet> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<StringGSet> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface DurableDataEnvelopeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:akka.cluster.ddata.DurableDataEnvelope)
      akka.protobufv3.internal.MessageOrBuilder {

    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return Whether the data field is set.
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return The data.
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder();

    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> 
        getPruningList();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index);
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    int getPruningCount();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
        getPruningOrBuilderList();
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.DurableDataEnvelope}
   */
  public  static final class DurableDataEnvelope extends
      akka.protobufv3.internal.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:akka.cluster.ddata.DurableDataEnvelope)
      DurableDataEnvelopeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use DurableDataEnvelope.newBuilder() to construct.
    private DurableDataEnvelope(akka.protobufv3.internal.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private DurableDataEnvelope() {
      pruning_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        akka.protobufv3.internal.GeneratedMessageV3.UnusedPrivateParameter unused) {
      return new DurableDataEnvelope();
    }

    @java.lang.Override
    public final akka.protobufv3.internal.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private DurableDataEnvelope(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      akka.protobufv3.internal.UnknownFieldSet.Builder unknownFields =
          akka.protobufv3.internal.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) != 0)) {
                subBuilder = data_.toBuilder();
              }
              data_ = input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(data_);
                data_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                pruning_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry>();
                mutable_bitField0_ |= 0x00000002;
              }
              pruning_.add(
                  input.readMessage(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.PARSER, extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobufv3.internal.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          pruning_ = java.util.Collections.unmodifiableList(pruning_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobufv3.internal.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
    }

    @java.lang.Override
    protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.Builder.class);
    }

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return Whether the data field is set.
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     * @return The data.
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
    }

    public static final int PRUNING_FIELD_NUMBER = 2;
    private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> pruning_;
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> getPruningList() {
      return pruning_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
        getPruningOrBuilderList() {
      return pruning_;
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public int getPruningCount() {
      return pruning_.size();
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index) {
      return pruning_.get(index);
    }
    /**
     * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
        int index) {
      return pruning_.get(index);
    }

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

      if (!hasData()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!getData().isInitialized()) {
        memoizedIsInitialized = 0;
        return false;
      }
      for (int i = 0; i < getPruningCount(); i++) {
        if (!getPruning(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(akka.protobufv3.internal.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeMessage(1, getData());
      }
      for (int i = 0; i < pruning_.size(); i++) {
        output.writeMessage(2, pruning_.get(i));
      }
      unknownFields.writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(1, getData());
      }
      for (int i = 0; i < pruning_.size(); i++) {
        size += akka.protobufv3.internal.CodedOutputStream
          .computeMessageSize(2, pruning_.get(i));
      }
      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 akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope)) {
        return super.equals(obj);
      }
      akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope other = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope) obj;

      if (hasData() != other.hasData()) return false;
      if (hasData()) {
        if (!getData()
            .equals(other.getData())) return false;
      }
      if (!getPruningList()
          .equals(other.getPruningList())) 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 (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      if (getPruningCount() > 0) {
        hash = (37 * hash) + PRUNING_FIELD_NUMBER;
        hash = (53 * hash) + getPruningList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        java.nio.ByteBuffer data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        java.nio.ByteBuffer data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobufv3.internal.ByteString data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobufv3.internal.ByteString data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(byte[] data)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        byte[] data,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws akka.protobufv3.internal.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobufv3.internal.CodedInputStream input)
        throws java.io.IOException {
      return akka.protobufv3.internal.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobufv3.internal.CodedInputStream input,
        akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return akka.protobufv3.internal.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(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope 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(
        akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DurableDataEnvelope}
     */
    public static final class Builder extends
        akka.protobufv3.internal.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:akka.cluster.ddata.DurableDataEnvelope)
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelopeOrBuilder {
      public static final akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
      }

      @java.lang.Override
      protected akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.class, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.Builder.class);
      }

      // Construct using akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          akka.protobufv3.internal.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobufv3.internal.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getDataFieldBuilder();
          getPruningFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (dataBuilder_ == null) {
          data_ = null;
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          pruningBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public akka.protobufv3.internal.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.getDefaultInstance();
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope build() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope buildPartial() {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope result = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          if (dataBuilder_ == null) {
            result.data_ = data_;
          } else {
            result.data_ = dataBuilder_.build();
          }
          to_bitField0_ |= 0x00000001;
        }
        if (pruningBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            pruning_ = java.util.Collections.unmodifiableList(pruning_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.pruning_ = pruning_;
        } else {
          result.pruning_ = pruningBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          akka.protobufv3.internal.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          akka.protobufv3.internal.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(akka.protobufv3.internal.Message other) {
        if (other instanceof akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope) {
          return mergeFrom((akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope other) {
        if (other == akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.getDefaultInstance()) return this;
        if (other.hasData()) {
          mergeData(other.getData());
        }
        if (pruningBuilder_ == null) {
          if (!other.pruning_.isEmpty()) {
            if (pruning_.isEmpty()) {
              pruning_ = other.pruning_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePruningIsMutable();
              pruning_.addAll(other.pruning_);
            }
            onChanged();
          }
        } else {
          if (!other.pruning_.isEmpty()) {
            if (pruningBuilder_.isEmpty()) {
              pruningBuilder_.dispose();
              pruningBuilder_ = null;
              pruning_ = other.pruning_;
              bitField0_ = (bitField0_ & ~0x00000002);
              pruningBuilder_ = 
                akka.protobufv3.internal.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getPruningFieldBuilder() : null;
            } else {
              pruningBuilder_.addAllMessages(other.pruning_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        if (!hasData()) {
          return false;
        }
        if (!getData().isInitialized()) {
          return false;
        }
        for (int i = 0; i < getPruningCount(); i++) {
          if (!getPruning(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobufv3.internal.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_;
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> dataBuilder_;
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       * @return Whether the data field is set.
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       * @return The data.
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return data_ == null ? akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        } else {
          return dataBuilder_.getMessage();
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder setData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          data_ = value;
          onChanged();
        } else {
          dataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder setData(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder builderForValue) {
        if (dataBuilder_ == null) {
          data_ = builderForValue.build();
          onChanged();
        } else {
          dataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder mergeData(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage value) {
        if (dataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
              data_ != null &&
              data_ != akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance()) {
            data_ =
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.newBuilder(data_).mergeFrom(value).buildPartial();
          } else {
            data_ = value;
          }
          onChanged();
        } else {
          dataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public Builder clearData() {
        if (dataBuilder_ == null) {
          data_ = null;
          onChanged();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder getDataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDataFieldBuilder().getBuilder();
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
        if (dataBuilder_ != null) {
          return dataBuilder_.getMessageOrBuilder();
        } else {
          return data_ == null ?
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance() : data_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      private akka.protobufv3.internal.SingleFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder> 
          getDataFieldBuilder() {
        if (dataBuilder_ == null) {
          dataBuilder_ = new akka.protobufv3.internal.SingleFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  getData(),
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      private java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> pruning_ =
        java.util.Collections.emptyList();
      private void ensurePruningIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          pruning_ = new java.util.ArrayList<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry>(pruning_);
          bitField0_ |= 0x00000002;
         }
      }

      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> pruningBuilder_;

      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> getPruningList() {
        if (pruningBuilder_ == null) {
          return java.util.Collections.unmodifiableList(pruning_);
        } else {
          return pruningBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public int getPruningCount() {
        if (pruningBuilder_ == null) {
          return pruning_.size();
        } else {
          return pruningBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry getPruning(int index) {
        if (pruningBuilder_ == null) {
          return pruning_.get(index);
        } else {
          return pruningBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder setPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.set(index, value);
          onChanged();
        } else {
          pruningBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder setPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.set(index, builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.add(value);
          onChanged();
        } else {
          pruningBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry value) {
        if (pruningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePruningIsMutable();
          pruning_.add(index, value);
          onChanged();
        } else {
          pruningBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.add(builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addPruning(
          int index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder builderForValue) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.add(index, builderForValue.build());
          onChanged();
        } else {
          pruningBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder addAllPruning(
          java.lang.Iterable<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry> values) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          akka.protobufv3.internal.AbstractMessageLite.Builder.addAll(
              values, pruning_);
          onChanged();
        } else {
          pruningBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder clearPruning() {
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          pruningBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public Builder removePruning(int index) {
        if (pruningBuilder_ == null) {
          ensurePruningIsMutable();
          pruning_.remove(index);
          onChanged();
        } else {
          pruningBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder getPruningBuilder(
          int index) {
        return getPruningFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder getPruningOrBuilder(
          int index) {
        if (pruningBuilder_ == null) {
          return pruning_.get(index);  } else {
          return pruningBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<? extends akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
           getPruningOrBuilderList() {
        if (pruningBuilder_ != null) {
          return pruningBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(pruning_);
        }
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder addPruningBuilder() {
        return getPruningFieldBuilder().addBuilder(
            akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder addPruningBuilder(
          int index) {
        return getPruningFieldBuilder().addBuilder(
            index, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.getDefaultInstance());
      }
      /**
       * <code>repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;</code>
       */
      public java.util.List<akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder> 
           getPruningBuilderList() {
        return getPruningFieldBuilder().getBuilderList();
      }
      private akka.protobufv3.internal.RepeatedFieldBuilderV3<
          akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder> 
          getPruningFieldBuilder() {
        if (pruningBuilder_ == null) {
          pruningBuilder_ = new akka.protobufv3.internal.RepeatedFieldBuilderV3<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder>(
                  pruning_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          pruning_ = null;
        }
        return pruningBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final akka.protobufv3.internal.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:akka.cluster.ddata.DurableDataEnvelope)
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DurableDataEnvelope)
    private static final akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated public static final akka.protobufv3.internal.Parser<DurableDataEnvelope>
        PARSER = new akka.protobufv3.internal.AbstractParser<DurableDataEnvelope>() {
      @java.lang.Override
      public DurableDataEnvelope parsePartialFrom(
          akka.protobufv3.internal.CodedInputStream input,
          akka.protobufv3.internal.ExtensionRegistryLite extensionRegistry)
          throws akka.protobufv3.internal.InvalidProtocolBufferException {
        return new DurableDataEnvelope(input, extensionRegistry);
      }
    };

    public static akka.protobufv3.internal.Parser<DurableDataEnvelope> parser() {
      return PARSER;
    }

    @java.lang.Override
    public akka.protobufv3.internal.Parser<DurableDataEnvelope> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Get_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Get_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_GetSuccess_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_NotFound_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_NotFound_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_GetFailure_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_GetFailure_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Subscribe_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Subscribe_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Unsubscribe_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Changed_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Changed_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Write_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Write_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Empty_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Empty_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Read_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Read_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_ReadResult_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_DataEnvelope_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Status_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Status_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Status_Entry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Status_Entry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Gossip_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Gossip_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Gossip_Entry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_DeltaPropagation_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_DeltaPropagation_Entry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_UniqueAddress_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Address_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_Address_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_VersionVector_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_VersionVector_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_VersionVector_Entry_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_OtherMessage_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_OtherMessage_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_StringGSet_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_StringGSet_fieldAccessorTable;
  private static final akka.protobufv3.internal.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
  private static final 
    akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable
      internal_static_akka_cluster_ddata_DurableDataEnvelope_fieldAccessorTable;

  public static akka.protobufv3.internal.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  akka.protobufv3.internal.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\030ReplicatorMessages.proto\022\022akka.cluster" +
      ".ddata\"\307\001\n\003Get\022-\n\003key\030\001 \002(\0132 .akka.clust" +
      "er.ddata.OtherMessage\022\023\n\013consistency\030\002 \002" +
      "(\021\022\017\n\007timeout\030\003 \002(\r\0221\n\007request\030\004 \001(\0132 .a" +
      "kka.cluster.ddata.OtherMessage\022\031\n\021consis" +
      "tencyMinCap\030\005 \001(\005\022\035\n\025consistencyAddition" +
      "al\030\006 \001(\005\"\236\001\n\nGetSuccess\022-\n\003key\030\001 \002(\0132 .a" +
      "kka.cluster.ddata.OtherMessage\022.\n\004data\030\002" +
      " \002(\0132 .akka.cluster.ddata.OtherMessage\0221" +
      "\n\007request\030\004 \001(\0132 .akka.cluster.ddata.Oth" +
      "erMessage\"l\n\010NotFound\022-\n\003key\030\001 \002(\0132 .akk" +
      "a.cluster.ddata.OtherMessage\0221\n\007request\030" +
      "\002 \001(\0132 .akka.cluster.ddata.OtherMessage\"" +
      "n\n\nGetFailure\022-\n\003key\030\001 \002(\0132 .akka.cluste" +
      "r.ddata.OtherMessage\0221\n\007request\030\002 \001(\0132 ." +
      "akka.cluster.ddata.OtherMessage\"G\n\tSubsc" +
      "ribe\022-\n\003key\030\001 \002(\0132 .akka.cluster.ddata.O" +
      "therMessage\022\013\n\003ref\030\002 \002(\t\"I\n\013Unsubscribe\022" +
      "-\n\003key\030\001 \002(\0132 .akka.cluster.ddata.OtherM" +
      "essage\022\013\n\003ref\030\002 \002(\t\"h\n\007Changed\022-\n\003key\030\001 " +
      "\002(\0132 .akka.cluster.ddata.OtherMessage\022.\n" +
      "\004data\030\002 \002(\0132 .akka.cluster.ddata.OtherMe" +
      "ssage\"}\n\005Write\022\013\n\003key\030\001 \002(\t\0222\n\010envelope\030" +
      "\002 \002(\0132 .akka.cluster.ddata.DataEnvelope\022" +
      "3\n\010fromNode\030\003 \001(\0132!.akka.cluster.ddata.U" +
      "niqueAddress\"\007\n\005Empty\"H\n\004Read\022\013\n\003key\030\001 \002" +
      "(\t\0223\n\010fromNode\030\002 \001(\0132!.akka.cluster.ddat" +
      "a.UniqueAddress\"@\n\nReadResult\0222\n\010envelop" +
      "e\030\001 \001(\0132 .akka.cluster.ddata.DataEnvelop" +
      "e\"\221\003\n\014DataEnvelope\022.\n\004data\030\001 \002(\0132 .akka." +
      "cluster.ddata.OtherMessage\022>\n\007pruning\030\002 " +
      "\003(\0132-.akka.cluster.ddata.DataEnvelope.Pr" +
      "uningEntry\0228\n\rdeltaVersions\030\003 \001(\0132!.akka" +
      ".cluster.ddata.VersionVector\032\326\001\n\014Pruning" +
      "Entry\0229\n\016removedAddress\030\001 \002(\0132!.akka.clu" +
      "ster.ddata.UniqueAddress\0227\n\014ownerAddress" +
      "\030\002 \002(\0132!.akka.cluster.ddata.UniqueAddres" +
      "s\022\021\n\tperformed\030\003 \002(\010\022)\n\004seen\030\004 \003(\0132\033.akk" +
      "a.cluster.ddata.Address\022\024\n\014obsoleteTime\030" +
      "\005 \001(\022\"\257\001\n\006Status\022\r\n\005chunk\030\001 \002(\r\022\021\n\ttotCh" +
      "unks\030\002 \002(\r\0221\n\007entries\030\003 \003(\0132 .akka.clust" +
      "er.ddata.Status.Entry\022\023\n\013toSystemUid\030\004 \001" +
      "(\020\022\025\n\rfromSystemUid\030\005 \001(\020\032$\n\005Entry\022\013\n\003ke" +
      "y\030\001 \002(\t\022\016\n\006digest\030\002 \002(\014\"\303\001\n\006Gossip\022\020\n\010se" +
      "ndBack\030\001 \002(\010\0221\n\007entries\030\002 \003(\0132 .akka.clu" +
      "ster.ddata.Gossip.Entry\022\023\n\013toSystemUid\030\003" +
      " \001(\020\022\025\n\rfromSystemUid\030\004 \001(\020\032H\n\005Entry\022\013\n\003" +
      "key\030\001 \002(\t\0222\n\010envelope\030\002 \002(\0132 .akka.clust" +
      "er.ddata.DataEnvelope\"\201\002\n\020DeltaPropagati" +
      "on\0223\n\010fromNode\030\001 \002(\0132!.akka.cluster.ddat" +
      "a.UniqueAddress\022;\n\007entries\030\002 \003(\0132*.akka." +
      "cluster.ddata.DeltaPropagation.Entry\022\r\n\005" +
      "reply\030\003 \001(\010\032l\n\005Entry\022\013\n\003key\030\001 \002(\t\0222\n\010env" +
      "elope\030\002 \002(\0132 .akka.cluster.ddata.DataEnv" +
      "elope\022\021\n\tfromSeqNr\030\003 \002(\003\022\017\n\007toSeqNr\030\004 \001(" +
      "\003\"X\n\rUniqueAddress\022,\n\007address\030\001 \002(\0132\033.ak" +
      "ka.cluster.ddata.Address\022\013\n\003uid\030\002 \002(\017\022\014\n" +
      "\004uid2\030\003 \001(\017\")\n\007Address\022\020\n\010hostname\030\001 \002(\t" +
      "\022\014\n\004port\030\002 \002(\r\"\224\001\n\rVersionVector\0228\n\007entr" +
      "ies\030\001 \003(\0132\'.akka.cluster.ddata.VersionVe" +
      "ctor.Entry\032I\n\005Entry\022/\n\004node\030\001 \002(\0132!.akka" +
      ".cluster.ddata.UniqueAddress\022\017\n\007version\030" +
      "\002 \002(\003\"V\n\014OtherMessage\022\027\n\017enclosedMessage" +
      "\030\001 \002(\014\022\024\n\014serializerId\030\002 \002(\005\022\027\n\017messageM" +
      "anifest\030\004 \001(\014\"\036\n\nStringGSet\022\020\n\010elements\030" +
      "\001 \003(\t\"\205\001\n\023DurableDataEnvelope\022.\n\004data\030\001 " +
      "\002(\0132 .akka.cluster.ddata.OtherMessage\022>\n" +
      "\007pruning\030\002 \003(\0132-.akka.cluster.ddata.Data" +
      "Envelope.PruningEntryB#\n\037akka.cluster.dd" +
      "ata.protobuf.msgH\001"
    };
    descriptor = akka.protobufv3.internal.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobufv3.internal.Descriptors.FileDescriptor[] {
        });
    internal_static_akka_cluster_ddata_Get_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_akka_cluster_ddata_Get_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Get_descriptor,
        new java.lang.String[] { "Key", "Consistency", "Timeout", "Request", "ConsistencyMinCap", "ConsistencyAdditional", });
    internal_static_akka_cluster_ddata_GetSuccess_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_GetSuccess_descriptor,
        new java.lang.String[] { "Key", "Data", "Request", });
    internal_static_akka_cluster_ddata_NotFound_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_akka_cluster_ddata_NotFound_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_NotFound_descriptor,
        new java.lang.String[] { "Key", "Request", });
    internal_static_akka_cluster_ddata_GetFailure_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_akka_cluster_ddata_GetFailure_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_GetFailure_descriptor,
        new java.lang.String[] { "Key", "Request", });
    internal_static_akka_cluster_ddata_Subscribe_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_akka_cluster_ddata_Subscribe_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Subscribe_descriptor,
        new java.lang.String[] { "Key", "Ref", });
    internal_static_akka_cluster_ddata_Unsubscribe_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_akka_cluster_ddata_Unsubscribe_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Unsubscribe_descriptor,
        new java.lang.String[] { "Key", "Ref", });
    internal_static_akka_cluster_ddata_Changed_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_akka_cluster_ddata_Changed_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Changed_descriptor,
        new java.lang.String[] { "Key", "Data", });
    internal_static_akka_cluster_ddata_Write_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_akka_cluster_ddata_Write_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Write_descriptor,
        new java.lang.String[] { "Key", "Envelope", "FromNode", });
    internal_static_akka_cluster_ddata_Empty_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_akka_cluster_ddata_Empty_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Empty_descriptor,
        new java.lang.String[] { });
    internal_static_akka_cluster_ddata_Read_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_akka_cluster_ddata_Read_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Read_descriptor,
        new java.lang.String[] { "Key", "FromNode", });
    internal_static_akka_cluster_ddata_ReadResult_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_ReadResult_descriptor,
        new java.lang.String[] { "Envelope", });
    internal_static_akka_cluster_ddata_DataEnvelope_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_akka_cluster_ddata_DataEnvelope_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_DataEnvelope_descriptor,
        new java.lang.String[] { "Data", "Pruning", "DeltaVersions", });
    internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor =
      internal_static_akka_cluster_ddata_DataEnvelope_descriptor.getNestedTypes().get(0);
    internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor,
        new java.lang.String[] { "RemovedAddress", "OwnerAddress", "Performed", "Seen", "ObsoleteTime", });
    internal_static_akka_cluster_ddata_Status_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_akka_cluster_ddata_Status_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Status_descriptor,
        new java.lang.String[] { "Chunk", "TotChunks", "Entries", "ToSystemUid", "FromSystemUid", });
    internal_static_akka_cluster_ddata_Status_Entry_descriptor =
      internal_static_akka_cluster_ddata_Status_descriptor.getNestedTypes().get(0);
    internal_static_akka_cluster_ddata_Status_Entry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Status_Entry_descriptor,
        new java.lang.String[] { "Key", "Digest", });
    internal_static_akka_cluster_ddata_Gossip_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_akka_cluster_ddata_Gossip_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Gossip_descriptor,
        new java.lang.String[] { "SendBack", "Entries", "ToSystemUid", "FromSystemUid", });
    internal_static_akka_cluster_ddata_Gossip_Entry_descriptor =
      internal_static_akka_cluster_ddata_Gossip_descriptor.getNestedTypes().get(0);
    internal_static_akka_cluster_ddata_Gossip_Entry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Gossip_Entry_descriptor,
        new java.lang.String[] { "Key", "Envelope", });
    internal_static_akka_cluster_ddata_DeltaPropagation_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_akka_cluster_ddata_DeltaPropagation_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_DeltaPropagation_descriptor,
        new java.lang.String[] { "FromNode", "Entries", "Reply", });
    internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor =
      internal_static_akka_cluster_ddata_DeltaPropagation_descriptor.getNestedTypes().get(0);
    internal_static_akka_cluster_ddata_DeltaPropagation_Entry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor,
        new java.lang.String[] { "Key", "Envelope", "FromSeqNr", "ToSeqNr", });
    internal_static_akka_cluster_ddata_UniqueAddress_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_akka_cluster_ddata_UniqueAddress_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_UniqueAddress_descriptor,
        new java.lang.String[] { "Address", "Uid", "Uid2", });
    internal_static_akka_cluster_ddata_Address_descriptor =
      getDescriptor().getMessageTypes().get(16);
    internal_static_akka_cluster_ddata_Address_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_Address_descriptor,
        new java.lang.String[] { "Hostname", "Port", });
    internal_static_akka_cluster_ddata_VersionVector_descriptor =
      getDescriptor().getMessageTypes().get(17);
    internal_static_akka_cluster_ddata_VersionVector_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_VersionVector_descriptor,
        new java.lang.String[] { "Entries", });
    internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor =
      internal_static_akka_cluster_ddata_VersionVector_descriptor.getNestedTypes().get(0);
    internal_static_akka_cluster_ddata_VersionVector_Entry_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor,
        new java.lang.String[] { "Node", "Version", });
    internal_static_akka_cluster_ddata_OtherMessage_descriptor =
      getDescriptor().getMessageTypes().get(18);
    internal_static_akka_cluster_ddata_OtherMessage_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_OtherMessage_descriptor,
        new java.lang.String[] { "EnclosedMessage", "SerializerId", "MessageManifest", });
    internal_static_akka_cluster_ddata_StringGSet_descriptor =
      getDescriptor().getMessageTypes().get(19);
    internal_static_akka_cluster_ddata_StringGSet_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_StringGSet_descriptor,
        new java.lang.String[] { "Elements", });
    internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor =
      getDescriptor().getMessageTypes().get(20);
    internal_static_akka_cluster_ddata_DurableDataEnvelope_fieldAccessorTable = new
      akka.protobufv3.internal.GeneratedMessageV3.FieldAccessorTable(
        internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor,
        new java.lang.String[] { "Data", "Pruning", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}
